Fehler abfangen in Userform

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Fehler abfangen in Userform
von: Chris
Geschrieben am: 13.07.2015 07:50:25

Hallo Forum,
mit Folgenden Makro verschiebe ich Einträge aus einer UF in eine andere UF.
Wenn jedoch UF1 leer ist, stürzt das Makro ab.
Wie kann ich diesen Fehler abfangen? Wenn UF1 leer, dann Exit Sub.
Gruß
Chris
Dim lngRow As Long, lngColumn As Long
Dim i As Integer
For i = 0 To ListBox1.ListCount - 1
ListBox1.Selected(i) = True
Next i

With ListBox2
Do

If ListBox1.Selected(lngRow) Then
.AddItem
For lngColumn = 0 To 3
.List(.ListCount - 1, lngColumn) = ListBox1.List(lngRow, lngColumn)
Next
ListBox1.RemoveItem lngRow
Else
lngRow = lngRow + 1
End If
End If
Loop Until lngRow = ListBox1.ListCount
End With

Bild

Betrifft: AW: Fehler abfangen in Userform
von: EtoPHG
Geschrieben am: 13.07.2015 08:39:48
Hallo Chris,
Da ist einiges durcheinander: Der Code spricht 2 Listboxen an, aber nicht in verschiedenen Klassenmodulen! Redest du wirklich von 2 verschiedenen Userforms (UF), dann müssten diese im Code explizit referenziert werden, also z.B.
UserForm1.ListBox1...
UserForm2.ListBox1...
Dein Codeschnipsel ist also aussagelos. Es fehlt der Kontext (Klassenmodul) und ist zudem die Prozedur/Funktion in dem der Code steht!
Gruess Hansueli

Bild

Betrifft: AW: Fehler abfangen in Userform
von: Chris
Geschrieben am: 13.07.2015 08:51:58
Hi,
ja, es sind zwei Listboxen und der Code ist auf einen Button gelegt...
Private Sub CommandButton1_Click()...
funktioniert soweit prima - nur wenn die Listbox1 leer ist, folgt ein Programmabsturz
Gruß
Chris

Bild

Betrifft: AW: Fehler abfangen in Userform
von: EtoPHG
Geschrieben am: 13.07.2015 08:56:14
Hallo Chris,
Mit diesem Informationsgetröpfel kommen wir nicht weiter!
Es fehlt immer noch die Angabe der Klassenmodule (Wo befindet sich der vollständige Code)! Wo befindet sich dieser Button?
Wo befinden sich die beiden Listboxen?
Wenn du nicht in der Lage bist, dies zu bestimmen, lade eine Beispielmappe hoch!
Gruess Hansueli

Bild

Betrifft: AW: Fehler abfangen in Userform
von: Chris
Geschrieben am: 13.07.2015 10:12:53
Hi,
ja, es sind zwei Listboxen und der Code ist auf einen Button gelegt...
Private Sub CommandButton1_Click()...
funktioniert soweit prima - nur wenn die Listbox1 leer ist, folgt ein Programmabsturz
Gruß
Chris

Bild

Betrifft: AW: Fehler abfangen in Userform
von: Chris
Geschrieben am: 13.07.2015 10:13:13
Hi,
ja, es sind zwei Listboxen und der Code ist auf einen Button gelegt...
Private Sub CommandButton1_Click()...
funktioniert soweit prima - nur wenn die Listbox1 leer ist, folgt ein Programmabsturz
Gruß
Chris

Bild

Betrifft: AW: Fehler abfangen in Userform
von: Nepumuk
Geschrieben am: 13.07.2015 10:36:43
Hallo,
na dann frag doch einfach ab, ob es Einträge in der Listbox1 gibt:

Private Sub CommandButton1_Click()
    Dim lngRow As Long, lngColumn As Long
    Dim i As Integer
    
    If ListBox1.ListCount > 0 Then
        
        For i = 0 To ListBox1.ListCount - 1
            ListBox1.Selected(i) = True
        Next i
        
        With ListBox2
            Do
                
                If ListBox1.Selected(lngRow) Then
                    .AddItem
                    For lngColumn = 0 To 3
                        .List(.ListCount - 1, lngColumn) = _
                            ListBox1.List(lngRow, lngColumn)
                    Next
                    ListBox1.RemoveItem lngRow
                Else
                    lngRow = lngRow + 1
                End If
            Loop Until lngRow = ListBox1.ListCount
        End With
    End If
End Sub

Gruß
Nepumuk

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Fehler abfangen in Userform"