waspy59
Messages postés189Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention15 mai 2013
-
21 janv. 2007 à 22:58
waspy59
Messages postés189Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention15 mai 2013
-
21 janv. 2007 à 23:49
Bonjour,
je suis en train de creer une tite macro pour gerer des stock de reactifs. sous excel j'ai deux feuilles appelées "Réactifs MCC" et "Réactifs TSC" contenant les colonnes:
noms reactifs
references
date de péremption
ect...
J'ai egalement un feuillet "reference" qui liste les noms et references des réactifs.
sur mon userform j'ai deux checkbox (TSC et MCC) qui selon laquelle je coche liste dans une listbox les reactifs correspondants.
Par exemplepour ma feuille "reactifs MCC" qui contient:
Je souhaite que si je selectionne "Réactifs MCC Barbiturique", il apparaissent dans un listviews que les reactifs correspondants, soit deux entrées:
Réactifs N° Lot Péremption Recu le
<col style=\"width: 170pt;\" width=\"226\" /><col style=\"width: 60pt;\" width=\"80\" /><col style=\"width: 61pt;\" width=\"81\" /><col style=\"width: 53pt;\" width=\"71\" />----
Réactifs MCC Barbituriques , 57030693, 03/2009, 11/01/2007, ----
Réactifs MCC Barbituriques , 56947554, 03/2009, 11/01/2007
J'ai donc créé le tit bout de code suivant:
Private Sub ListBox1_Click()
val1 = ListBox1.Value
If CheckBox1.Value = True Then
With Sheets("Réactifs TSC")
i = 1
Do
i = i + 1
val2 = .Cells(i, 1).Value
If val2 = val1 Then
ListView1.ListItems.Add , , .Cells(i, 1)
ListView1.ListItems(i - 1).ListSubItems.Add , , .Cells(i, 2)
ListView1.ListItems(i - 1).ListSubItems.Add , , .Cells(i, 3)
ListView1.ListItems(i - 1).ListSubItems.Add , , .Cells(i, 4)
ListView1.ListItems(i - 1).ListSubItems.Add , , .Cells(i, 5)
ListView1.ListItems(i - 1).ListSubItems.Add , , .Cells(i, 6)
End If
Loop Until .Cells(i, 1).Value = ""
End With
End If
If CheckBox2.Value = True Then
With Sheets("Réactifs MCC")
i = 1
Do
i = i + 1
val2 = .Cells(i, 1).Value
If val2 = val1 Then
ListView1.ListItems.Add , , .Cells(i, 1)
ListView1.ListItems(i - 1).ListSubItems.Add , , .Cells(i, 2)
ListView1.ListItems(i - 1).ListSubItems.Add , , .Cells(i, 3)
ListView1.ListItems(i - 1).ListSubItems.Add , , .Cells(i, 4)
ListView1.ListItems(i - 1).ListSubItems.Add , , .Cells(i, 5)
ListView1.ListItems(i - 1).ListSubItems.Add , , .Cells(i, 6)
End If
Loop Until .Cells(i, 1).Value = ""
End With
End If
End Sub
Ca marche pratiquement sauf que j'ai l'erreur d'excusion 35600 (index hors limite)
C'est du a quoi? comment faire que cela fonctionne?
Il y a eu très récemment une discussion (aujourd'hui même, je crois)...
Cherche la et vois quelle est la syntaxe d'ajout de subitems dans une listview, s'il te plait !!!
waspy59
Messages postés189Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention15 mai 2013 21 janv. 2007 à 23:49
quand je dis "pratiquement" c'est que l'affichage dans le listview ce fait correctement pour n-1 lignes. en gros quand on a 3 references identiques, ca plante a introduction de la 3eme references dans le listview... si 2 references identiques, c plante pour la 2eme....
pour ce qui est de la discution, tu peux m'orienter?