Bonjour Le Forum,
J'ai un drôle de problème qui se pose dans une macro:
J'utilise le code ci-dessous pour annoter une plage de numéros de dossards (vérif de point de passage)
par ex: colonne A: les dossards et colonne C: les annotations OK ou NOK
Les dossards pointés au point de passage se trouvent dans la plage (s7:s1000)
il se trouve que si j'ai la valeur 12 dans la plage, les dossards 1, 2, et 12 sont pointés "OK" !!! au lieu du 12 seulement .... (idem avec 3, 5, et 35...ou 7, 11, et 711...)
je ne comprends pas ! j'ai contrôlé le format des cellules, ce n'est pas la solution ...
Voici le code:
Dim dossard As Integer
'on regarde le nb de Chk pour ce dossard (si au moins 1 ctrl)
If Range("A4").Value > 0 Then
dossard = ActiveCell.Value
NbrChk = WorksheetFunction.VLookup(dossard, Sheets("ListeDossards").Range("B4:G1000"), 6)
End If
'on vérifie le Controle1
'si controle1 pas nécéssaire,je n'annote pas
If Range("P11").Value = 0 Then
ActiveCell.Offset(0, 2).FormulaR1C1 = ""
End If
'si controle1 nécéssaire,je cherche si le dossard existe dans la liste de controle
dossard = ActiveCell.Value
Set Check1 = Range("S7:S1000").Find(dossard)
'pas trouvé!
If Check1 Is Nothing And Range("P11").Value > 0 And NbrChk > 0 Then
ActiveCell.Offset(0, 2).FormulaR1C1 = "NOK"
ActiveCell.Offset(0, 2).Font.ColorIndex = 3
End If
'trouvé!!
dossard = ActiveCell.Value
If Not Check1 Is Nothing And Range("P11").Value > 0 And NbrChk > 0 Then
ActiveCell.Offset(0, 2).FormulaR1C1 = "OK"
ActiveCell.Offset(0, 2).Font.ColorIndex = 10
End If
Si quelqu'un connait la nature du problème, il me serait d'un grand secours ...
Merci d'avance à ceux qui s'y pencheront.
Cordialement
WS