Range avec une variable

Bonjour à tous,

Je débute avec le language VBA et malgré de nombreuses recherches je n'arrive pas à trouver la solution à mon problème, qui pourtant paraît très simple...

Je dois additionner les cellules de plusieurs colonnes, disons les colonnes B, D et F.

Les cellules à prendre en compte se situent entre une ligne référencée par une variable et jusqu'à la dernière cellule non vide de ma colonne.

Nom de ma variable : lignetrouvee

J'ai donc pensé faire une boucle For (peut être pas la meilleure solution mais en vain...) et j'ai un problème au niveau de mon range.

Prenons un exemple avec ligne trouvée = 15, si ma prochaine ligne non vide est la 20ème, je dois additionner mes cellules de B15 à B19 + D15 à D19 + F15 à F19

Sub test ()

lignetrouvee = 15 (par exemple)

x = 0

For Each cellule in Range ( (lignetrouvee, B).End(xldown), (lignetrouvee, D).End(xldown), (lignetrouvee, F).End(xldown))

x = x + cellule

Next cellule

End sub ()

Merci par avance, je pense que le problème n'est pas très durs mais je ne trouve pas de solution...

Bonjour kevin19151, le forum,

Pas sur d'avoir tout compris....

Vois si cet exemple peut t'aider....

6kevin.xlsm (20.27 Ko)

Cordialement,

Bonjour xorsankukai,

C'est exactement ce dont j'avais besoin pour finaliser ma macro qui tourne à merveille ... Pas très compliqué finalement, mais bien plus complexe que ce que j'avais en tête.

Je te remercie pour ta réactivité et ta réponse !

Me revoilà xorsankukai,

Je viens de me rendre compte d'une chose... Le code fonctionne bien et s'arrête en effet à la fin de ma colonne. Cependant, si on rajoute des valeurs dans les lignes en dessous, la boucle les prends en compte et s'arrête à la fin de ma colonne, et non dès l'apparition de ma 1ère cellule non vide.

Est-il donc possible de rajouter une ligne (peut être une boucle if supplémentaire), pour qu'il stoppe la somme dès qu'une cellule est vide ?

Encore merci

Problème résolu en ajoutant une boucle Do While Not IsEmpty

Re,

Problème résolu en ajoutant une boucle Do While Not IsEmpty

Tu peux éviter la boucle en définissant ta dernière ligne autrement...

dl = Range("B1").End(xlDown).Row + 1 'première ligne vide à partir de B1
1kevin-v2.xlsm (20.67 Ko)

Bonne continuation,

Rechercher des sujets similaires à "range variable"