Variable qui suit la valeur de la cellule

Bonjour,

Voilà mon problème :

Lorsque j'utilise une variable qui réfère à une cellule, et que cette cellule change de valeur pendant la macro, la variable prend la valeur uniquement au moment ou je mets ma fonction. Lorsque la valeur de la cellule change, la variable reste égale à l'ancienne valeur.

Exemple :

(La range B2 est un NBVAL d'une colonne du tableau)

Dim NBVAL As Integer

NBVAL = range("B2").Value

For x = 2 To NBVAL
If range("C" & x) = "OUI" Then
Rows(x & ":" & NBVAL).Delete
End If
Next

Range("D" & NBVAL + 1).Select

Ma boucle supprime des cellules de mon tableau, et par conséquent change la valeur de la cellule B2 (qui contient la fonction NBVAL). Cependant NBVAL (la variable) reste figée sur la valeur de B2 avant la boucle.

J'ai trouvé une solution en écrivant de nouveau "NBVAL = range("B2").Value" après ma boucle, mais je suis sûr qu'il existe une meilleure solution.

Merci de votre aide,

Benjamin

Bonjour,

En effet, il faut revaloriser NBVAL en fin de boucle (et x aussi : x = x - 1) sinon ça pose problème.

En général pour des suppressions on part plutot de la fin pour arriver au début :

Dim NBVAL As Integer

NBVAL = range("B2").Value

for x = NBVAL to 2 step -1
If range("C" & x) = "OUI" Then
Rows(x & ":" & NBVAL).Delete
'Rows(x).delete
End If
Next

Ca évite ce conflit...

Cdlt,

ça marche merci, conseil très utile !

Rechercher des sujets similaires à "variable qui suit valeur"