
94451
26.02.2015, aktualisiert um 20:17:31 Uhr
Formulare, Listboxen und durchsuchen von Tabellen
Hallo Ihr,
dieses Script hat mir schon sehr weitergeholfen...
hab ich 'fast' so in den Tiefen des Internets gefunden:
er holt sich meine Kontaktliste und füllt meine Liste nach bedarf auf!
Frage 1:
hier wird vermutlich die Suche durchgeführt
Frage 2:
ist es möglich mehrere Spalten gleichzeitig zu durchsuchen? Wenn ja wie?
- wenn nein, wie mache ich das am geschicktesten, das ich bei jeder suche Triggern kann welche Spalte ich jetzt durchsuche (würde dann neben dem Suchbutton noch ne dropdown mit der Suchspalte machen)
Frage 3:
ich habe in meiner Tabelle Überschriften... diese werden vom Formular mit übernommen! wie kann ich die ausschließen?
damit bin ich gescheitert:
Ich freue mich für jeden Tipp
Danke
RoadRunner
dieses Script hat mir schon sehr weitergeholfen...
hab ich 'fast' so in den Tiefen des Internets gefunden:
With Worksheets("Lieferanten").Range("A:A")
editForm.lieferList.Clear
Set rngCell = .Find("*" & editForm.listTextb.value & "*", LookIn:=xlValues, lookat:=xlWhole)
If Not rngCell Is Nothing Then
strFirstAddress = rngCell.Address
Do
With editForm.lieferList
.ColumnCount = 4
.AddItem
.List(.ListCount - 1, 0) = rngCell.value
.List(.ListCount - 1, 1) = rngCell.Offset(0, 1).value
.List(.ListCount - 1, 2) = rngCell.Offset(0, 2).value
.List(.ListCount - 1, 3) = rngCell.Offset(0, 3).value
.ColumnWidths = "2,5cm;1,5cm;2,5cm;2,5cm"
End With
Set rngCell = .FindNext(rngCell)
Loop While Not rngCell Is Nothing And rngCell.Address <> strFirstAddress
Else
MsgBox "Lieferant nicht gefunden", 48
End If
End With
er holt sich meine Kontaktliste und füllt meine Liste nach bedarf auf!
Frage 1:
hier wird vermutlich die Suche durchgeführt
Set rngCell = .Find("*" & editForm.listTextb.value & "*", LookIn:=xlValues, lookat:=xlWhole)
wie kann ich bestimmen welche Spalte durchsucht wird?Frage 2:
ist es möglich mehrere Spalten gleichzeitig zu durchsuchen? Wenn ja wie?
- wenn nein, wie mache ich das am geschicktesten, das ich bei jeder suche Triggern kann welche Spalte ich jetzt durchsuche (würde dann neben dem Suchbutton noch ne dropdown mit der Suchspalte machen)
Frage 3:
ich habe in meiner Tabelle Überschriften... diese werden vom Formular mit übernommen! wie kann ich die ausschließen?
damit bin ich gescheitert:
With Worksheets("Lieferanten").Range("A:A").Offset(1, 0)
Ich freue mich für jeden Tipp
Danke
RoadRunner
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 264667
Url: https://administrator.de/forum/formulare-listboxen-und-durchsuchen-von-tabellen-264667.html
Ausgedruckt am: 05.05.2025 um 09:05 Uhr
5 Kommentare
Neuester Kommentar

Zitat von @94451:
Frage 1:
hier wird vermutlich die Suche durchgeführt
> Set rngCell = .Find("*" & editForm.listTextb.value & "*", LookIn:=xlValues,
lookat:=xlWhole)
wie kann ich bestimmen welche Spalte durchsucht wird?
Range hier ändern...Frage 1:
hier wird vermutlich die Suche durchgeführt
> Set rngCell = .Find("*" & editForm.listTextb.value & "*", LookIn:=xlValues,
lookat:=xlWhole)
wie kann ich bestimmen welche Spalte durchsucht wird?
With Worksheets("Lieferanten").Range("B:B")
Frage 2:
ist es möglich mehrere Spalten gleichzeitig zu durchsuchen? Wenn ja wie?
Range anpassen, z.B.ist es möglich mehrere Spalten gleichzeitig zu durchsuchen? Wenn ja wie?
With Worksheets("Lieferanten").Range("A:D")
Frage 3:
ich habe in meiner Tabelle Überschriften... diese werden vom Formular mit übernommen! wie kann ich die
ausschließen?
damit bin ich gescheitert:
> With Worksheets("Lieferanten").Range("A:A").Offset(1, 0)
ich habe in meiner Tabelle Überschriften... diese werden vom Formular mit übernommen! wie kann ich die
ausschließen?
damit bin ich gescheitert:
> With Worksheets("Lieferanten").Range("A:A").Offset(1, 0)
With Worksheets("Lieferanten").Range("A2:A" & Cells(Rows.Count,1).End(xlUp).Row).

Ganz einfach, du kannst die Spalte ermitteln in der der Wert gefunden wurde und dementsprechend die Offsets der Spalten dynamisch anpassen.
Die Spalte in der der Wert gefunden wurde erhältst du mit
Damit kannst du nun die Offsets verschieben...
Die Spalte in der der Wert gefunden wurde erhältst du mit
rngCell.Column
Damit kannst du nun die Offsets verschieben...

Hallo Roadrunner777!
Ergänzend die dynamische Anpassung
Mit Spalte(B):
Mit Spalte(A:D):
Grüße Dieter
Ergänzend die dynamische Anpassung
Mit Spalte(B):
With Worksheets("Lieferanten").Range("B2:B" & Cells(Rows.Count, "A").End(xlUp).Row)
'.....
.List(.ListCount - 1, 0) = rngCell.Offset(0, -1).Value 'Spalte A
.List(.ListCount - 1, 1) = rngCell.Offset(0, 0).Value 'Spalte B
.List(.ListCount - 1, 2) = rngCell.Offset(0, 1).Value 'Spalte C
.List(.ListCount - 1, 3) = rngCell.Offset(0, 2).Value 'Spalte D
'.....
End With
With Worksheets("Lieferanten").Range("A2:D" & Cells(Rows.Count, "A").End(xlUp).Row)
'.....
.List(.ListCount - 1, 0) = rngCell.Offset(0, 1 - rngCell.Column).Value 'Spalte A
.List(.ListCount - 1, 1) = rngCell.Offset(0, 2 - rngCell.Column).Value 'Spalte B
.List(.ListCount - 1, 2) = rngCell.Offset(0, 3 - rngCell.Column).Value 'Spalte C
.List(.ListCount - 1, 3) = rngCell.Offset(0, 4 - rngCell.Column).Value 'Spalte D
'.....
End With