Copier contenu cellule vers bas sous conditions

dgedge

XLDnaute Nouveau
Bonjour,

Je reprends VBA après de longues années et je repars plus ou moins de 0.

J'aimerais copier le contenu d'une cellule située en colonne A (référence relative) vers le bas dans les cellules vides uniquement si et seulement si le contenu des cellules situées sur les mêmes lignes en colonne B sont non vides. Et je voudrais que cela se répète pour toute la colonne (longueur variable).

Pour plus de clarté, j'ai joint un fichier : je veux copier le contenu de A1 en A2, A3,A4 et A5, puis celui de A6 en A7, A8, A9 et A10, puis celui de A11 en A12, etc.

J'ai écris la macro suivante qui fait bien la copie de la cellule du dessus, mais ne le fait que pour une ligne et s'arrête :confused: :

Sub CopyDownCellContent()
'
Dim Cell As Range
For Each Cell In Selection.Cells
If Cell.Value <> "" Then
ActiveCell.Offset(0, -1).Range("a1").Select
Selection.FillDown
End If
Next Cell
End Sub

Merci pour vos conseils !
PS: j'utilise Excel 2003 en anglais...
 

Pièces jointes

  • Copier contenu cellule vers bas.xls
    13.5 KB · Affichages: 78
  • Copier contenu cellule vers bas.xls
    13.5 KB · Affichages: 86
  • Copier contenu cellule vers bas.xls
    13.5 KB · Affichages: 79

dgedge

XLDnaute Nouveau
Re : Copier contenu cellule vers bas sous conditions

Je pense que la macro doit y être maintenant, sauf qu'elle ne semble plus fonctionner... Je crois que je suis trop fatigué ce soir pour comprendre pourquoi :(
 

Pièces jointes

  • Copier contenu cellule vers bas.xls
    15.5 KB · Affichages: 70
  • Copier contenu cellule vers bas.xls
    15.5 KB · Affichages: 72
  • Copier contenu cellule vers bas.xls
    15.5 KB · Affichages: 63

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Copier contenu cellule vers bas sous conditions

Re,

ou alors avec ceci:
Code:
Sub Macro1()
Dim Cell As Range
Range("A1:A" & Range("B65535").End(xlUp).Row).Select
For Each Cell In Selection.Cells
If Cell.Value = "" Then
Cell.Value = Cell.Offset(-1, 0).Value
End If
Next Cell
End Sub

à+
Philippe
 

dgedge

XLDnaute Nouveau
Re : Copier contenu cellule vers bas sous conditions

Bonjour dgedge et bienvenue sur le forum

ton fichier en retour

à+
Philippe

Merci beaucoup pour ton retour ultra rapide.
Il faut que je m'ahabitue au forum, mais en fait j'avais fait un extract de mon fichier sur un autre car le moien est confidentiel. J'ai joint un autre fichier avec les mêmes colonnes parce que je ne sais pas retranscrire ta macro sur mon vrai fichier... :D
 

Pièces jointes

  • Copier contenu cellule vers bas.xls
    26 KB · Affichages: 91
  • Copier contenu cellule vers bas.xls
    26 KB · Affichages: 91
  • Copier contenu cellule vers bas.xls
    26 KB · Affichages: 91

dgedge

XLDnaute Nouveau
Re : Copier contenu cellule vers bas sous conditions

Re,

ou alors avec ceci:
Code:
Sub Macro1()
Dim Cell As Range
Range("A1:A" & Range("B65535").End(xlUp).Row).Select
For Each Cell In Selection.Cells
If Cell.Value = "" Then
Cell.Value = Cell.Offset(-1, 0).Value
End If
Next Cell
End Sub

à+
Philippe

Du coup j'ai changé les références de cellules pour aller sur mon fichier et ça marche à merveille !!

Merci beaucoup !
 

dgedge

XLDnaute Nouveau
Re : Copier contenu cellule vers bas sous conditions

Question subsidiaire : que faudrait-il que j'ajoute à la macro de phlaurent55 pour faire la même chose que sur la colonne "Date" en D de mon dernier fichier (j'ai changé dans la macro proposée par phlaurent55 A par D et B par E pour coller avec mon dernier fichier) pour les colonnes C (Month), B (Name) et A (Office) ?

L'idée serait de pouvoir exécuter cette macro pour ces 4 colonnes (D, C, B et A) successivement de façon à ne plus avoir de cellule vide.
 

Discussions similaires

Haut Bas