ListIndex d'une combobox ?
Résolu
Alzahel
Messages postés
3
Statut
Membre
-
michel_m Messages postés 18903 Statut Contributeur -
michel_m Messages postés 18903 Statut Contributeur -
Bonjour,
Alors mon problème est probablement tout simple à régler mais je me casse la tête dessus et ça continue à ne pas marcher .. je dois avoir la mauvaise approche ?
J'ai dans ma colonne A un id et dans ma colonne C ma donnée (des noms).
J'ai chargé la liste des données (C donc) dans une comboBox de cette façon :
Set A = Sheets("Agents")
derLigne = A.Range("a1").End(xlDown).Row
cbAjout1.List = A.Range("c1", "c" & derLigne).Value
Jusqu'ici pas de souçis ..
Maintenant je voudrais modifier la donnée de la colonne D sur la ligne sélectionnée dans la comboBox en récupérant en comparant l'id de la colonne A et l'index de ma liste (les données de C étant des noms et pouvant être identiques je ne peux pas comparer sur un .Value).
J'ai donc fais :
Private Sub btAjout2_Click()
Dim id As Byte
Set P = Sheets("Agents")
derLigne = P.Range("a1").End(xlDown).Row 'on enregistre le nombre de cellule
For i = 2 To derLigne 'on boucle pour i de 2 (1 étant la ligne titre) à dernière ligne
id = P.Cells(i, 1).Value 'On récupére l'id qui est dans la colonne A (l'id part de 0)
If id = cbAjout1.ListIndex Then 'si l'id correspond à l'index de sélection dans la cb
P.Cells(i, 4).Value = cbAjout2.Value 'On change la valeur de la colonne 4 en une valeur que l'on récupère dans une autre cb
End If
Next i
End Sub
Mais ça ne marche pas ça décale de 1 de 1 cellule vers le bas .. de cette façon :
id idResponsable nom niveau
0 x oui
1 x test 2
Le 2 devrait se trouver dans la ligne id=0 dans mon idée :/
Merci d'avance pour vôtre aide !
EDIT : Bon ok pas de souçis en fait j'suis juste un boulet j'ai foutu id en byte alors qu'on récupère du string, ça marche du coup
Alors mon problème est probablement tout simple à régler mais je me casse la tête dessus et ça continue à ne pas marcher .. je dois avoir la mauvaise approche ?
J'ai dans ma colonne A un id et dans ma colonne C ma donnée (des noms).
J'ai chargé la liste des données (C donc) dans une comboBox de cette façon :
Set A = Sheets("Agents")
derLigne = A.Range("a1").End(xlDown).Row
cbAjout1.List = A.Range("c1", "c" & derLigne).Value
Jusqu'ici pas de souçis ..
Maintenant je voudrais modifier la donnée de la colonne D sur la ligne sélectionnée dans la comboBox en récupérant en comparant l'id de la colonne A et l'index de ma liste (les données de C étant des noms et pouvant être identiques je ne peux pas comparer sur un .Value).
J'ai donc fais :
Private Sub btAjout2_Click()
Dim id As Byte
Set P = Sheets("Agents")
derLigne = P.Range("a1").End(xlDown).Row 'on enregistre le nombre de cellule
For i = 2 To derLigne 'on boucle pour i de 2 (1 étant la ligne titre) à dernière ligne
id = P.Cells(i, 1).Value 'On récupére l'id qui est dans la colonne A (l'id part de 0)
If id = cbAjout1.ListIndex Then 'si l'id correspond à l'index de sélection dans la cb
P.Cells(i, 4).Value = cbAjout2.Value 'On change la valeur de la colonne 4 en une valeur que l'on récupère dans une autre cb
End If
Next i
End Sub
Mais ça ne marche pas ça décale de 1 de 1 cellule vers le bas .. de cette façon :
id idResponsable nom niveau
0 x oui
1 x test 2
Le 2 devrait se trouver dans la ligne id=0 dans mon idée :/
Merci d'avance pour vôtre aide !
EDIT : Bon ok pas de souçis en fait j'suis juste un boulet j'ai foutu id en byte alors qu'on récupère du string, ça marche du coup