mam jednoduchou proceduru, ktera mi odmazava zaznamy z ListBoxu2 pokud jsou i v ListBoxu1.
Jednoduchou, presto nefunkcni. V kodu jsem vyznacil problemovy radek.
Kód: Vybrat vše
Private Sub cmbTest_Click()
Dim i As Long
For i = 0 To Me.ListBox1.ListCount - 1
    If Me.ListBox1.List(i) <> vbNull Then
        OdstranItem Me.ListBox1.List(i)
    End If
Next i
End Sub
Kód: Vybrat vše
Private Function OdstranItem(str As String)
Dim valExists As Boolean
Dim j As Long
valExists = False
    For j= 0 To Me.ListBox2.ListCount - 1
        If Me.ListBox2.List(j) = str Then valExists = True
    Next j
    If valExists Then
        MsgBox "Zaznam " & str & " nalezen, bude vymazan", vbInformation     ' ## Msg se zobrazi spravne
        Me.ListBox2.RemoveItem str     ' ##  chyba: Neplatny argument
    Else
    End If
End Function
alternativni funkce mi take pada na stejnou chybu
Kód: Vybrat vše
Private Function OdstranItem(str As String)
Dim j As Long
    For j = 0 To Me.ListBox2.ListCount - 1
        If Me.ListBox2.List(j) = str Then
        MsgBox "Zaznam " & str & " nalezen, bude vymazan", vbInformation
        Me.ListBox2.RemoveItem str
        End If
    Next j
End Function
pokud radek odmazu zaznamu upravim na:
Kód: Vybrat vše
Me.ListBox2.RemoveItem (j)
pripadne na:
Kód: Vybrat vše
Me.ListBox2.RemoveItem j
hlasi mi to chybu tentokrat pri zpracovani funkce na radku:
Kód: Vybrat vše
 If Me.ListBox2.List(j) = str Then                    ' ## Chyba: Could not get the List property. Invalid property array index
Predem diky za rady jak z toho ven.
--- Doplnění předchozího příspěvku (19 Bře 2015 11:42) ---
Pouze pro doplneni mozna dulezitych informaci:
ListBox1 je plnen daty z Worksheetu metodou AddItem
ListBox2 je plnen daty z db Oracle opet metodou AddItem
Oba ListBoxy jsou soucasti UserForm


