OVH Cloud OVH Cloud

Erreur de syntaxe

3 réponses
Avatar
Nesta
Bonsoir à tous,

Je cherche à écrire un code qui donnerait en français : "Tant que la valeur
de la cellule de la feuille active du classeur actif est différent de
qqchose, faire opération 1, puis boucler.

Ma syntaxe (fausse) de départ est :

While (ActiveWorkbook.ActiveSheet.Range("A" & i).Value <> "NOMBRE DE
COLIS")
qqchose


Mais bien sûr, il y a une erreur....quelqu'un peut m'aider sur ça svp ?
Merci d'avance.


Cordialement,
Nesta

3 réponses

Avatar
Lionel
Bonsoir Nesta,

Par défaut, lorsque tu utilises l'objet Range sans nommer la feuille et le
classeur, ce sont la feuille et le classeur actifs qui sont utilisés :

i = LigneDébut
While Range("A" & i) <> "NOMBRE DE COLIS"
' Ton code
i = i + 1
Wend

Amicalement
Lionel

"Nesta" a écrit dans le message de
news:
Bonsoir à tous,

Je cherche à écrire un code qui donnerait en français : "Tant que la
valeur

de la cellule de la feuille active du classeur actif est différent de
qqchose, faire opération 1, puis boucler.

Ma syntaxe (fausse) de départ est :

While (ActiveWorkbook.ActiveSheet.Range("A" & i).Value <> "NOMBRE DE
COLIS")
qqchose


Mais bien sûr, il y a une erreur....quelqu'un peut m'aider sur ça svp ?
Merci d'avance.


Cordialement,
Nesta




Avatar
michdenis
Bonjour Nesta,

Essaie ceci :

Dim i As Long
i = 1
Do While ActiveWorkbook.ActiveSheet.Range("A" & i).Value <> 5
a = a + 1
Loop

Attention au critère qui met fin à la boucle:

Si dans la colonne A, tu n'as pas une cellule qui est égale à 5,
ta boucle va tourner jusqu'à la dernière cellule de la colonne A : A65536
et la procédure va planter car il n'y a pas de ligne 65537


Salutations!



"Nesta" a écrit dans le message de news:
Bonsoir à tous,

Je cherche à écrire un code qui donnerait en français : "Tant que la valeur
de la cellule de la feuille active du classeur actif est différent de
qqchose, faire opération 1, puis boucler.

Ma syntaxe (fausse) de départ est :

While (ActiveWorkbook.ActiveSheet.Range("A" & i).Value <> "NOMBRE DE
COLIS")
qqchose


Mais bien sûr, il y a une erreur....quelqu'un peut m'aider sur ça svp ?
Merci d'avance.


Cordialement,
Nesta
Avatar
Lionel
Bonsoir michdenis,

Euh... Le a = a + 1, c'est une étourderie je pense. Tu as dû vouloir écrire
i = i + 1, non ?

Amicalement
Lionel

"michdenis" a écrit dans le message de
news:%23PAF%
Bonjour Nesta,

Essaie ceci :

Dim i As Long
i = 1
Do While ActiveWorkbook.ActiveSheet.Range("A" & i).Value <> 5
a = a + 1
Loop

Attention au critère qui met fin à la boucle:

Si dans la colonne A, tu n'as pas une cellule qui est égale à 5,
ta boucle va tourner jusqu'à la dernière cellule de la colonne A : A65536
et la procédure va planter car il n'y a pas de ligne 65537


Salutations!



"Nesta" a écrit dans le message de news:


Bonsoir à tous,

Je cherche à écrire un code qui donnerait en français : "Tant que la
valeur

de la cellule de la feuille active du classeur actif est différent de
qqchose, faire opération 1, puis boucler.

Ma syntaxe (fausse) de départ est :

While (ActiveWorkbook.ActiveSheet.Range("A" & i).Value <> "NOMBRE DE
COLIS")
qqchose


Mais bien sûr, il y a une erreur....quelqu'un peut m'aider sur ça svp ?
Merci d'avance.


Cordialement,
Nesta