Excel mein Live Search Box kaise banaye – VBA Tutorial Hindi

नमस्ते दोस्तों! The Office Tutorials में आपका स्वागत है।

दोस्तों, क्या आपके Excel में हजारों rows का data है और किसी एक record को ढूंढने में आपको बहुत ज्यादा समय लगाना पड़ता है? Ctrl+F, Filter, Scroll — यह सब तरीके काम तो करते हैं, लेकिन हर बार यही झंझट और बहुत ही slow? आज हम सीखेंगे Excel mein Live Search Box kaise banaye — बिल्कुल Google की तरह, जहाँ जैसे-जैसे आप type करो वैसे-वैसे results instantly सामने आते जाएं। इसके लिए हम VBA का ActiveX TextBox use करेंगे — और इसको एक बार बना कर लगा दिए अपने Excel मे तो आपकी Excel file एक professional application जैसी लगने लगेगी। 🔥

और यह सिर्फ search box तक सीमित नहीं है। आप यही technique से आगे चलकर Auto Suggestions, Dynamic Charts, Barcode Search और Login System जैसे कार्य करने वाला excel भी बना सकते हैं।

Excel mein Live Search Box kaise banaye VBA ActiveX TextBox Hindi tutorial

Excel Live Search Box के लिए क्या-क्या चाहिए?

शुरू करने से पहले यह confirm कर लें कि आपके पास यह सब है:

  • ✅ Microsoft Excel 2013, 2016, 2019, 2021 या Microsoft 365 (Windows)
  • Developer Tab Excel ribbon में visible होनी चाहिए (नहीं है तो नीचे पढ़ें)
  • ✅ File .xlsm format (Macro-Enabled Workbook) में save होनी चाहिए
  • ✅ File open होने पर Macros Enable करना होगा

💡 Developer Tab नहीं दिख रही? File → Options → Customize Ribbon → Right side में “Developer” checkbox tick करें → OK। यह एक बार करना है, फिर हमेशा दिखेगी।

Excel mein Developer Tab enable karne ka step by step tarika

Excel Live Search Box — Practice File का Data Layout समझें

कोई भी Excel VBA TextBox tutorial Hindi में सीखने से पहले अगर हमारे सामने एक concrete example हो तो समझना बहुत आसान हो जाता है। हमारी practice file में एक Product Database है जो दो हिस्सों में बँटी है।

हिस्सा 1 — Results Area (Row 5 से Row 9)

यह वो जगह है जहाँ search results दिखेंगे। TextBox में type करते ही matching records यहाँ automatically आ जाते हैं। यह area normally खाली दिखता है — जैसे ही कुछ type करते हैं, matching data इसमे दिखाता है।

Product IDProduct NameBrandCategoryPrice (₹)
← Search results यहाँ automatically आएंगे (Rows 5 से 9)

हिस्सा 2 — Source Data (Row 14 से Row 22)

यही हमारा असली database है। हमारा VBA code इसी range को scan करता है और matching rows हमारे ऊपर Results वाले Area में copy कर देता है — instantly, बिना किसी button के।

Product IDProduct NameBrandCategoryPrice (₹)
101Galaxy S24SamsungMobile₹74,999
102iPhone 15AppleMobile₹79,999
103Laptop Pro XDellLaptop₹65,000
104AirPods ProAppleAudio₹24,900
105Smart TV 55″LGTV₹52,000
106Pixel 8GoogleMobile₹59,999
107MacBook AirAppleLaptop₹1,14,900
108Galaxy BudsSamsungAudio₹8,999

यहाँ Logic simple है — अगर हम TextBox में “Apple” type करते है → VBA हमारे Source Data scan करेगा → Apple वाले सभी records Results Area में paste हो जाएंगे। Real-time। No button। यही तरीका है जिससे हम Excel mein Google jaisa search box banana सकते है।

Excel Live Search Box ka Results Area aur Source Data layout diagram Hindi mein

आपके अपने Data के लिए क्या बदलेगा? — Same vs Different

यहाँ Practice file केवल आपके सीखने के लिए है — real life में आपका अपना data होगा जो इस Data से अलग हो सकता है। तो आइए समझते हैं क्या same रहेगा और क्या बदलना होगा।

📌 जो हमेशा Same रहेगा

  • Developer Tab से ActiveX TextBox insert करने का तरीका।
  • VBA code का पूरा structure — logic वही रहेगी।
  • File को .xlsm में save करना — यह mandatory है।
  • Real-time live search का feature — यह हमेशा काम करेगा।

📌 जो आपको अपने Data के हिसाब से बदलना होगा

मान लीजिए आपके पास Employee Database है — Name, Department, City, Salary columns हैं:

Practice File मेंEmployee Database मेंCode में क्या बदलें
Sheet का नाम: Sheet1Sheet का नाम: EmployeesSheets("Sheet1")Sheets("Employees")
Source Data: A14:E22Data: A2:D500 (header छोड़कर)"A14:E22""A2:D500"
Results Area: A5:E9कोई खाली area — जैसे A2:D11"A5:E9""A2:D11"
Column B में search (Product Name)Column A में search (Employee Name)Columns(2)Columns(1)
Max 5 results (Row 5 to 9)Max 10 results चाहिएOutputRow > 9OutputRow > 11

🎯 Pro Tip: Results Area और Source Data को एक ही sheet पर रखना सबसे आसान है। लेकिन अगर चाहें तो Results एक “Dashboard” sheet पर और raw Data अलग hidden sheet पर भी रख सकते हैं। हमने इसके लिए Code में यह option दिए है — आगे detail में देखेंगे।

Step-by-Step: Excel mein Live Search Box kaise banaye 🛠️

Excel mein ActiveX TextBox insert karna Developer Tab se step by step Hindi mein

Step 1: Data तैयार करें और Layout Set करें

Excel file open करें। Data properly organized होना चाहिए:

  • पहली row में Headers हों — जैसे Product ID, Name, Brand।
  • हर column में एक ही type का data हो।
  • बीच में कोई blank row न हो — क्यों कि इससे VBA loop टूट जाएगा।

Sheet पर एक खाली area decide करें जहाँ आप search results देखना चाहते है। यह Results Area होगा। हमने Practice file में यह Row 5–9 रखा है।

Step 2: Search Box के लिए Heading लिखें

Results area के ऊपर एक cell में heading type करें — जैसे 🔍 Product Search: या Employee Search:। यह optional है लेकिन इससे file professional और user-friendly लगती है।

Step 3: Developer Tab से ActiveX TextBox Insert करें

Step to Apply:

  1. Developer Tab पर click करें।
  2. Insert button click करें।
  3. नीचे ActiveX Controls section में TextBox icon select करें।
  4. Sheet पर heading के पास drag करके TextBox बनाएं। चौड़ा और लंबा रखें ताकि typing comfortable हो।

⚠️ जरूरी बात: Ribbon में Insert click करने पर दो sections दिखते हैं — Form Controls (ऊपर) और ActiveX Controls (नीचे)। हमें हमेशा ActiveX Controls वाला TextBox चाहिए। Form Control TextBox से यह VBA code काम नहीं करेगा।

ActiveX Controls TextBox aur Form Controls ka fark Excel Developer Tab mein

Step 4: TextBox का नाम Check करें

TextBox insert होने के बाद Design Mode ON रहता है। आपको TextBox को एक बार click करना है — left side में Name Box (जहाँ normally A1, B2 जैसा cell address दिखता है) में TextBox का नाम दिखेगा।

  • Default नाम होता है: TextBox1
  • अगर पहले से एक TextBox बना है तो: TextBox2
  • VBA code में यही नाम use होगा — इसे note कर लें।

Step 5: VBA Editor में Code Paste करें

