Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
884to888
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
884to888
884to888
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ListBox mit Spalten

ListBox mit Spalten
11.07.2007 18:31:00
Tobias
Hallo.
Ich habe ein eine Datei mir einem Userform
Dort kann man nach einem Namen der innerhalb der Dateien Daten_24.xls und Daten_27.xls suchen.
Diese werden dann in der Listbox ausgegeben.
Jetzt werden sie alle in eine Zeile und mit einem " | " angezeigt.
WIe kann man das ändern das jeder wert in eine Spalte kommt ?
lg
Tobias
https://www.herber.de/bbs/user/43742.zip

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox mit Spalten
11.07.2007 22:14:00
Gerd
Hallo Tobias,
stelle im Eigenschaftenfenster der Listbox ColumnCount auf 7.
Private Sub cmdSearch_Click()
Dim rng As Range
Dim sFirst As String
Dim i As Integer
ListBox1.Clear
Set rng = Workbooks("DATEN_27.xls").Worksheets("Daten erfassung").Range("E:E") _
.Find(What:=txtSearch, LookIn:=xlValues, LookAt:=xlPart, After:=Range("E65536"))
If Not rng Is Nothing Then
sFirst = rng.Address
ListBox1.AddItem
'Nachname
ListBox1.List(i, 0) = "1 " & rng
'Vorname
ListBox1.List(i, 1) = "2 " & rng.Offset(0, 1)
'Straße
ListBox1.List(i, 2) = "3 " & rng.Offset(0, 3)
'PLZ
ListBox1.List(i, 3) = "4 " & rng.Offset(0, 4)
'Ort
ListBox1.List(i, 4) = "5 " & rng.Offset(0, 4)
'Auftragsnummer
ListBox1.List(i, 5) = "6 " & rng.Offset(0, -4)
'Zeile
ListBox1.List(i, 6) = "7 " & rng.Row
i = i + 1
Do
Set rng = Workbooks("DATEN_27.xls").Worksheets("Daten erfassung").Range("E:E"). _
FindNext( _
After:=rng)
If rng.Address = sFirst Then Exit Do
ListBox1.AddItem
'Nachname
ListBox1.List(i, 0) = "1 " & rng
'Vorname
ListBox1.List(i, 1) = "2 " & rng.Offset(0, 1)
'Straße
ListBox1.List(i, 2) = "3 " & rng.Offset(0, 3)
'PLZ
ListBox1.List(i, 3) = "4 " & rng.Offset(0, 4)
'Ort
ListBox1.List(i, 4) = "5 " & rng.Offset(0, 4)
'Auftragsnummer
ListBox1.List(i, 5) = "6 " & rng.Offset(0, -4)
'Zeile
ListBox1.List(i, 6) = "7 " & rng.Row
i = i + 1
Loop
End If
.........................................................
Und im zeiten Codeabschnitt nochmal das selbe. Die Ziffern stehen nur für Testzwecke drin.
Gruß Gerd

Anzeige
AW: ListBox mit Spalten
12.07.2007 00:10:00
Tobias
Ja cool ... danke Gerd!!

Überschift
12.07.2007 21:49:31
Tobias
Die Hilfe hier ist echt Klasse,
Ich habe habe aber noch eine weitere Frage.
Wie kann ich bei dem Skript von Gerd ganz oben eine Überschrift der Spalten machen?
Am besten Grau hinterlegt.
lg
Tobi

AW: Überschift
12.07.2007 22:59:47
Gerd
Hallo Tobi,
dies geht meines Wissen nur, wenn die Listbox mittels der "RowSource"-Eigenschaft gefüllt wird.
Da Du die Daten selektiv benötigst ist "AddItem" die richtige Vorgehensweise.
Ergo müsstest die gefundenen Daten zuerst in ein separates Tabellenblatt oder zumindest
Tabellenblattbereich ausgeben u. dort eine Zeile "höher" Überschriften reinschreiben, die Listbox
aus diesem Range mit der "RowSource" füllen.
Eine viel einfachere Hilfslösung wäre, über die Listbox eine kleine zweite Listbox mit den
Überschriften zu setzen oder Labels.
Aber vielleicht weis dies jemand besser oder in xl2003 ist mehr möglich als in meiner xl2000-Version ?
Gruß Gerd

Anzeige
AW: Überschift
12.07.2007 23:48:00
Tobias
Danke .. ich habe es jetzt so gelöst das ich eine neue Listbox mit der Überschrift gemacht.
Eine Frage habe ich jetzt noch ...
in der 3. Spalte habe ich viel Text der in der Datei wo die Daten hergenommen werden in 3 Spalten stehen
Ich habe es jetzt so gemacht das mir alle Daten angezeigt werden ..

ListBox2.AddItem
ListBox2.List(i, 0) = rng.Offset(0, -17) & " " & rng.Offset(0, -16)
ListBox2.List(i, 1) = "| " & rng.Offset(0, -7)
ListBox2.List(i, 2) = "| " & rng.Offset(0, 86)
ListBox2.List(i, 3) = "| " & rng.Offset(0, 97)
ListBox2.List(i, 4) = "| " & rng.Offset(0, 98)
ListBox2.List(i, 5) = "| " & rng
i = i + 1
ListBox2.AddItem
ListBox2.List(i, 0) = " "
ListBox2.List(i, 1) = " "
ListBox2.List(i, 2) = "| " & rng.Offset(0, 87)
ListBox2.List(i, 3) = "| "
ListBox2.List(i, 4) = " "
ListBox2.List(i, 5) = " "
i = i + 1
ListBox2.AddItem
ListBox2.List(i, 0) = " "
ListBox2.List(i, 1) = " "
ListBox2.List(i, 2) = "| " & rng.Offset(0, 88)
ListBox2.List(i, 3) = "| "
ListBox2.List(i, 4) = " "
ListBox2.List(i, 5) = " "
i = i + 1
Loop


Meine Frage jetzt ... kann ich die 3. oder auch zweite Spalte nicht aufrufen falls in dem Offset Feld 88 bzw. 87 nichts steht ?

Anzeige
AW: Überschift
12.07.2007 23:58:05
Tobias
So schaut es dann aus.
Ich möchte das dann die 3. Spalte nicht angezeigt wird da der Inhalt von rng.Offset(0, 87) leer ist.
Userbild
P.S. Aus Datenschutz die roten Felder.
lg
Toby

AW: Überschift
14.07.2007 09:28:00
Gerd
Hallo Toby,
du kannst entweder von bestimmten Werten abhängig machen, ob einzelne Einträge
in die Lisbox erfolgen sollen oder die Spaltenbreite einer Spalte der Listbox anhand
bestimmter Bedingungen auf 0 setzen.
Was meinst Du also mit "nicht anzeigen" ?
Gruß Gerd
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige