ich habe UserForm mit ListBox1 Single und ListBox2 Multi dafür habe ich Code zusammen gewürfelt aber mit Spaltenbreite nimmt nicht ernst.
Spaltenbreiten in ListBox1 sind unterschiedliche Größe und abgeschnitten und zusammen gedrückt ohne eingeblendete Horizontale Scrollbar?. In ListBox2 geht so.
In beiden Tabellen habe ich beim schreiben und löschen von Daten, AutoFit Metode angewendet die mit eine andere UserForm ausgeführt wird.
Kann man in der Code was korrigieren dass es funktioniert?
Private Sub UserForm_Initialize()
Application.WindowState = xlMaximized
With Me
.Height = Application.Height
.Width = Application.Width
End With
Dim lngColumnA As Long
Dim strColumnWidthA As String
Dim iRowA As Integer
iRowA = Worksheets("Adressen").Cells(Rows.Count, 1).End(xlUp).Row - 1 '-1 weil letzte Zeile leer bleibt
With Worksheets("Adressen")
For lngColumnA = 1 To iRowA
strColumnWidthA = strColumnWidthA & CStr(.Columns(lngColumnA).Width + 25) & ";" '+25 zusätzliche Breite
Next
End With
strColumnWidthA = Left$(strColumnWidthA, Len(strColumnWidthA) - 1)
With ListBox1
.ColumnHeads = True
.ColumnCount = 16
.RowSource = "Adressen!A2:P" & lngColumnA
.ColumnWidths = strColumnWidthA
End With
Dim lngColumnB As Long
Dim strColumnWidthB As String
Dim iRowB As Integer
iRowB = Worksheets("Artikel").Cells(Rows.Count, 1).End(xlUp).Row - 1 '-1 weil letzte Zeile leer bleibt
With Worksheets("Artikel")
For lngColumnB = 1 To iRowB
strColumnWidthB = strColumnWidthB & CStr(.Columns(lngColumnB).Width + 25) & ";" '+25 zusätzliche Platz damit wird Spalteninhalt nicht abgeschnitten
Next
End With
strColumnWidthB = Left$(strColumnWidthB, Len(strColumnWidthB) - 1)
With ListBox2
.ColumnHeads = True
.ColumnCount = 7
.RowSource = "Artikel!A2:G" & lngColumnB
.ColumnWidths = strColumnWidthB
End With
End Sub
Gruß