Step to Apply:

  1. TextBox पर double-click करें — VBA Editor सीधे उस TextBox के event पर खुलेगा।
  2. या TextBox पर right-click → View Code करें।
  3. VBA Editor में Private Sub TextBox1_Change() दिखेगा।
  4. अगर अंदर पहले से कोई code है — पूरा select करके delete करें।
  5. नीचे दिया गया पूरा VBA code copy करके यहाँ paste करें।
Excel VBA Editor mein TextBox1 Change event mein code paste karna

Step 6: Design Mode OFF करें और Test करें

  1. VBA Editor बंद करें — Alt + Q press करें।
  2. Excel में वापस आएं।
  3. Developer Tab → Design Mode button click करके OFF करें।
  4. TextBox में कुछ type करें — आपको matching results दिखने लगेगा अगर नहीं दिखाता तो Step 7 को पूरा करें।

Step 7: File को .xlsm में Save करें ⭐

  1. File → Save As करें।
  2. File type में Excel Macro-Enabled Workbook (*.xlsm) select करें।
  3. Save करें।

⚠️ Warning: Normal .xlsx format में save किया तो VBA code permanently delete हो जाएगा। हमेशा .xlsm format use करें। हमने अपने पिछले पोस्ट – Password protected hidden rows tutorial में भी यही बताया था — Excel में Data को Password से Hide कैसे करें

ActiveX TextBox VBA Code — पूरा और Line-by-Line समझाया हुआ 💻

Excel data search karna VBA se — इस कार्य के लिए हमने यहाँ नीचे पूरा code दिया है। हर important section के साथ comment में clearly बताया है कि वो line क्या करती है और आपको क्या बदलना है। आप अगर पूरा कोड समझ जाते है तो कोड से comment को delete भी कर सकते है।

Private Sub TextBox1_Change()
    ' -------------------------------------------------------
    ' यह Sub तब automatically चलता है जब TextBox में
    ' कोई भी character type या delete होता है।
    '
    ' ⚠️ अगर आपके TextBox का नाम TextBox1 नहीं है —
    '    जैसे TextBox2 है — तो ऊपर "TextBox1" को
    '    "TextBox2" से बदल दें।
    ' -------------------------------------------------------

    Dim SourceWS As Worksheet
    Dim OutputWS As Worksheet
    Dim SearchText As String
    Dim SourceRange As Range
    Dim Cell As Range
    Dim OutputRow As Long
    Dim LastCol As Long

    ' ============================================================
    '                    ⚙️ SETTINGS
    '       नीचे की lines अपने data के हिसाब से बदलें
    ' ============================================================

    Set SourceWS = Sheets("Sheet1")
    ' ↑ वो sheet जिसमें आपका असली DATA है।
    '   Sheet का नाम नीचे tab पर देखें।
    '   Example: अगर नाम "Products" है → Sheets("Products")
    '            अगर नाम "Employees" है → Sheets("Employees")

    Set OutputWS = Sheets("Sheet1")
    ' ↑ वो sheet जहाँ RESULTS दिखाने हैं।
    '   ✅ Results और Data एक ही sheet पर हैं → same रखें।
    '   ✅ Results अलग sheet पर चाहिए →
    '      Example: Sheets("Dashboard") या Sheets("Search")

    Set SourceRange = SourceWS.Range("A14:E22")
    ' ↑ आपके असली DATA की range — header row शामिल न करें।
    '   Practice file में data Row 14 से Row 22 तक है।
    '   Example: अगर data A2 से F100 तक है →
    '            SourceWS.Range("A2:F100")
    '   Note: Columns की count भी match करें — यहाँ A से E = 5 columns।

    ' ============================================================

    SearchText = LCase(TextBox1.Text)
    ' ↑ TextBox में जो type हुआ उसे lowercase में convert करता है।
    '   इससे search Case-Insensitive हो जाती है।
    '   "apple", "Apple", "APPLE" — तीनों same result देंगे।
    '   ⚠️ अगर TextBox का नाम बदला है तो यहाँ भी बदलें।

    OutputWS.Range("A5:E9").ClearContents
    ' ↑ हर नए character से पहले पुराने results clear होते हैं।
    '   "A5:E9" = Results Area की range।
    '   ✏️ इसे अपने Results Area की range से बदलें।
    '   Example: अगर Results A2:D11 में दिखाने हैं →
    '            OutputWS.Range("A2:D11").ClearContents
    '   ⚠️ Columns की count Source Data जितनी ही रखें।

    OutputRow = 5
    ' ↑ Results किस row number से शुरू होंगे।
    '   Practice file में Results Row 5 से शुरू होते हैं।
    '   ✏️ अपने Results Area की starting row number यहाँ डालें।
    '   Example: Results Row 2 से शुरू होने हैं → OutputRow = 2

    For Each Cell In SourceRange.Columns(2).Cells
    ' ↑ Source Data के Column 2 (Column B) में हर cell check होती है।
    '   यहाँ SEARCH COLUMN set होता है।
    '
    '   Columns() में number = SourceRange के अंदर का column number।
    '   अगर SourceRange "A14:E22" है तो:
    '     Columns(1) → Column A (Product ID)
    '     Columns(2) → Column B (Product Name) ← Default
    '     Columns(3) → Column C (Brand)
    '     Columns(4) → Column D (Category)
    '     Columns(5) → Column E (Price)
    '
    '   ✏️ जिस column में search करनी हो उसका number डालें।

        If InStr(1, LCase(Cell.Value), SearchText) > 0 Then
        ' ↑ Check करता है — cell की value में SearchText मिलता है क्या।
        '   InStr() partial match भी ढूंढता है।
        '   "Sam" type करने पर "Samsung" भी match होगा।

            OutputWS.Range("A" & OutputRow & ":E" & OutputRow).Value = _
            SourceWS.Range("A" & Cell.Row & ":E" & Cell.Row).Value
            ' ↑ Matching row को Results Area में copy करता है।
            '   "A" और "E" = copy होने वाले columns।
            '   ✏️ अगर data में 4 columns (A to D) हैं →
            '      "A" & OutputRow & ":D" & OutputRow
            '      और Source side पर भी ":D" & Cell.Row

            OutputRow = OutputRow + 1
            ' ↑ अगले result के लिए next row पर जाता है।

            If OutputRow > 9 Then Exit For
            ' ↑ Row 9 के बाद results दिखाना बंद।
            '   Practice file में maximum 5 results (Row 5 to 9)।
            '   ✏️ Results Area की last row number यहाँ डालें।
            '   Example: Results Area Row 2 से Row 11 तक है →
            '            If OutputRow > 11 Then Exit For

        End If

    Next Cell

End Sub
Excel mein Live Search Box kaise banaye VBA code ka live result demo

Excel Live Search Filter VBA — Code Customization एक नज़र में 📋

मैंने Code में comments में भी सब समझा के लिखा है — लेकिन यहाँ मैंने एक quick reference table भी बनाया है ताकि समझना आसान हो। Excel live search filter VBA Hindi में customize करना और भी आसान हो जाएगा:

Code में यह LineDefault Valueक्या करती हैआपको क्या बदलना है
TextBox1_Change()TextBox1किस TextBox का event हैTextBox का actual नाम — Name Box में देखें
Sheets("Sheet1") — SourceSheet1Data किस sheet पर हैअपनी data sheet का नाम — tab पर देखें
Sheets("Sheet1") — OutputSheet1Results किस sheet पर दिखेंगेSame sheet है तो same रखें, अलग है तो उसका नाम
Range("A14:E22")A14:E22Source Data की range (header छोड़कर)अपने data की actual range — जैसे A2:F100
Range("A5:E9").ClearContentsA5:E9Results Area clear होता हैअपने Results Area की range — columns count match रखें
OutputRow = 55Results किस row से शुरू होंगेResults Area की starting row number
SourceRange.Columns(2)2 = Column BSearch किस column में होगी1=A, 2=B, 3=C, 4=D… जिसमें search करनी हो
":E" & OutputRowColumn E तकCopy होने वाले columns की rangeअगर 4 columns (A–D) हैं तो “:E” को “:D” करें
If OutputRow > 99Maximum results की limitResults Area की last row number — जैसे > 11 या > 20

✅ Verify करें — सब सही काम कर रहा है?

ऊपर के सभी steps को फॉलो करके Feature बनाने के बाद इन 5 points से check करें:

  1. Design Mode OFF है — TextBox में type होना चाहिए।
  2. TextBox में “Apple” type करें → Apple वाले products Results Area में आने चाहिए।
  3. TextBox में “app” type करें → partial match काम करे — AirPods, Apple सब आएं।
  4. TextBox पूरा clear करें → Results Area भी clear हो जाए।
  5. File बंद करके दोबारा खोलें → Enable Macros click करें → TextBox काम करे।

💡 काम नहीं कर रहा? सबसे पहले check करें — file open होने पर yellow bar में “Enable Content” button click किया था? यह पहली बार जरूरी है। इसके बाद VBA code में Sheet name और Range दोबारा check करें।

💡 Extra Tips और Advanced Uses

किसी भी Column में Search करें — Columns() का पूरा Logic

यह सबसे common confusion है। SourceRange.Columns(2) का मतलब है SourceRange के अंदर का 2nd column — यानी अगर Range A14:E22 है तो:

Columns() ValueRange A14:E22 में मतलबSearch होगी
Columns(1)Range का 1st columnColumn A — Product ID में
Columns(2)Range का 2nd columnColumn B — Product Name में ✅ Default
Columns(3)Range का 3rd columnColumn C — Brand में
Columns(4)Range का 4th columnColumn D — Category में
Columns(5)Range का 5th columnColumn E — Price में

अगर आपको Product मे नहीं और Brand में search करनी है? सिर्फ Columns(2) को Columns(3) कर दें। बस इतना करने से आपका काम हो जाएगा।

🌟 Advanced Trick — एक साथ दो Columns में Search: Name और Brand दोनों में आप एक साथ search करना चाहते है तो If condition में Or add करें:

If InStr(1, LCase(Cell.Value), SearchText) > 0 Or InStr(1, LCase(Cell.Offset(0,1).Value), SearchText) > 0 Then

यहाँ Offset(0,1) मतलब current cell से एक column दाहिने — यानी Column C।

Results और Data — अलग-अलग Sheets पर रखें

अगर आप चाहते है की आपका raw data hide रहे और सामने मे सिर्फ search interface दिखे तो — अलग sheets use करें:

Set SourceWS = Sheets("DataSheet")   ' Data यहाँ है — hide करके रखें
Set OutputWS = Sheets("Dashboard")   ' Results यहाँ दिखेंगे

TextBox जिस sheet पर है वो Output sheet (Dashboard) होनी चाहिए।

यही Technique — और भी बड़े काम में

जो logic अभी हमने सीखा है — TextBox trigger, VBA data scan, real-time update — यही आगे इन powerful features में काम आती है:

  • Barcode Scanner Integration: Scanner TextBox में input देता है → VBA instantly product ढूंढता है।
  • Dynamic Charts: Search करने पर सिर्फ filtered data का chart automatically update हो।
  • Login System: Username + Password TextBox → VBA credentials verify करे।
  • Auto Suggestions Dropdown: TextBox input से ListBox dynamically populate हो।
Excel VBA ActiveX TextBox se Live Search Box ke advanced uses - barcode login dynamic chart

इन सभी पर आगे अलग tutorials आएंगे। इस बीच Excel VBA के और tutorials के लिए यह देखें:

VBA में ActiveX Controls officially कैसे काम करते हैं — Microsoft की documentation यहाँ देखें: Microsoft Docs — Excel VBA ActiveX Controls Official Reference

📥

Practice File Download करें

सिर्फ पढ़ने से trick याद नहीं रहती — Live Search Box खुद try करें और देखें यह magic कैसे काम करता है।

Free Download  ·  .xlsm Format  ·  VBA Code Included
Download करें

निष्कर्ष

दोस्तों, हमने इस लेख मे step-by-step सीखा कि Excel mein Live Search Box kaise banaye — VBA के ActiveX TextBox की मदद से, बिल्कुल Google जैसा real-time search box बनाना। इसके लिए हमने Data तैयार करना, TextBox insert करना, VBA code paste करना, और अपने data के हिसाब से customize करना — हर छोटा-से-छोटा step देखा।

चाहे Product Database हो, Employee Records हों, Student Data हो या कुछ भी — यह Live Search feature हर जगह काम आएगा। और code customize करना भी उतना मुश्किल नहीं — बस सही जगह सही values बदलनी हैं।

नीचे comment जरूर करें — आपने इसे किस data के साथ use किया, कोई problem आई, या कोई सवाल है — सब पूछें। और TheOfficeTutorials.com को bookmark करना न भूलें — यहाँ Excel VBA, Formulas और Advanced tricks के tutorials लगातार आते रहते हैं। 🙌

FAQ — अक्सर पूछे जाने वाले सवाल

Q1. TextBox में type करने पर कुछ नहीं हो रहा — क्यों?

तीन सबसे common कारण हैं। पहला — Design Mode अभी ON है, Developer Tab से OFF करें। दूसरा — Macros enabled नहीं हैं, file open होने पर yellow bar में “Enable Content” click करें। तीसरा — VBA code में Sheet name या Range गलत है — VBA Editor खोलकर SETTINGS section check करें।

Q2. Search Case-Sensitive है या Case-Insensitive?

हमारा code पूरी तरह Case-Insensitive है। Code में LCase() function TextBox की value और cell की value दोनों को lowercase में convert करके compare करता है। इसलिए “apple”, “Apple”, “APPLE” — तीनों एक जैसे result देंगे।

Q3. Maximum कितने Results दिखा सकते हैं?

जितने चाहें। Practice file में Results Area 5 rows का है (Row 5–9) इसलिए maximum 5 results। बड़ा करना है तो Results Area को extend करें (जैसे Row 5–20) और code में OutputRow > 9 को OutputRow > 20 कर दें।

Q4. क्या Mac Excel या Mobile Excel में यह काम करेगा?

नहीं। ActiveX Controls सिर्फ Windows पर Microsoft Excel में काम करते हैं। Mac Excel में ActiveX support नहीं है। Mobile Excel (Android/iOS) में भी यह feature काम नहीं करेगा। यह feature exclusively Windows Desktop Excel के लिए है।

Q5. एक साथ दो Columns में Search कैसे करें?

Code की If InStr... line में Or add करें। जैसे Column B (Name) और Column C (Brand) दोनों में search करनी है: If InStr(1, LCase(Cell.Value), SearchText) > 0 Or InStr(1, LCase(Cell.Offset(0,1).Value), SearchText) > 0 Then — यहाँ Offset(0,1) मतलब एक column दाहिने यानी Column C।

Q6. TextBox Clear करने पर Results Area Clear क्यों नहीं होता?

Code में ClearContents की range और आपका actual Results Area match नहीं हो रहा। जैसे ClearContents में A5:E9 है लेकिन results किसी और range में दिख रहे हैं — दोनों को same रखें।

Q7. Excel का built-in Filter और यह Live Search — क्या फर्क है?

Excel का Filter dropdown-based है — click करो, value select करो, तब filter हो। हमारा Live Search real-time है — type करते जाओ, results आते जाओ, कोई click नहीं। साथ ही Filter पूरी sheet को filter करता है जबकि Live Search एक specific area में results देता है — जो आपकी sheet का design नहीं बिगाड़ता।


Leave a Comment