Incrémentation perdue suite à un changement de valeurs

Bonjour

fais les corrections comme tu les as faites dans le fichier initial (exemple3) que tu as fourni en remplaçant "vrai" par "oui" dans le code et en modifant la liste en remplaçant "vrai";"faux" par "oui";"non"

Salut tout le monde,

Private Sub Worksheet_Change(ByVal Target As Range)
'
If Target.Count > 1 Or Target.Column <> 4 Then Exit Sub
'
Application.EnableEvents = False
'
If Cells(Target.Row, 2) = "" Then Target = ""
If UCase(Target) = "VRAI" Then
    Cells(Target.Row, 7) = ""
    For x = Cells(Rows.Count, 2).End(xlUp).Row To 5 Step -1
        If UCase(Cells(x, 4)) = "VRAI" And Cells(x, 2) = Cells(Target.Row, 2) Then iFlag = IIf(Cells(x, 7) > iFlag, Cells(x, 7), iFlag)
    Next
    Cells(Target.Row, 7) = IIf(UCase(Target) = "VRAI", iFlag + 1, "")
End If
'
Application.EnableEvents = True
'
End Sub

A tester et à améliorer en fonction des exigences d'utilisation.

Ici, tu peux même incrémenter "G" dans le désordre...

S'utilise avec tes valeurs initiales (VRAI-FAUX)

A+

8exemple3.xlsm (34.62 Ko)

Re,

Merci h2so4

Actuellement ça fonctionne parfaitement pour oui, non

Malgré ça le pb n'est pas résolu parce que les valeurs oui,non ont été choisi rien que pour comprendre où réside le pb dans le code

Du moment où j'ai changé les valeurs oui, non par 2 autres valeurs saisies dans une langue différente de la langue française, le problème apparaît de nouveau

Que faut il faire pour les langues différentes de la langue française ??

Que faut il modifié?? pour que VBA interpréte les données correctement

cdlt

Salut Seyf,

finalement, que veux-tu faire exactement : OUI-NON, VRAI-FAUX, YES-NO, SI-NO, NEIN-JA ?

Je m'y perds...

A+

Bonjour,

sans ouvrir ton fichier je pense que le soucis est ton choix de texte.

"VRAI" dans une cellule n'est pas un texte mais le booléen True pour vba (et False pour FAUX).

Supprime tout alignement dans ta colonne. Si "vrai" est à gauche c'est du texte, si VRAI est centré c'est un booléen.

Choisi un autre texte ou teste le booléen :

If Target.Value = False Then ...
ou autre écriture :
If Not Target.Value Then ...

eric

Edit : je n'avais pas lu jusqu'au bout.

Si tu restes avec VRAI/FAUX (donc True/False pour vba) ça sera valable pour toutes les langues.

Parfait,

Cette fois ci ça fonctionne parfaitement, j'ai supprimé l'alignement comme a proposé eriic , finalement le code VBA interprète correctement les caractères de ma langue maternelle

Merci à vous tous eriic, h2so4, curulis57, graçe à vous j'ai trouvé la solution à ce pb

cdlt

Rechercher des sujets similaires à "incrementation perdue suite changement valeurs"