zu weiteren gleichen Suchbegriff nacheinander springen
05.11.2023 15:35:49
Andreas
Nun möchte ich gern, das bei jeden weiteren Klick auf den selben CommandButton, zum nächsten gleichen (letzten Suchbegriff) aus Combobox weiter zu diesem im Blatt "Bearbeiten gesprungen wird, sofern es einen gibt.
Würde eventuell den "Suchbegriff" in einer Hilfstabelle speichern, um diesen sozusagen zwischengespeichert zur Abfrage zur verfügung zu haben.
Hier erst mal der Code
Private Sub CommandButton20147_Click()
'Gehe ZurZeile mit Inhalt aus ComboBox ()
Dim Suchbegriff As String
Dim ZielZelle As Range
Dim Arbeitsblatt As Worksheet
Suchbegriff = ComboBox00094X.Value
Set Arbeitsblatt = ThisWorkbook.Sheets("Bearbeiten")
Set ZielZelle = Arbeitsblatt.Columns(2).Find(What:=Suchbegriff, LookIn:=xlValues, LookAt:=xlWhole)
If Not ZielZelle Is Nothing Then
' Zeile mit dem gefundenen Wert auswählen
ZielZelle.EntireRow.Select
' werde in "C"aktiv
With Cells(ActiveCell.Row + 1, 2).Value
Cells(ActiveCell.Row, 3).Select
End With
Else
MsgBox "keine Übrereinstimmung gefunden."
End If
End Sub
Befüllt wird die Combobox unter
Private Sub UserForm_Initialize()
sbFillCmbAscending
End Sub
mit diesem Code, wobei dabei dies nur OHNE "Option Explicit" funktioniert
Sub sbFillCmbAscending()
Dim lloRow As Long, liIdx As Integer, larstrCmb() As String, lboExist As Boolean
Dim vntListe As Variant
ReDim larstrCmb(0)
With Sheets("Bearbeiten")
vntListe = .Range(.Cells(1, 2), .Cells(.Rows.count, 2).End(xlUp)).Value
End With
For lloRow = 1 To UBound(vntListe, 1)
For liIdx = 0 To UBound(larstrCmb)
If vntListe(lloRow, 1) = larstrCmb(liIdx) Then
lboExist = True
Exit For
End If
Next
If lboExist = True Then
lboExist = False
Else
larstrCmb(UBound(larstrCmb)) = vntListe(lloRow, 1)
ReDim Preserve larstrCmb(UBound(larstrCmb) + 1)
End If
Next
On Error Resume Next ' sollte ein Fehler auftreten-
ReDim Preserve larstrCmb(UBound(larstrCmb) - 1)
For i = 0 To UBound(larstrCmb)
For j = i + 1 To UBound(larstrCmb)
If larstrCmb(i) > larstrCmb(j) Then
temp = larstrCmb(i)
larstrCmb(i) = larstrCmb(j)
larstrCmb(j) = temp
End If
Next j
Next i
For liIdx = 0 To UBound(larstrCmb)
UserForm10.ComboBox00094X.AddItem larstrCmb(liIdx)
Next
End Sub
Wie könnte dazu ein Code aussehen?
Gern auch mit einen anderen Aufbau. Danke schon mal.
Grüße Andreas