|  
                                             Na ja, in den Foren passiert das ja oft, dass man so was vorgesetzt bekommt. Ich selbst nutze .AddItem kaum. Meist arbeite ich, wenn es Vorteile bringt mit Arrays. 
Das Laden der Tabelle des TO würde ich so erschlagen: 
Option Explicit
    Private Const STARTZEILE As Long = 2
    Private Ws As Worksheet, arrTab()
Private Sub UserForm_Initialize()
    Dim i&
    Set Ws = Sheets("Auditorenliste")
    arrTab = Ws.Range("A1").CurrentRegion.Offset(STARTZEILE - 1, 0).Value
    If UBound(arrTab) = 1 Then Exit Sub
    If UBound(arrTab) = 2 Then
        ReDim Preserve arrTab(1 To 2, 1 To UBound(arrTab, 2) + 1)
        For i = UBound(arrTab, 2) To 2 Step -1
            arrTab(1, i) = arrTab(1, i - 1)
        Next i
        arrTab(1, 1) = STARTZEILE
    Else
        arrTab = Application.Index(arrTab, Evaluate("row(1:" & UBound(arrTab, 1) & ")"), Array(1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
        For i = 1 To UBound(arrTab)
            arrTab(i, 1) = i + 1
        Next i
    End If
    With ListBox1
            .ColumnCount = UBound(arrTab, 2)
            .ColumnWidths = "50; 100; 100; 250; 25; 25; 25; 25; 25; 25; 100"
            .List = arrTab
            .RemoveItem (.ListCount - 1)
    End With
End Sub
@Max: 
Ändern der Einträge ebenfalls in ein Array sammeln und das Array via Resize in die Tabelle zurückschreiben. Während des Sammelns ins Array gleich die Zeile der Listbox mit den Änderungen aktualisieren. Ebenso nach dem Löschen mit .RemoveItem (.ListIndex) aktualisieren. 
Ein Beispiel was ich vor kurzem mal zusammengestellt hatte (allerdings zur Bearbeitung im Listobjekt) findest du hier: 
Listbox bearbeiten via Array 
Gruß Uwe 
     |