Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spaltenbreite auslesen und in Listbox übernehmen

Spaltenbreite auslesen und in Listbox übernehmen
Kay
Hallo,
ich habe eine Datei mit 3 Arbeitsblättern (unterschiedlicher Datenumfang und Spaltenanzahl).
Nun möchte ich gern in einer Userform eine Suchfunktion einsetzen, welche in allen 3 Tabellen
(je nach gewähltem Optionsbutton) die Daten durchsucht...und die gefundenen Zeilen dann in der Listbox auflistet. Das klappt soweit ganz gut, aber ich würde gern noch etwas an der Form arbeiten, d.h. optisch die Listbox den verschiedenen Tabellen anpassen.
Dazu wäre es am einfachsten, wenn es ein VBA-Code gäbe - der die jeweiligen Spaltenbreiten auslist der ausgewählten Tabelle und dann diese der Listbox mitteilt.
Festvergabe kann ich nicht machen, da die Tabelle im Laufe der Zeit keine festen Spaltenbreiten haben wird sondern sich die Breiten je nach Einträge anpassen.
Des weiteren würde ich gern die Spaltenüberschriften entsprechend mit übernehmen. Problem sie sind leider aus organisatorischen Gründen auch wieder unterschiedlich von Tabelle zu Tabelle. D.h. in Tabelle 1 befindet sich die Überschrift in Zeile 3, in Tabelle 2 in Zeile 6 und in Tabelle 3 in Zeile 25....
Mit der Funktion "ColumnHeads" = True ... geht es irgendwie nicht - zeigt mir keine Überschriften an - nur eine leere Zeile.
Leider komme ich mit meinen VBA-Kenntnissen nicht weiter und in den 2 Büchern finde ich auch nichts...
Gruß und Danke
Kay

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Spaltenbreite auslesen und in Listbox übernehmen
18.07.2009 19:36:10
Daniel
Hi
die Spaltenbreite kannst du so ändern:
ListBox1.Width = Sheets("Tabelle1").Columns(1).Width
Spaltenüberschriften über .Columnsheads = True funktionieren nur, wenn du die Listbox über eine Zellbezug befüllst, also in derRowSource- bzw Listfillrange-Eigenschaft sowas drinsteht wie "=A2:A10"
als überschrift wird dann der Wert aus der Zelle darüber verwendet, also aus A1.
das ist aber meisten unpraktiabel, besser ist es, ein LABEL über die Listbox zu setzen und die Überschrift da reinzuschreiben.
Gruß, Daniel
AW: Spaltenbreite auslesen und in Listbox übernehmen
18.07.2009 19:51:23
Kay
Hallo Daniel,
vielen Dank für die schnelle Hilfe - werde ich gleich mal ausprobieren und vor allem für den Tipp mit dm Label - bin ich einfach nicht selbst drauf gekommen...schön blöd, wo es doch so einfach ist.
Naja, manchmal verrennt man sich eben in Dinge und bastelt stundenlang - und übersieht dabei den einfachen Weg ;o)
Gruß
Kay
Anzeige
Spaltenbreite auslesen und in Listbox übernehmen
19.07.2009 18:28:19
Kay
Hi,
habe es versuch - aber irgendwie komme ich nicht weiter ?!
Mit Deinem Code liest er zwar die erste Spaltenbreite aus - aber wie kann ich es als Schleife so gestalten,
dass alle Spaltenbreiten ausgelesen werden und der Listbox entsprechend übergeben werden ?!
Gruß und vielen Dank
Kay
AW: Spaltenbreite bei mehrspaltiger Listbox
19.07.2009 19:46:48
Daniel
HI
wenn du eine Listbox mit mehreren Spalten hast, dann so (hier mal als Beispiel für die Spalten A bis E)
Private Sub ListBox1_Click()
Dim i As Long
Dim strBreite As String
For i = 1 To 5
strBreite = strBreite & ";" & Columns(i).Width
Next
ListBox1.ColumnWidths = Mid$(strBreite, 2)
ListBox1.Width = Range("A:E").Width + 5
End Sub
Gruß, Daniel
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge