Bonjour à tous!
Je reviens vers vous pour une macro ce coup ci.
J'ai galéré ce matin pour mettre en place une macro qui, j'en suis sûr est toute simple...
Voici le cas :
J'ai une colonne (colonne B, juste 1 pour janvier est écrit en B2) où je veux écrire le numéro de chaque mois en automatique.
J'ai une case (M2) où est déjà inscrit le numéro du mois précédent avec la formule "=MOIS(AUJOURDHUI())-1".
Ma macro doit faire ceci:
1 - Aller verifier le numéro inscrit dans la dernière ligne non vide de la colonne B (on va appeler la case "B-DerniereLigne") des mois et vérifier si le contenu est différent de M2
2 - S'il est identique, on ne fait rien
2(bis) - S'il est différent, dans la case suivante de la colonne B, on inscrit le résultat de B-DerniereLigne + 1
Et on recommence tant que B-DerniereLigne est différent de M2.
B-DerniereLigne doit donc être incrémenter à chaque boucle, et je pense que c'est ça que je n'ai pas réussi à faire.
J'amorce en mettant le mois de janvier, c'est à dire, "1" dans la colonne B, en B2.
La macro me met bien le 2 en B3 mais le sablier ne s'arrête jamais... et la macro non plus.
Je vous mets le meilleur code que j'ai trouvé, finalement assez simple (je suis passé par des boucles for, do while, do loop, des conditions... bref.)
Code :
*****************************************
Sub maj()
DerniereLigneMoisNumero = Range("B65536").End(xlUp).Row
DerniereLigneMoisNumeroSuivante = DerniereLigneMoisNumero + 1
'Si le numéro du dernier mois du tableau est différent du numéro du mois précédent, ajouter le mois précédent à la fin de la colonne B
While Range("B" & DerniereLigneMoisNumero) <> Range("M2") 'ma condition
Range("B" & DerniereLigneMoisNumeroSuivante) = Range("B" & DerniereLigneMoisNumero).Value + 1 'ce que je veux faire si la condition est remplie, c'est à dire si la dernière ligne que la colonne B est différente de 4.
Wend
End Sub
*****************************************
Merci beaucoup pour votre aide!
Je reviens vers vous pour une macro ce coup ci.
J'ai galéré ce matin pour mettre en place une macro qui, j'en suis sûr est toute simple...
Voici le cas :
J'ai une colonne (colonne B, juste 1 pour janvier est écrit en B2) où je veux écrire le numéro de chaque mois en automatique.
J'ai une case (M2) où est déjà inscrit le numéro du mois précédent avec la formule "=MOIS(AUJOURDHUI())-1".
Ma macro doit faire ceci:
1 - Aller verifier le numéro inscrit dans la dernière ligne non vide de la colonne B (on va appeler la case "B-DerniereLigne") des mois et vérifier si le contenu est différent de M2
2 - S'il est identique, on ne fait rien
2(bis) - S'il est différent, dans la case suivante de la colonne B, on inscrit le résultat de B-DerniereLigne + 1
Et on recommence tant que B-DerniereLigne est différent de M2.
B-DerniereLigne doit donc être incrémenter à chaque boucle, et je pense que c'est ça que je n'ai pas réussi à faire.
J'amorce en mettant le mois de janvier, c'est à dire, "1" dans la colonne B, en B2.
La macro me met bien le 2 en B3 mais le sablier ne s'arrête jamais... et la macro non plus.
Je vous mets le meilleur code que j'ai trouvé, finalement assez simple (je suis passé par des boucles for, do while, do loop, des conditions... bref.)
Code :
*****************************************
Sub maj()
DerniereLigneMoisNumero = Range("B65536").End(xlUp).Row
DerniereLigneMoisNumeroSuivante = DerniereLigneMoisNumero + 1
'Si le numéro du dernier mois du tableau est différent du numéro du mois précédent, ajouter le mois précédent à la fin de la colonne B
While Range("B" & DerniereLigneMoisNumero) <> Range("M2") 'ma condition
Range("B" & DerniereLigneMoisNumeroSuivante) = Range("B" & DerniereLigneMoisNumero).Value + 1 'ce que je veux faire si la condition est remplie, c'est à dire si la dernière ligne que la colonne B est différente de 4.
Wend
End Sub
*****************************************
Merci beaucoup pour votre aide!