Ik heb een excel bestand waarin ik wil weten op welke rij een titel van een artiest staat, waarbij artiesten meerdere malen kunnen voorkomen in de zoekkolom.
De routine zoekt op een alfabetisch gerangschikte naam van de artiest (die staat in kolom 1 van sheet3). Vervolgens zoek hij daar alle titels en de plaatsen van die artiest bij (plaats staat in kolom 2 en titel in kolom 4 van sheet1). h.Row geeft de (meerdere malen) gevonden regelnummers van de artiest terug .
Daarvoor gebruik ik nu deze routine:
For StepListingsPrint = 2 To EndRow
SearchValue = Sheets(3).Cells(StepListingsPrint, 1)
'MsgBox SearchValue
CountListings = Sheets(3).Cells(StepListingsPrint, 2)
If CountListings <> 1 Then
For StepListings = 1 To CountListings
Set h = Sheets(1).Range(StartSearchRow & ":" & EndSearchRow).Find(SearchValue)
'MsgBox h.Row
StartSearchRow = h.Row
Cells(StepListingsPrint, (StartRowListings + StepListings)).Value = Sheets(1).Cells(StartSearchRow, 2)
Cells(StepListingsPrint, (StartRowListings + StepListings + 1)).Value = Sheets(1).Cells(StartSearchRow, 4)
StartSearchRow = h.Row + 1
StartRowListings = StartRowListings + 1
If StepListings = CountListings Then
StartSearchRow = 2
StartRowListings = 3
End If
Next StepListings
Else
Set h = Sheets(1).Range(StartSearchRow & ":" & EndSearchRow).Find(SearchValue)
'MsgBox h.Row
Cells(StepListingsPrint, (StartRowListings + 1)).Value = Sheets(1).Cells(h.Row, 2)
Cells(StepListingsPrint, (StartRowListings + 2)).Value = Sheets(1).Cells(h.Row, 4)
End If
Next StepListingsPrint
Op zich werkt deze routine goed, maar stuit wel op het volgende probleempje:
Als er meerdere artiesten in mijn zoekkolom zitten met dezelfde beginletters, bijvoorbeeld Chic en Chicago.
Als ik de routine uitvoer en Chic staat eerder (hogere plaats) in de zoekkolom dan Chicago werkt de routine goed, maar in omgekeerde volgorde dus Chicago staat eerder in de zoekkolom dan Chic dan kiest hij voor Chic de waarde die bij Chicago hoort.
Mijn vraag is dus: hoe kan ik de routine verder laten zoeken als de tweede naam uit minder (maar wel gelijke) karakters bestaat?
George
De routine zoekt op een alfabetisch gerangschikte naam van de artiest (die staat in kolom 1 van sheet3). Vervolgens zoek hij daar alle titels en de plaatsen van die artiest bij (plaats staat in kolom 2 en titel in kolom 4 van sheet1). h.Row geeft de (meerdere malen) gevonden regelnummers van de artiest terug .
Daarvoor gebruik ik nu deze routine:
For StepListingsPrint = 2 To EndRow
SearchValue = Sheets(3).Cells(StepListingsPrint, 1)
'MsgBox SearchValue
CountListings = Sheets(3).Cells(StepListingsPrint, 2)
If CountListings <> 1 Then
For StepListings = 1 To CountListings
Set h = Sheets(1).Range(StartSearchRow & ":" & EndSearchRow).Find(SearchValue)
'MsgBox h.Row
StartSearchRow = h.Row
Cells(StepListingsPrint, (StartRowListings + StepListings)).Value = Sheets(1).Cells(StartSearchRow, 2)
Cells(StepListingsPrint, (StartRowListings + StepListings + 1)).Value = Sheets(1).Cells(StartSearchRow, 4)
StartSearchRow = h.Row + 1
StartRowListings = StartRowListings + 1
If StepListings = CountListings Then
StartSearchRow = 2
StartRowListings = 3
End If
Next StepListings
Else
Set h = Sheets(1).Range(StartSearchRow & ":" & EndSearchRow).Find(SearchValue)
'MsgBox h.Row
Cells(StepListingsPrint, (StartRowListings + 1)).Value = Sheets(1).Cells(h.Row, 2)
Cells(StepListingsPrint, (StartRowListings + 2)).Value = Sheets(1).Cells(h.Row, 4)
End If
Next StepListingsPrint
Op zich werkt deze routine goed, maar stuit wel op het volgende probleempje:
Als er meerdere artiesten in mijn zoekkolom zitten met dezelfde beginletters, bijvoorbeeld Chic en Chicago.
Als ik de routine uitvoer en Chic staat eerder (hogere plaats) in de zoekkolom dan Chicago werkt de routine goed, maar in omgekeerde volgorde dus Chicago staat eerder in de zoekkolom dan Chic dan kiest hij voor Chic de waarde die bij Chicago hoort.
Mijn vraag is dus: hoe kan ik de routine verder laten zoeken als de tweede naam uit minder (maar wel gelijke) karakters bestaat?
George