Ok., habe was...
18.03.2009 17:47:47
Tino
Hallo,
... brauchbares zusammengebastelt.
Nicht elegant aber, scheint aber auf den ersten Blick zu funktionieren.
Option Explicit
Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" ( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long
' ListView-Spalten auf optimale Breite setzen
Public Sub LVColumnWidth(oListView As MSComctlLib.ListView)
Dim Col As Long
With oListView
For Col = 1 To .ColumnHeaders.Count - 1
.ColumnHeaders(Col).Width = .Width / .ColumnHeaders.Count
Next Col
SendMessage .hwnd, &H1000 + 30, .ColumnHeaders.Count - 1, ByVal -2
End With
End Sub
Private Sub UserForm_Initialize()
Dim MeArea
Dim i As Long
MeArea = Range("A2:C" & Cells(Rows.Count, 3).End(xlUp).Row)
With ListView1
.ColumnHeaders.Add 1, , Range("A1")
.ColumnHeaders.Add 2, , Range("B1")
.ColumnHeaders.Add 3, , Range("C1")
.View = lvwReport
For i = 1 To Ubound(MeArea, 1)
.ListItems.Add i, , MeArea(i, 1)
.ListItems(i).SubItems(1) = MeArea(i, 2)
.ListItems(i).SubItems(2) = MeArea(i, 3)
Next i
End With
LVColumnWidth ListView1
End Sub
Gruß Tino