Condition première lettre d'une case

Bonsoir à tous,

Je débute sur VBA et ai du mal avec la condition de la première lettre d'une case.

J'ai un fichier où sur la colonne B de grand nombres et je veux qu'à fois que la case commence par un 6 ou un 7 alors écrire "OK" sur la colonne A correspondant.

J'ai donc fait cette macro qui ne fonctionne pas :

With Sheets("Check_Number")

for i = 1 to 200

If UCase (Left(Range("B" & i), 1)) = "6" Then

Range("A" & i).Value = "Ok"

End if

Next i

Dans un premier temps j'aurais bien aimé que ca marche sur les 6 mais même sur uniquement les 6 ca ne fonctionne pas.

Est-ce que vous voyez quelque chose ?

Merci par avance et bonne soirée !

Bonjour,

With Sheets("Check_Number")
    For i = 1 to 200
    If UCase (Left(.Range("B" & i), 1)) = "6" Then .Range("A" & i) = "Ok"
    Next i
End With

Terminez toujours votre with par un end with.
Le End if n'est pas nécessaire si le résultat de la condition vérifiée se trouve sur le même ligne.
Le value ne sert pas forcément car c'est la propriété par défaut d'un objet range, elle est implicite.
De plus ici, votre With n'est pas très utile, vous ne mettez pas de . devant les objets range qui sont alors qualifié par l'objet worksheets. Si vous lancez la macro depuis la feuille Check_Number, elle sera automatiquement considérée comme la feuille active donc le with et les points ne seront pas nécessaires.

Cdlt,

Edit : @eriiic : Bonjour, je n'avais même pas percuté ... Il est temps pour moi d'aller me coucher .. Loin

Bonjour,

UCase (Left(Range("B" & i), 1)) = "6"
ce sont des 6 majuscules ?
eric

Bonjour à tous,

Voici une proposition pour les 6 et 7 :

With Sheets("Check_Number")
    For i = 1 to 200
        If .Range("B" & i) like "[6-7]*" Then .Range("A" & i) = "Ok"
    Next i
End With

Cdlt,

Rechercher des sujets similaires à "condition premiere lettre case"