Probleme avec Combobox.change
Salut chers tous
Jai un soucis avec mon code dans l'évènement combobox1. Change
Avec un seul enregistrement dans ma base mon code ci dessous renvoie une erreur
Private Sub ComboBox1_Change()
Dim i As Integer
Dim Item As Variant
If flag = 1 Then flag = 0: Exit Sub
listview.ListView1.ListItems.Clear
Set f = Sheets("Grille_de_Dispensation")
a = Range(f.[A2], f.[A65000].End(xlUp))
For i = LBound(a) To UBound(a)
If a(i, 1) = ComboBox1 Then
listview.ComboBox1.AddItem Cells(i + 1, 1)
Set Item = listview.ListView1.ListItems.Add(Text:=Sheets("Grille_de_Dispensation").Cells(i + 1, 1))
Item.SubItems(1) = Format(Sheets("Grille_de_Dispensation").Cells(i + 1, 2), "mmm-yyyy")
Item.SubItems(2) = Sheets("Grille_de_Dispensation").Cells(i + 1, 3)
Item.SubItems(3) = Sheets("Grille_de_Dispensation").Cells(i + 1, 4)
Item.SubItems(4) = Sheets("Grille_de_Dispensation").Cells(i + 1, 5)
Item.SubItems(5) = Sheets("Grille_de_Dispensation").Cells(i + 1, 6)
Item.SubItems(6) = Sheets("Grille_de_Dispensation").Cells(i + 1, 7)
Item.SubItems(7) = Sheets("Grille_de_Dispensation").Cells(i + 1, 8)
Item.SubItems(8) = Sheets("Grille_de_Dispensation").Cells(i + 1, 9)
Item.SubItems(9) = Format(Sheets("Grille_de_Dispensation").Cells(i + 1, 10), "mmm-yyyy")
Item.SubItems(10) = i + 1
End If
Next i
End Sub
Merci de bien vouloir me guider
Re,
Ooops je t'avais oublié !... Désolé. C'est le même problème. S'il n'y a qu'une seule ligne le tableau a n'existe pas et UBound(a) ou LBound(a) génerent une erreur. Il te faut envisager si il n'y a qu'une seule ligne alors code sans la variable a, sinon, code avec la variable a.
Merci Voici Ce que ca donne
Private Sub ComboBox1_Change()
Dim i As Integer
Dim Item As Variant
If flag = 1 Then flag = 0: Exit Sub
listview.ListView1.ListItems.Clear
If Cells(Application.Rows.Count, "A").End(xlUp).Row = 2 Then
listview.ComboBox1.AddItem Cells(2, 1)
Set Item = listview.ListView1.ListItems.Add(Text:=Sheets("Grille_de_Dispensation").Cells(2, 1))
Item.SubItems(1) = Format(Sheets("Grille_de_Dispensation").Cells(2, 2), "mmm-yyyy")
Item.SubItems(2) = Sheets("Grille_de_Dispensation").Cells(2, 3)
Item.SubItems(3) = Sheets("Grille_de_Dispensation").Cells(2, 4)
Item.SubItems(4) = Sheets("Grille_de_Dispensation").Cells(2, 5)
Item.SubItems(5) = Sheets("Grille_de_Dispensation").Cells(2, 6)
Item.SubItems(6) = Sheets("Grille_de_Dispensation").Cells(2, 7)
Item.SubItems(7) = Sheets("Grille_de_Dispensation").Cells(2, 8)
Item.SubItems(8) = Sheets("Grille_de_Dispensation").Cells(2, 9)
Item.SubItems(9) = Format(Sheets("Grille_de_Dispensation").Cells(1, 10), "mmm-yyyy")
Item.SubItems(10) = 2
Else
Set f = Sheets("Grille_de_Dispensation")
a = Range(f.[A2], f.[A65000].End(xlUp))
For i = LBound(a) To UBound(a)
If a(i, 1) = ComboBox1 Then
listview.ComboBox1.AddItem Cells(i + 1, 1)
Set Item = listview.ListView1.ListItems.Add(Text:=Sheets("Grille_de_Dispensation").Cells(i + 1, 1))
Item.SubItems(1) = Format(Sheets("Grille_de_Dispensation").Cells(i + 1, 2), "mmm-yyyy")
Item.SubItems(2) = Sheets("Grille_de_Dispensation").Cells(i + 1, 3)
Item.SubItems(3) = Sheets("Grille_de_Dispensation").Cells(i + 1, 4)
Item.SubItems(4) = Sheets("Grille_de_Dispensation").Cells(i + 1, 5)
Item.SubItems(5) = Sheets("Grille_de_Dispensation").Cells(i + 1, 6)
Item.SubItems(6) = Sheets("Grille_de_Dispensation").Cells(i + 1, 7)
Item.SubItems(7) = Sheets("Grille_de_Dispensation").Cells(i + 1, 8)
Item.SubItems(8) = Sheets("Grille_de_Dispensation").Cells(i + 1, 9)
Item.SubItems(9) = Format(Sheets("Grille_de_Dispensation").Cells(i + 1, 10), "mmm-yyyy")
Item.SubItems(10) = i + 1
End If
Next i
End If
End Sub
Et ca marche Encore Merci