Copier/colle d'une cellule par rapport à une collone

Bonjour à tous

Voila je bloque sur une chose simple depuis un long moment, je souhaite en VBA

- Copier la dernière cellule non vide de la colonne A dans la colonne A jusqu’à la dernière cellule non vide de la colonne D

Avec le fichier le résultat attendu est d'avoir "41" de A22 à A40

Encore une fois désolé je pense que c'est très simple mais je n'est pas réussis à adapter les pistes que j'avais. En plus c'est la dernière étape de ma longue est belle macro.

11classeur1.xlsx (11.25 Ko)

Bonjour,

un ex :

Sub copier()
    Dim DrLigneA&, DrLigneD&, ligne&
    Dim ValeurAcopier As Variant

    DrLigneA = Range("A" & Rows.Count).End(xlUp).Row
    ValeurAcopier = Range("A" & DrLigneA)

    DrLigneD = Range("D" & Rows.Count).End(xlUp).Row
    Range("A2:A" & DrLigneD).Value = ValeurAcopier
End Sub

Cordialement

Bonjour Elie, bigdaddy154, le forum,

Une autre proposition:

Sub test()

Dim i As Integer, j As Integer

  i = Range("A" & Rows.Count).End(xlUp).Row
  j = Range("D" & Rows.Count).End(xlUp).Row

  For i = 2 To j
   If Cells(i, 1) = "" Then Cells(i, 1) = Cells(i - 1, 1)
  Next i

End Sub

Cordialement,

Haaaa un grand merci à vous deux,

j'ai testé les deux solutions celles de xorsankukai a marché comme je voulais, mais je ne la comprend pas peux tu m'expliquer son fonctionnement

For i = 2 To j

If Cells(i, 1) = "" Then Cells(i, 1) = Cells(i - 1, 1)

Next i

bigdaddy154 quand j'essaie ta macro la valeur "41" se renseigne de "A2" jusqu’à "A40" et remplace les valeurs "40" au lieu de prendre la suite, fallait il que je l'adapte ?

En tous cas encore merci à vous deux

Re,

Sub test()

Dim i As Integer, j As Integer                  'déclaration des variables

  i = Range("A" & Rows.Count).End(xlUp).Row     'dernière cellule remplie de la colonne A  (ici A21)
  j = Range("D" & Rows.Count).End(xlUp).Row     'dernière cellule remplie de la colonne D  (ici D40)

  For i = 2 To j                                'boucle de la ligne 2 à la dernière ligne remplie de la colonne D (donc ici de 2 à 40)
   If Cells(i, 1) = "" Then Cells(i, 1) = Cells(i - 1, 1)  'si cellule A est vide, elle prend la valeur de la ligne précédente (d'ou le -1)
  Next i                                        'ligne suivante

End Sub

Cordialement,

Merci de m'avoir éclairer, dit comme sa, sa tomberais presque sous le sens

Je pense que Bigdaddy n'a pas remarqué ta question, aussi je me permets d'y répondre modestement:

la valeur "41" se renseigne de "A2" jusqu’à "A40" et remplace les valeurs "40"

ValeurAcopier = Range("A" & DrLigneA)

copie la valeur de la dernière cellule de la colonne A

DrLigneD = Range("D" & Rows.Count).End(xlUp).Row
    Range("A2:A" & DrLigneD).Value = ValeurAcopier

Ecrit la valeur copiée de A2 à A et dernière ligne de la colonne D, donc écrase les données existantes.

Bigdaddy a interprété autrement ta demande ...

A bientôt sur le forum,

D'accord je vais me garder sa aussi sous le coude mon petit doigt me dit que sa me serviras.

Merci encore

Rechercher des sujets similaires à "copier colle rapport collone"