VBA : Déterminer la dernière ligne d'un nombre de colonne prédéf
Marine
-
Marine -
Marine -
Bonjour à tous ,
J'ai une question qui je crois est très simple !!! Mais impossible de trouver une réponse depuis hier, et je deviens folle !
Pardonnez mon ignorance sur le sujet...
Question : Quel serait le code pour déterminer la dernière ligne de mes colonnes A B et C sachant que D et E sont déjà remplies ;
A B C D E
x x x x x
x x x x x
........x x
........x x
Je voudrais copier la ligne soulignée (après l'avoir déterminée dans mon code) et la coller jusqu'à la dernière ligne de D (en italique)
Pou l'instant mon code me donne :
SubMacroBoucle ()
derLigne = Sheets("Base CP Semaine").Range([A65000], [C65000]).End(xlUp).Row + 1
Sheets("Base CP Semaine").Range("A" & derLigne).Copy
Range("A65000").End(xlUp).Offset(1).Select
Range("A2:A" & Range("D" & Rows.Count).End(xlUp).Row).PasteSpecial
End Sub
Je voudrais plus quelque chose comme ça :
Sheets("Base CP Semaine").Range("A:C" & derLigne).Copy
Range("A65000:C65000").End(xlUp).Offset(1).Select
Range("??? Pour coller à la suite" & Range("D" & Rows.Count).End(xlUp).Row).PasteSpecial
Merci d'avance pour vos réponses !
Marine
J'ai une question qui je crois est très simple !!! Mais impossible de trouver une réponse depuis hier, et je deviens folle !
Pardonnez mon ignorance sur le sujet...
Question : Quel serait le code pour déterminer la dernière ligne de mes colonnes A B et C sachant que D et E sont déjà remplies ;
A B C D E
x x x x x
x x x x x
........x x
........x x
Je voudrais copier la ligne soulignée (après l'avoir déterminée dans mon code) et la coller jusqu'à la dernière ligne de D (en italique)
Pou l'instant mon code me donne :
SubMacroBoucle ()
derLigne = Sheets("Base CP Semaine").Range([A65000], [C65000]).End(xlUp).Row + 1
Sheets("Base CP Semaine").Range("A" & derLigne).Copy
Range("A65000").End(xlUp).Offset(1).Select
Range("A2:A" & Range("D" & Rows.Count).End(xlUp).Row).PasteSpecial
End Sub
Je voudrais plus quelque chose comme ça :
Sheets("Base CP Semaine").Range("A:C" & derLigne).Copy
Range("A65000:C65000").End(xlUp).Offset(1).Select
Range("??? Pour coller à la suite" & Range("D" & Rows.Count).End(xlUp).Row).PasteSpecial
Merci d'avance pour vos réponses !
Marine
3 réponses
-
Bonsoir Marine, bonsoir le forum,
Peut-être comme ça (si j'ai bien compris...) :
Sub Macro1() Dim DLA As Integer 'déclare la variable DLA (Dernière Ligne de la colonne A) Dim DLD As Integer 'déclare la variable DLA (Dernière Ligne de la colonne D) Dim B As Worksheet 'déclare la variable B (Onglet "Base CP Semaine) Set B = Sheets("Base CP Semaine") 'définit l'onglet C DLA = B.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DLA de la colonne 1 (=A) de l'onglet B DLD = B.Cells(Application.Rows.Count, 4).End(xlUp).Row 'définit la dernière ligne éditée DLD de la colonne 4 (=D) de l'onglet B B.Cells(DLA, 1).Resize(1, 3).Copy B.Range(B.Cells(DLA + 1, 1), B.Cells(DLD, 3)) 'copie/colle la dernière ligne éditée en A End Sub
-
Bonjour
En considérant que les colonnes A à C sont remplies au même niveau, idem pour les colonnes C et DDerLigneC = [A65000].End(xlUp).Row DerLigneD = [D65000].End(xlUp).Row Range(Cells(DerLigneC, 1), Cells(DerLigneC, 3)).Copy Range(Cells(DerLigneC + 1, 1), Cells(DerLigneD, 3)).PasteSpecial
Cdlt -
Merci infiniment à vous deux de vos réponses rapides !
J'avais entre temps, à force de persuasion et de recherches, trouvé mon bonheur avec une CurrentRegion ! :)
Maintenant je m'attaque à la boucle... Souhaitez moi bonne chance !
Merci encore
Marine