Ist es bitte möglich, den Inhalt einer mehrspaltigen Listbox in einer UF, also auch den nichtsichtbaren Teil auszudrucken?
Wenn ja, wie würde hier bitte eine Lösung lauten?
Danke
Josef
Private Sub CommandButton1_Click()
Dim PrintTab As Worksheet
Dim myAr
myAr = ListBox1.List
Set PrintTab = Worksheets.Add
PrintTab.Range("A1").Resize(Ubound(myAr, 1) + 1, Ubound(myAr, 2)) = myAr
PrintTab.Cells.EntireColumn.AutoFit
PrintTab.PrintOut
Application.DisplayAlerts = False
PrintTab.Delete
Application.DisplayAlerts = True
End Sub
Gruß Tino
PrintTab.PageSetup.Orientation = xlLandscape
'Gegenstück
PrintTab.PageSetup.Orientation = xlPortrait
Gruß Tino
Um den Inhalt einer mehrspaltigen ListBox in Excel zu drucken, kannst du folgenden VBA-Code verwenden. Dieser Code erstellt ein neues Arbeitsblatt, überträgt die Daten der ListBox und druckt das Blatt anschließend aus.
Öffne den Visual Basic for Applications (VBA) Editor (drücke ALT + F11
).
Füge einen neuen Modul hinzu (Einfügen > Modul
).
Kopiere den folgenden VBA-Code in das Modul:
Private Sub CommandButton1_Click()
Dim PrintTab As Worksheet
Dim myAr
myAr = ListBox1.List
Set PrintTab = Worksheets.Add
PrintTab.Range("A1").Resize(Ubound(myAr, 1) + 1, Ubound(myAr, 2)) = myAr
PrintTab.Cells.EntireColumn.AutoFit
PrintTab.PrintOut
Application.DisplayAlerts = False
PrintTab.Delete
Application.DisplayAlerts = True
End Sub
Schließe den VBA-Editor und teste den Code, indem du auf die Schaltfläche klickst, die den Makro ausführt.
Fehler: Der Druck erfolgt nicht, weil die ListBox leer ist.
Lösung: Stelle sicher, dass die ListBox vor dem Drucken mit Daten gefüllt ist.
Fehler: Der Druck erfolgt im Hochformat, obwohl Querformat gewünscht ist.
Lösung: Füge den folgenden Code vor dem PrintOut
-Befehl hinzu, um das Querformat einzustellen:
PrintTab.PageSetup.Orientation = xlLandscape
Eine weitere Möglichkeit ist die Verwendung des Makrorekorders, um die Druckeinstellungen manuell zu erstellen und den generierten Code anzupassen.
Entwicklertools > Makro aufzeichnen
).Angenommen, du hast eine ListBox mit den folgenden Daten:
Name | Alter | Stadt |
---|---|---|
Max | 25 | Berlin |
Anna | 30 | Hamburg |
Tom | 22 | München |
Mit dem oben genannten VBA-Code wird ein neues Arbeitsblatt erstellt und die Daten wie folgt gedruckt:
| Name | Alter | Stadt |
|------|-------|---------|
| Max | 25 | Berlin |
| Anna | 30 | Hamburg |
| Tom | 22 | München |
Nutze Application.ScreenUpdating = False
, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren. Dies kann die Ausführungsgeschwindigkeit erhöhen.
Experimentiere mit der Formatierung der Zellen auf dem neuen Arbeitsblatt, um das Layout des Ausdrucks zu optimieren. Beispiel:
With PrintTab.Range("A1:C1")
.Font.Bold = True
.Interior.Color = RGB(200, 200, 200)
End With
1. Wie kann ich sicherstellen, dass alle Daten der ListBox gedruckt werden?
Achte darauf, dass die ListBox vollständig gefüllt ist und dass du die richtigen Dimensionen für das Zielarbeitsblatt im Code angibst.
2. Kann ich den Hintergrund des Drucks anpassen?
Ja, indem du zusätzliche Formatierungsbefehle im VBA-Code hinzufügst. Du kannst beispielsweise die Hintergrundfarbe der Zellen ändern, bevor du druckst.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen