Zoeken met Visual Basic in Excel

Status
Niet open voor verdere reacties.

machino

Gebruiker
Lid geworden
11 dec 2014
Berichten
8
Schermafbeelding 2014-12-11 om 23.01.32.png

Hoi,
kan er mij iemand helpen met volgende probleem:

Ik heb een excel file met producten, per letter van het alfabet heb ik een apart tabblad. Als je op het "hoofdblad" op een letter klikt kom je automatisch (via hyperlinks) op het blad met alle producten die beginnen met die letter.

Nu is de bedoeling dat er op het hoofdblad een soort zoekfunctie komt waarbij als je de naam van het product, of een gedeelte van de naam, eventueel fiche-nummer van het product ingeeft je op de pagina terecht komt.

Dus bvb product Resin staat op werkblad R, men typt "res" in het zoekveld en men komt terecht op tabblad "R".

Ik had reeds een bvba code gevonden die dit deed, maar deze zocht enkel op 1 tabblad en ik vond niet direct een mogelijkheid om dit uit te breiden naar het volledige excel- bestand.

Alvast bedankt voor jullie reactie
 
Laatst bewerkt:
Ik had reeds een bvba code gevonden die dit deed, maar deze zocht enkel op 1 tabblad
Doe er een voorbeeld bestandje bij, of op zijn minst de code die je nu gebruikt. We helpen graag, maar ik denk niet dat iemand hier veel tijd over heeft om eerst nog een voorbeeld in elkaar te stampen. Ik steek de tijd ook liever in het zoeken naar een oplossing (die er uiteraard wel is).
 
Dit is de code die ik gebruik. Met de range die hierin bepaald wordt enkel in cellen E en F gezocht in het huidige tabblad, bedoeling is dat er gezocht wordt in alle cellen in de gehele werkmap.



Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, SearchRng As Range

'****************************************
' set to cell where search value is input.
Const SearchCell As String = "I3"
'_________________________________________

'****************************************
' set to range of cells being searched
' e.g. ActiveSheet.Cells or Columns("A:B") or Rows("5:50") etc
Set SearchRng = Columns("E:F")
'_________________________________________

If Target.Address <> Range(SearchCell).Address Or Range(SearchCell) = "" Then Exit Sub
Set rng = SearchRng.Find(What:=IIf(Right(Target.Value, 1) = "*", Left(Target.Value, Len(Target.Value) - 1), Target.Value), _
LookIn:=xlValues, _
LookAt:=IIf(Right(Range(SearchCell), 1) = "*", xlPart, xlWhole))
If rng Is Nothing Then GoTo NotFound
If rng.Address = Target.Address Then GoTo NotFound
rng.Activate
Exit Sub
NotFound:
MsgBox "Niets gevonden, probeer opnieuw", vbOKOnly, "Search for '" & Target.Value & "'"
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan