Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ListBox-Inhalt ohne Überschrift

Forumthread: ListBox-Inhalt ohne Überschrift

ListBox-Inhalt ohne Überschrift
RainerK
Hallo,
möchte mir eine UserForm (Suche) aus Eurem Forum zu nutze machen.
Mit dem Code
Private Sub CommandButton1_Click()
Dim xSuche, xAdresse, xErste As String
Dim y As Boolean
Dim arr() As Variant
Dim rng As Range
Dim iCounter, iRowU As Integer
ListBox1.Clear
xSuche = TextBox1.Value
If xSuche = "" Then
MsgBox "Bitte erst einen Suchbegriff eingeben!", vbExclamation, "Achtung!"
Exit Sub
End If
If ComboBox1.Value = "" And CheckBox2.Value = False Then
MsgBox "Bitte geben Sie ein, wo der Begriff gesucht werden soll!", vbExclamation, "Achtung!" _
Exit Sub
End If
For iCounter = 1 To ThisWorkbook.Sheets.Count
If CheckBox2.Value = True Or Worksheets(iCounter).Name = ComboBox1.Value Then
Set rng = Worksheets(iCounter).Cells.Find _
(xSuche, lookat:=Suchart, LookIn:=xlValues)
If Not rng Is Nothing Then
With Worksheets(iCounter)
xErste = rng.Address(False, False)
y = True
Do Until xAdresse = xErste
ReDim Preserve arr(0 To 8, 0 To iRowU)
arr(0, iRowU) = .Name
arr(1, iRowU) = rng.Address(False, False)
arr(2, iRowU) = .Cells(rng.Row, 1)
arr(3, iRowU) = .Cells(rng.Row, 2)
arr(4, iRowU) = .Cells(rng.Row, 3)
arr(5, iRowU) = .Cells(rng.Row, 4)
arr(6, iRowU) = .Cells(rng.Row, 5)
arr(7, iRowU) = .Cells(rng.Row, 6)
arr(8, iRowU) = .Cells(rng.Row, 8)
iRowU = iRowU + 1
Set rng = .Cells.FindNext(after:=rng)
xAdresse = rng.Address(False, False)
Loop
xAdresse = ""
xErste = ""
End With
End If
End If
Next iCounter
If y = False Then
MsgBox "Der Suchbegriff wurde nicht gefunden!"
Else
ListBox1.Column = arr
End If
End Sub

wird die UserForm befüllt.
Allerdings habe ich im Datenblatt als Zeile 1 die Spaltenbennung als "Überschrift".
Diese soll in der Suche jedoch nicht enthalten sein.
Da ich mit array bislang wenig gemacht hatte bekomme ich das nicht geändert und brauche wieder Eure Hilfe.
Gruß Rainer
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: ListBox-Inhalt ohne Überschrift
16.06.2012 09:36:02
Reinhard
Hallo Rainer,
If y = False Then
MsgBox "Der Suchbegriff wurde nicht gefunden!"
Else
ListBox1.Column = arr
ListBox1.RemoveItem 0
End If
End Sub

Gruß
Reinhard
AW: ListBox-Inhalt ohne Überschrift
16.06.2012 10:30:00
RainerK
Hallo Reinhard,
vielen Dank für Deine Mithilfe.
Allerdings scheint mit Deiner Ergänzung ja lediglich das Ergebnis um die Zeile 1 gekürzt angezeigt zu werden.
Was ich wollte ist, dass die Überschrift nicht in die Suche mit einbezogen wird.
Also Suche erst ab Zeile 2 des Tabellenblattes ["CheckBox1.Value"]*
Gruß Rainer
*Wobei ich gerade festgestellt habe, dass ich in dieser UserForm gar keine CheckBox2 habe.
Die Änderung ohne CheckBox2 (werde ich vermutlich alleine schaffen) nehme ich noch vor.
Anzeige
AW: ListBox-Inhalt ohne Überschrift
16.06.2012 12:06:02
Gerd
Hallo Rainer!
Set Rng = Worksheets(iCounter).Rows("2:" & Worksheets(iCounter). _
Cells.SpecialCells(xlCellTypeLastCell).Row).Find _
(xSuche, lookat:=Suchart, LookIn:=xlValues)
If Not Rng Is Nothing ....
Weshalb möchtest Du ganze Zeilen durchsuchen?
Gruß Gerd
AW: ListBox-Inhalt ohne Überschrift
16.06.2012 13:47:33
RainerK
Hallo Gerd,
Weshalb möchtest Du ganze Zeilen durchsuchen?

Das liegt an meinen bescheidenen VBA-Kenntnissen.
Da nutze ich für mich, was ich so durch die Suche im Netz finde.
Aber Dein Gedanke liegt hier schon richtig.
Im Grunde müsste ich in diesem Fall (zumindest zu jetztigen Zeitpunkt) nur nach Spalte A (Ziffern - Kundennumer) und Spalte D (Buchstaben - Nachnamen) suchen.
Gruß Rainer
Anzeige
AW: ListBox-Inhalt ohne Überschrift
16.06.2012 16:23:39
RainerK
Hallo,
klappt leider noch nicht ganz.
Nun werden die Werte aus Zeile 1 ganz unten angehängt.
Füge mal Beispielmappe bei. Teste Suche mit "d"
https://www.herber.de/bbs/user/80589.xls
AW: ListBox-Inhalt ohne Überschrift
19.06.2012 07:57:55
Case
Hallo, :-)
der Fehler liegt in dieser Zeile:
Set rng = .Cells.FindNext(after:=rng)
Damit suchst Du wieder im gesamten Tabellenblatt. :-)
Schreibe es so:
Set rng = rng.FindNext(after:=rng)
Servus
Case

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige