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

Forumthread: Spaltenbreiten in Listbox

Spaltenbreiten in Listbox
10.10.2007 23:11:37
Lars
Hallo Leute,
möchte in einer mehrspaltigen Listbox erreichen, dass alle Spalten die selbe Breite haben wie in
der Tabelle, aus der die daten stammen, dort werden die Spalten mit optimaler Spaltenbreite
formatiert. Schrift in der Tabelle ist gleich schrift in der Listbox.
Danke schon mal.
mfg Lars

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Spaltenbreiten in Listbox
11.10.2007 00:14:46
Daniel
Hi
automatisch geht da meines Wissens nach nichts, die änderung der Spaltenbreiten muß per Hand oder vom Makro aus erfolgen.
die Spaltenbreite innerhalb der Listbox wird in der Eigenschaft ColumnWidhts festgelegt, wobei die Breite pro Spalte jeweils in Pt angegeben und durch Semikolon getrennt wird. (dh. die Breite wird für jede Spalte extra angegeben, etwa so:" 60 Pt;60 Pt;60 Pt", das "PT" wird automatisch eingefügt)
für die Umrechung der in Excel angebenen Spaltenbreite der Tabelle in die Spaltenbreite der Listbox musst du noch einen Faktor anwenden, beim mir liegt der in etwa bei 6. dh. das o.g. Beispiel von 60 passt für die Excel-Standarbreite von 10,71.
Gruß, Daniel

Anzeige
AW: Spaltenbreiten in Listbox
11.10.2007 00:19:00
Lars
Hi,
danke schon mal.
Hättest du ein Codebeispiel, bei dem beim Öffnen der Userform die Spalten der Listbox
an die Spalten der Tabelle angepasst werden ?
mfg Lars

AW: Spaltenbreiten in Listbox
11.10.2007 00:35:20
Daniel
Hi
nö, hab ich nicht.
Lies dir mal die OnlineHilfe zu ColumnWidth durch, da ist es dann erklärt, wie der String für die Eingabe aussehen muss.
du musst dann ne kleine Schleife machen, die die Breite der betroffenen Spalten in Excel ermittelt, mit dem erforderlichen Faktor umrechnet und den String passend zusammensetzt.
Gruß, Daniel

Anzeige
Bahnhof, aber welcher?
11.10.2007 00:42:00
Lars
Hi,
danke, verstehe ich leider mangels VBA-Kennung nicht.
mfg Lars

AW: Bahnhof, aber welcher?
11.10.2007 01:34:00
Daniel
Hi
wenn dir das mehr hilft?

Dim Zelle As Range
Dim strCW As String
For Each Zelle In Range(ListBox1.ListFillRange).Rows(1).Cells
strCW = strCW & ";" & Zelle.Width
Next
ListBox1.ColumnWidths = Mid(strCW, 2)


ist allerdings für ne Steuerelement-Listbox.
könnte sein, daß bei einer Userform-Listbox du statt Listbox1.Listfillrange Listbox1.rowsource verwenden musst.
gruß, Daniel

Anzeige
AW: Spaltenbreiten in Listbox
11.10.2007 07:25:25
Beverly
Hi Lars,

ListBox1.ColumnWidths = ActiveSheet.Columns(1).Width & ";" & ActiveSheet.Columns(2).Width & ";" & ActiveSheet.Columns(3).Width


________________________________________

Anzeige
AW: Spaltenbreiten in Listbox
11.10.2007 07:27:00
Beverly
Hi Lars,

ListBox1.ColumnWidths = ActiveSheet.Columns(1).Width & ";" & ActiveSheet.Columns(2).Width & ";" & ActiveSheet.Columns(3).Width


________________________________________

Anzeige
Danke an alle. oT
12.10.2007 16:16:31
Lars
ot
;
Anzeige
Anzeige

Infobox / Tutorial

Spaltenbreiten in einer Listbox anpassen


Schritt-für-Schritt-Anleitung

Um die Spaltenbreiten in einer Listbox in Excel VBA anzupassen, befolge diese Schritte:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge eine Userform hinzu: Klicke mit der rechten Maustaste auf dein Projekt und wähle "Einfügen" > "Userform".

  3. Füge eine Listbox hinzu: Ziehe eine Listbox aus der Toolbox auf die Userform.

  4. Setze die Eigenschaften: Stelle sicher, dass die Listbox mehrspaltig ist. Setze die Eigenschaft ColumnCount auf die gewünschte Anzahl an Spalten.

  5. Füge den VBA-Code hinzu: Klicke auf die Userform und füge den folgenden Code in das Codefenster ein:

    Private Sub UserForm_Initialize()
       Dim Zelle As Range
       Dim strCW As String
    
       ' Schleife über die Zellen der ersten Zeile
       For Each Zelle In Range("A1:C1") ' Ändere den Bereich nach Bedarf
           strCW = strCW & ";" & Zelle.Width
       Next
    
       ' Setze die Spaltenbreiten der Listbox
       ListBox1.ColumnWidths = Mid(strCW, 2)
    End Sub
  6. Starte die Userform: Drücke F5, um die Userform zu starten und die Listbox mit den angepassten Spaltenbreiten anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: Listbox zeigt keine Daten an
    Lösung: Stelle sicher, dass die RowSource oder ListFillRange korrekt gesetzt ist.

  • Fehler: Spaltenbreiten werden nicht angezeigt
    Lösung: Überprüfe, ob der Code zur Initialisierung der Listbox korrekt ausgeführt wird. Stelle sicher, dass der Bereich für die Zellen korrekt angegeben ist.


Alternative Methoden

Eine alternative Methode, um die columnwidths einer Listbox in Excel VBA anzupassen, besteht darin, die Breiten manuell zu definieren:

ListBox1.ColumnWidths = "60;60;60" ' Setze hier die Breiten in Punkten

Diese Methode ist einfach und eignet sich gut, wenn du bereits die genauen Breiten kennst.


Praktische Beispiele

Hier ist ein Beispiel, wie du die Spaltenbreiten einer Listbox anpassen kannst, um sie an die Excel-Spaltenbreiten anzupassen:

Private Sub UserForm_Initialize()
    ListBox1.ColumnWidths = ActiveSheet.Columns(1).Width & ";" & _
                            ActiveSheet.Columns(2).Width & ";" & _
                            ActiveSheet.Columns(3).Width
End Sub

Dies verwendet die Breiten der Spalten A, B und C des aktiven Arbeitsblattes.


Tipps für Profis

  • Verwende Variablen: Anstatt die Breiten manuell einzugeben, speichere sie in Variablen. So kannst du den Code leichter anpassen.

  • Dynamische Bereiche: Statt fester Zellbereiche kannst du dynamische Bereiche verwenden, um die Listbox breiter oder schmaler zu gestalten, je nach Inhalt.

  • Formatierung: Achte darauf, dass die Schriftarten in der Tabelle und der Listbox übereinstimmen, um ein konsistentes Design zu gewährleisten.


FAQ: Häufige Fragen

1. Wie kann ich die Spaltenbreiten automatisch anpassen?
Die automatische Anpassung der Spaltenbreiten in der Listbox ist nicht direkt möglich. Du musst die Breiten manuell oder über VBA festlegen, wie im obigen Beispiel gezeigt.

2. Welche Maßeinheit wird für die Spaltenbreiten verwendet?
Die Spaltenbreiten werden in Punkten (Pt) angegeben. Ein Faktor von etwa 6 wird oft verwendet, um die Excel-Spaltenbreiten in Listbox-Spaltenbreiten umzurechnen.

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