Hallo zusammen,
kann mir jemand sagen, warum mir ständig LAufzeitfehler 380: Eigenschaft List konnte nicht gesetzt werden. Ungültiger Eigenschaftswert angezeigt wird?
Ich komm einfach nicht auf den Fehler.
Meine Listbox hat diese Eigenschafte, siehe Bild.
Bild
Und der Code für meine Userform in Excel ist dieser.
Private Sub CommandButton1_Click()
UserForm_AddAuditor.Show
End Sub
Private Sub CommandButton_Refresh_Click()
LoadAuditoren ' Diese Methode sollte die ListBox aktualisieren
End Sub
Private Sub UserForm_Initialize()
LoadAuditoren
End Sub
Private Sub LoadAuditoren()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Auditorenliste")
Me.lstAuditor.Clear
' Konfiguriere die ListBox für mehrere Spalten
With Me.lstAuditor
.ColumnCount = 11
.ColumnWidths = "50;100;100;250;25;25;25;25;25;25;100"
.BoundColumn = 1
.TextColumn = 1
.ListStyle = fmListStylePlain
.MultiSelect = 0
.MatchEntry = fmMatchEntryFirstLetter
End With
Dim cell As Range
Dim rowIndex As Long
rowIndex = 0 ' Startet bei 0, da List-Index nullbasiert ist
For Each cell In ws.Range("A2:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row)
Me.lstAuditor.AddItem cell.Value ' ID hinzufügen
' Setze die einzelnen Spaltenwerte
Me.lstAuditor.List(rowIndex, 1) = cell.Offset(0, 1).Value ' Spalte B
Me.lstAuditor.List(rowIndex, 2) = cell.Offset(0, 2).Value ' Spalte C
Me.lstAuditor.List(rowIndex, 3) = cell.Offset(0, 3).Value ' Spalte D
Me.lstAuditor.List(rowIndex, 4) = cell.Offset(0, 4).Value ' Spalte E
Me.lstAuditor.List(rowIndex, 5) = cell.Offset(0, 5).Value ' Spalte F
Me.lstAuditor.List(rowIndex, 6) = cell.Offset(0, 6).Value ' Spalte G
Me.lstAuditor.List(rowIndex, 7) = cell.Offset(0, 7).Value ' Spalte H
Me.lstAuditor.List(rowIndex, 8) = cell.Offset(0, 8).Value ' Spalte I
Me.lstAuditor.List(rowIndex, 9) = cell.Offset(0, 9).Value ' Spalte J
Me.lstAuditor.List(rowIndex, 10) = cell.Offset(0, 10).Value ' Spalte K
rowIndex = rowIndex + 1
Next cell
End Sub
Private Sub CommandButton_AddAuditor_Click()
UserForm_AddAuditor.Show
End Sub
Private Sub CommandButton_DeleteAuditor_Click()
Dim ws As Worksheet
Dim selectedRow As Long
Dim response As VbMsgBoxResult
If Me.lstAuditor.ListIndex = -1 Then
MsgBox "Bitte wählen Sie einen Auditor aus.", vbExclamation
Exit Sub
End If
response = MsgBox("Möchten Sie den ausgewählten Auditor wirklich löschen?", vbYesNo + vbQuestion)
If response = vbYes Then
Set ws = ThisWorkbook.Sheets("Auditorenliste")
selectedRow = Me.lstAuditor.ListIndex + 2 ' Zeile ermitteln (ab Zeile 2 beginnen)
ws.Rows(selectedRow).Delete ' Auditor löschen
LoadAuditoren ' ListBox aktualisieren
End If
End Sub
Private Sub CommandButton_EditAuditor_Click()
Dim ws As Worksheet
Dim selectedRow As Long
Dim id As Long
If Me.lstAuditor.ListIndex = -1 Then
MsgBox "Bitte wählen Sie einen Auditor aus.", vbExclamation
Exit Sub
End If
On Error GoTo ErrorHandler ' Fehlerbehandlung aktivieren
id = Me.lstAuditor.List(Me.lstAuditor.ListIndex, 0) ' ID des ausgewählten Auditors
selectedRow = Me.lstAuditor.ListIndex + 2
' Daten in die Edit-UserForm laden
With UserForm_EditAuditor
Set ws = ThisWorkbook.Sheets("Auditorenliste")
.TextBox_ID.Value = ws.Cells(selectedRow, 1).Value
.TextBox_Name.Value = ws.Cells(selectedRow, 2).Value
.TextBox_Vorname.Value = ws.Cells(selectedRow, 3).Value
.ComboBox_Werk.Value = ws.Cells(selectedRow, 4).Value
.CheckBox_ISO14001.Value = ws.Cells(selectedRow, 5).Value
.CheckBox_ISO45001.Value = ws.Cells(selectedRow, 6).Value
.CheckBox_ISO50001.Value = ws.Cells(selectedRow, 7).Value
.CheckBox_ISO9001.Value = ws.Cells(selectedRow, 8).Value
.CheckBox_IATF.Value = ws.Cells(selectedRow, 9).Value
.TextBox_Credits.Value = ws.Cells(selectedRow, 10).Value
.TextBox_DatumFortbildung.Value = ws.Cells(selectedRow, 11).Value
.Show
End With
Exit Sub
ErrorHandler:
MsgBox "Fehler " & Err.Number & ": " & Err.Description, vbCritical
End Sub
Vielen Dank.
Lg Max
|