नमस्ते दोस्तों! 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 भी बना सकते हैं।
📋 Table of Contents
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 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 ID | Product Name | Brand | Category | Price (₹) |
|---|---|---|---|---|
| ← 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 ID | Product Name | Brand | Category | Price (₹) |
|---|---|---|---|---|
| 101 | Galaxy S24 | Samsung | Mobile | ₹74,999 |
| 102 | iPhone 15 | Apple | Mobile | ₹79,999 |
| 103 | Laptop Pro X | Dell | Laptop | ₹65,000 |
| 104 | AirPods Pro | Apple | Audio | ₹24,900 |
| 105 | Smart TV 55″ | LG | TV | ₹52,000 |
| 106 | Pixel 8 | Mobile | ₹59,999 | |
| 107 | MacBook Air | Apple | Laptop | ₹1,14,900 |
| 108 | Galaxy Buds | Samsung | Audio | ₹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 सकते है।
आपके अपने 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 का नाम: Sheet1 | Sheet का नाम: Employees | Sheets("Sheet1") → Sheets("Employees") |
| Source Data: A14:E22 | Data: 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 > 9 → OutputRow > 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 🛠️
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:
- Developer Tab पर click करें।
- Insert button click करें।
- नीचे ActiveX Controls section में TextBox icon select करें।
- Sheet पर heading के पास drag करके TextBox बनाएं। चौड़ा और लंबा रखें ताकि typing comfortable हो।
⚠️ जरूरी बात: Ribbon में Insert click करने पर दो sections दिखते हैं — Form Controls (ऊपर) और ActiveX Controls (नीचे)। हमें हमेशा ActiveX Controls वाला TextBox चाहिए। Form Control TextBox से यह VBA code काम नहीं करेगा।
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:
- TextBox पर double-click करें — VBA Editor सीधे उस TextBox के event पर खुलेगा।
- या TextBox पर right-click → View Code करें।
- VBA Editor में
Private Sub TextBox1_Change()दिखेगा। - अगर अंदर पहले से कोई code है — पूरा select करके delete करें।
- नीचे दिया गया पूरा VBA code copy करके यहाँ paste करें।
Step 6: Design Mode OFF करें और Test करें
- VBA Editor बंद करें — Alt + Q press करें।
- Excel में वापस आएं।
- Developer Tab → Design Mode button click करके OFF करें।
- TextBox में कुछ type करें — आपको matching results दिखने लगेगा अगर नहीं दिखाता तो Step 7 को पूरा करें।
Step 7: File को .xlsm में Save करें ⭐
- File → Save As करें।
- File type में Excel Macro-Enabled Workbook (*.xlsm) select करें।
- Save करें।
⚠️ Warning: Normal
.xlsxformat में 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 Live Search Filter VBA — Code Customization एक नज़र में 📋
मैंने Code में comments में भी सब समझा के लिखा है — लेकिन यहाँ मैंने एक quick reference table भी बनाया है ताकि समझना आसान हो। Excel live search filter VBA Hindi में customize करना और भी आसान हो जाएगा:
| Code में यह Line | Default Value | क्या करती है | आपको क्या बदलना है |
|---|---|---|---|
TextBox1_Change() |
TextBox1 | किस TextBox का event है | TextBox का actual नाम — Name Box में देखें |
Sheets("Sheet1") — Source |
Sheet1 | Data किस sheet पर है | अपनी data sheet का नाम — tab पर देखें |
Sheets("Sheet1") — Output |
Sheet1 | Results किस sheet पर दिखेंगे | Same sheet है तो same रखें, अलग है तो उसका नाम |
Range("A14:E22") |
A14:E22 | Source Data की range (header छोड़कर) | अपने data की actual range — जैसे A2:F100 |
Range("A5:E9").ClearContents |
A5:E9 | Results Area clear होता है | अपने Results Area की range — columns count match रखें |
OutputRow = 5 |
5 | Results किस row से शुरू होंगे | Results Area की starting row number |
SourceRange.Columns(2) |
2 = Column B | Search किस column में होगी | 1=A, 2=B, 3=C, 4=D… जिसमें search करनी हो |
":E" & OutputRow |
Column E तक | Copy होने वाले columns की range | अगर 4 columns (A–D) हैं तो “:E” को “:D” करें |
If OutputRow > 9 |
9 | Maximum results की limit | Results Area की last row number — जैसे > 11 या > 20 |
✅ Verify करें — सब सही काम कर रहा है?
ऊपर के सभी steps को फॉलो करके Feature बनाने के बाद इन 5 points से check करें:
- Design Mode OFF है — TextBox में type होना चाहिए।
- TextBox में “Apple” type करें → Apple वाले products Results Area में आने चाहिए।
- TextBox में “app” type करें → partial match काम करे — AirPods, Apple सब आएं।
- TextBox पूरा clear करें → Results Area भी clear हो जाए।
- 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() Value | Range A14:E22 में मतलब | Search होगी |
|---|---|---|
Columns(1) | Range का 1st column | Column A — Product ID में |
Columns(2) | Range का 2nd column | Column B — Product Name में ✅ Default |
Columns(3) | Range का 3rd column | Column C — Brand में |
Columns(4) | Range का 4th column | Column D — Category में |
Columns(5) | Range का 5th column | Column E — Price में |
अगर आपको Product मे नहीं और Brand में search करनी है? सिर्फ Columns(2) को Columns(3) कर दें। बस इतना करने से आपका काम हो जाएगा।
🌟 Advanced Trick — एक साथ दो Columns में Search: Name और Brand दोनों में आप एक साथ search करना चाहते है तो
Ifcondition मेंOradd करें:
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 हो।
इन सभी पर आगे अलग tutorials आएंगे। इस बीच Excel VBA के और tutorials के लिए यह देखें:
- 👉 Excel में VBA से Professional Data Entry Form कैसे बनाएं
- 👉 Excel में Option Button से Data Sort करने की Trick
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निष्कर्ष
दोस्तों, हमने इस लेख मे 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 नहीं बिगाड़ता।
