[VBA] Excel

Bonjour,

J'ai une colonne où il y a des nombres de 1 à 65 grâce a ces nombres j'écris des données dans leur ligne avec :

If Clients.Cells(ligne, 22).Value = "65" Then 
    Clients.Cells(ligne, 30).Value = "test" 
    Clients.Cells(ligne, 31).Value = "test"
End If


mais si par exemple dans la colonne j'ai un nombre supérieur à 65 j'aimerai qu'il m'affiche un MsgBox.

Pour le moment je rempli juste la case 30 par "Erreur" j'ai :

    If Clients.Cells(ligne, 22).Value > "65" Then 
    Clients.Cells(ligne, 30).Value = "Erreur"
End If


Mais quand je regarde dans mon tableau plus haut, je m'aperçois qu'aux nombres 7, 8, 9 j'ai sur leur ligne à la case 30 écrit "erreur" je ne vois pas pourquoi, quelqu'un aurai une idée s'il vous plait ...

3 réponses

  1. Contributeur
    Bonjour,

    tu n'est pas la seule à faire l'erreur que tu as commis. Tu as mis des guillemets autour de ton 65, qui est donc dans ce cas considéré comme une chaîne de caractères, pas comme un chiffre.

    Il compare donc un chiffre à une chaîne. Donc il regarde si ton chiffres est plus grand que le 1er caractère, sinon il compare au 2e et ainsi de suite...

    Sans guillemet, ça ira mieux.

    Cordialement.
    0
    1. Aaaaaa merci beaucoup !!!
      0
      1. Contributeur
        Mais de rien, c'est une erreur souvent présente, que je faisais également quand j'étais jeune programmeur VBA ^^
        0
    2. Encore deux petite question ^^, quand il y a des caractères il me met automatiquement "Erreur", c'est pour la 1ere ligne de mon tableau.

      Et puis le problème est qu'il me fait l'erreur pour chaque ligne, car j'ai un " next ligne " alors que j'aimerai qu'il m'indique l'erreur qu'un seul fois.
      0