identifier les cellules à recopier vers le bas

philmaure

XLDnaute Impliqué
bonjour à tous,

nouveau problème.

J'ai essaye de detailler ma demande dans le fichier joint.

Je recupère un fichier avec des données déjà compléter dans la dernière colonne.

Sur les trois premières lignes ou la dernière colonne du tableau est vide, je rentre des données et je souhaiterai recopier vers le bas ce groupe de trois données.

Mon problème est comment identifier en VBA ces trois cellules.


Inutile de vous dire que sans VBA je connais la poignée de recopie mais j'aurai vraiment besoin d'automatiser l'action.

Merci pour vos réponses

Cdlt
Philippe
 

Pièces jointes

  • Classeur1.xls
    40.5 KB · Affichages: 36
  • Classeur1.xls
    40.5 KB · Affichages: 43
  • Classeur1.xls
    40.5 KB · Affichages: 45

CISCO

XLDnaute Barbatruc
Re : identifier les cellules à recopier vers le bas

Bonsoir

bonjour à tous,

Inutile de vous dire que sans VBA je connais la poignée de recopie mais j'aurai vraiment besoin d'automatiser l'action.

Philippe

A tout hasard... Tu sélectionnes ces trois cellules, et plutot que de tirer la poignée de recopie vers le bas, tu double-cliques dessus... Cela fonctionne très bien tant qu'il ni a pas de cellule vide dans la colonne juste à gauche. Bien sûr, si tu dois faire cela 846 fois, il faudra une autre technique...

@ plus
 

philmaure

XLDnaute Impliqué
Re : identifier les cellules à recopier vers le bas

Bonsoir Cisco,

Merci pour ta réponse

effectivement le tableau est evolutif et je ne sais jamis par avance sur combien de ligne je dois fair ela recopie.
J'ai donc détourné le pb. Je faius une recopie sur un nombre de ligne bien supérieur à ce que j'ai besoin puis dans un second temps je supprime les lignes dont la colonne 1 est vide.

Cdlt
Philippe
 

st007

XLDnaute Barbatruc
Re : identifier les cellules à recopier vers le bas

Dans l'ordre d'idée

tu complète tes 3 cellules
puis execute macro1
Code:
Sub Macro1()

Set a = Range("C" & Rows.Count).End(xlUp).Offset(-2, 0)
Set b = Range("C" & Rows.Count).End(xlUp)
Set c = Range("B" & Rows.Count).End(xlUp).Offset(, 1)
Range(a, b).Select
Selection.Copy
Selection.AutoFill Destination:=Range(a, c), Type:=xlFillDefault

    Range("A1").Select
End Sub
 

st007

XLDnaute Barbatruc
Re : identifier les cellules à recopier vers le bas

ou bien pour considérer la dernière ligne de la feuille et pas la dernière cellule de la colonne B
Code:
Sub Macro1()

Set a = Range("C" & Rows.Count).End(xlUp).Offset(-2, 0)
Set b = Range("C" & Rows.Count).End(xlUp)
d = Cells.Find("*", , , , xlByRows, xlPrevious).Row
Range(a, b).Select
Selection.Copy
Selection.AutoFill Destination:=Range(a, "C" & d), Type:=xlFillDefault

    Range("A1").Select
    
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T