VBA : Remplir colonne A tant que la colonne B a une valeur

  • Initiateur de la discussion Initiateur de la discussion Arnodinho
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Arnodinho

XLDnaute Nouveau
Bonjour,

Débutant, avec de maigres notions VBA, je cherche de l'aide afin d'atteindre l'objectif suivant :

Je souhaite consolider, de manière automatisée, plusieurs feuillets ("janvier", "fevrier", "mars" ...) en un seul. Le nombre de ligne étant variable et les colonnes identiques.

Lors de cette consolidation : je veux remplir une colonne avec le mois correspondant à chaque onglet.
ex : Je copie le tableau de l'onglet "janvier" que je colle dans l'onglet "Conso" à partir de la colonne B. Je souhaite que dans la colonne A soit écrit "Jan" pour toutes les lignes copiées à partir de l'onglet Janvier, puis "Fev" pour toutes les lignes copiées à partir de l'onglet fevrier, etc.

Mon problème à résoudre :
Combiner l'expression suivante :

If Not Cells("B1") = "" Then
Range("A1") = "Jan"
End If

avec la formule :

While Not IsEmpty
Wend

En français : Pour une même ligne : Tant que la cellule de la colonne B contient une donnée, écrit "Jan" dans la cellule de la colonne A. Arrête quand tu rencontre une cellule vide dans la colonne B

Pouvez-vous m'aider ?
 
Re : VBA : Remplir colonne A tant que la colonne B a une valeur

Bonjour,

Une proposition parmi d'autres possibles, à adapter à ton cas :

Code:
Sub toto()
Dim rg As Range
Set rg = Sheets("Conso").Range("B1")   'Première cellule du mois dans la colonne B, à dapter
Do Until IsEmpty(rg)
    rg.Offset(0, -1) = "Jan"        'le Mois
Set rg = rg.Offset(1, 0)
Loop
End Sub

A+
 
Re : VBA : Remplir colonne A tant que la colonne B a une valeur

salut Arnodinho et le forum
Juste une petite remarque :
"Janv" est un peu restrictif : tu ne peux faire de travail que sur ce texte, à moins de construire une usine à gaz, et il est difficile de travailler avec plusieurs Janv différent, à moins de tout reprendre.
Par principe, pour les problèmes de ce genre, j'utilise une date (01/01/2011) que j'affiche en janv avec un format personnalisé de type : mmm
A+
 
Re : VBA : Remplir colonne A tant que la colonne B a une valeur

Merci Grand Chaman, je vais tester ça demain.
@ Gorfael, mon fichier traite de la gestion des immos, j'ai des dates mais elles peuvent être différente du mois en question (date acquisition / date de mise en route); J'ai juste besoin de savoir de quel onglet les données viennent dans le fichier conso. Mais merci pour le conseil.
++
 
Re : VBA : Remplir colonne A tant que la colonne B a une valeur

Grand Chaman :
Ta macro marche très bien mais seulement pour un mois et quand tu sais à partir de quelle cellule ("B1", "B239" etc.)
Je voudrais que le système détecte la première cellule vide de la colonne A. ex cellule A387. du coup dans la macro il met Set rg = Sheets("Conso").Range("B387")

C'est possible ça ?
 
Re : VBA : Remplir colonne A tant que la colonne B a une valeur

Bonjour,
Oui c'est possible. Pour détecter la dernière cellule de la colonne A et définir la bonne cellule à prendre dans B, utilise ceci :

Code:
Set rg = sheets("Conso").Range("A65536").end(xlup).offset(1,1)

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour