aivilon
Goto Top

ListView Excel VBA - Überschrift und Spaltenwerte

Moin Zusammen

Ich brauche in meiner UserForm eine Liste. Diese Liste soll die Spalten F, G, I und L anzeigen. Jeweils in Zelle 1 steht der Titel der Spalte, welcher dann auch für die ListView der Titel sein soll.

Ich hab mich nun schon durch Google gekämpft und was gefunden. Aber irgendwie bring ich das nicht auf mein Bedürfnis hin:
Worksheets("BISy").Activate  

Dim oItem As ListItem
Dim Daten(0 To 500, 2) As Variant
Dim i As Long
    With ListView1
        '.Width = 350  
        '.Height = 300  
        .View = lvwReport
        .ColumnHeaders.Add , , Sheets("BISy").Range("F1"), 70  
        .ColumnHeaders.Add , , Sheets("BISy").Range("G1"), 100  
        .ColumnHeaders.Add , , Sheets("BISy").Range("I1"), 200  
        .ColumnHeaders.Add , , Sheets("BISy").Range("L1"), 40  
        .Gridlines = True
        For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
            Daten(i - 2, 0) = Cells(i, 6)
            Daten(i - 2, 1) = Cells(i, 7)
            Daten(i - 2, 2) = Cells(i, 9)
            Daten(i - 2, 3) = Cells(i, 12)
            Set oItem = .ListItems.Add(, , Daten(i - 2, 6))
            oItem.SubItems(1) = Daten(i - 2, 7)
            oItem.SubItems(2) = Daten(i - 2, 9)
            oItem.SubItems(3) = Daten(i - 2, 12)
        Next
    End With

Original war es so:
Private Sub UserForm_Initialize()
Dim oItem As ListItem
Dim Daten(0 To 500, 2) As Variant
Dim i As Long
    With ListView1
        .View = lvwReport
        .ColumnHeaders.Add , , Sheets("Tabelle1").Range("A1"), .Width / 3  
        .ColumnHeaders.Add , , Sheets("Tabelle1").Range("B1"), .Width / 3  
        .ColumnHeaders.Add , , Sheets("Tabelle1").Range("D1"), .Width / 3  
        .Gridlines = True
        For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
            Daten(i - 2, 0) = Cells(i, 1)
            Daten(i - 2, 1) = Cells(i, 2)
            Daten(i - 2, 2) = Cells(i, 4)
            Set oItem = .ListItems.Add(, , Daten(i - 2, 0))
            oItem.SubItems(1) = Daten(i - 2, 1)
            oItem.SubItems(2) = Daten(i - 2, 2)
        Next
    End With
End Sub

Fehlermeldung:
Laufzeitfehler '9':
Index ausserhalb des gültigen Bereichs


Wo habe ich einen Denkfehler/Flüchtigkeitsfehler/Unwissenheitsfehler gemacht?


Grüsse, Aiv

Content-Key: 277907

Url: https://administrator.de/contentid/277907

Printed on: April 18, 2024 at 21:04 o'clock

Mitglied: 114757
Solution 114757 Jul 21, 2015, updated at Jul 22, 2015 at 08:15:03 (UTC)
Goto Top
Moin,
    Dim ws As Worksheet, oItem As ListItem, itms As ListItems, i as Long
    Set ws = Sheets("BISy")  
    With ListView1
        .View = lvwReport
        .ColumnHeaders.Add , , ws.Range("F1"), 70  
        .ColumnHeaders.Add , , ws.Range("G1"), 100  
        .ColumnHeaders.Add , , ws.Range("I1"), 200  
        .ColumnHeaders.Add , , ws.Range("L1"), 40  
        .Gridlines = True
        For i = 2 To ws.UsedRange.SpecialCells(xlCellTypeLastCell).Row
            Set oItem = .ListItems.Add(, , ws.Cells(i, "F"))  
            oItem.SubItems(1) = ws.Cells(i, "G")  
            oItem.SubItems(2) = ws.Cells(i, "I")  
            oItem.SubItems(3) = ws.Cells(i, "L")  
        Next
    End With
Gruß jodel32
Member: aivilon
aivilon Jul 22, 2015 at 07:37:05 (UTC)
Goto Top
Moin Jodel

Danke dir! geht wunderbar. Hab noch bei DIM i AS Long hinzugefügt.
Sonst wunderbar!


Grüsse
Aiv