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