Copier/coller à la suite

EgoVV2

XLDnaute Nouveau
Bonjour,

Je suis nouveau ici, et tout aussi nouveau dans le VBA.

Jusqu'à maintenant je me servais des fonctions de base d'excel mais aujourd'hui j'ai besoin de plus.

Donc, je souhaiterais copier un ensemble de cellule à la suite d'un tableau dans un autre classeur.

J'ai donc pondu (enfin l'enregistrement automatique de macro excel à pondu :p):

Sub Macro4()
'
' Macro4 Macro
'

'
Range("Q27:AY27").Select
Selection.Copy
Windows("Blablabla.xlsx").Activate
Range("A212").Select
ActiveSheet.Paste
End Sub

Sauf que le problème, c'est que mon tableau blablabla.xlsx est evolutif, et que ma macro colle mes lignes toujours au même endroit. C'est balo ;)

J'aurais donc souhaité faire un truc du genre (j'ai essayé de traduire au mieux):


Sub Macro4()
'
' Macro4 Macro
'

'
Range("Q27:AY27").Select
Selection.Copy
Windows("Blablabla.xlsx").Activate
Range("A(EQUIV(MAX(A1:A212);A1:A212;0)+1)").Select
ActiveSheet.Paste
End Sub

Comment qu'on fait ? :)
 

EgoVV2

XLDnaute Nouveau
Re : Copier/coller à la suite

Ca marche, c'est trop la classe !

Merci bien Mr DoubleZero :)

En fait cet extrait de code il fait quoi exactement ?

Il va chercher une ligne "à Lourdes", retourne a la dernière entrée et rajoute une ligne avec offset ?
Désolé c'est un peu bêbêtte ma question mais j'en suis vraiment au stade de la découverte.
 

tototiti2008

XLDnaute Barbatruc
Re : Copier/coller à la suite

Bonsoir EgoVV2, Bonsoir 00, :)

Il va chercher une ligne "à Lourdes", retourne a la dernière entrée et rajoute une ligne avec offset

Oui, c'est une bonne explication
Si tu veux un équivalent manuel de ce que fait la ligne de code

Code:
Range("a65536").End(xlUp).Offset(1, 0).Select

Il faut :
Range("a65536")
se placer en A65536
utiliser le raccourcis clavier Ctrl + Flèche haut (ça nous ramène dans la dernière cellule remplie en colonne A)
.Offset(1, 0)
se décaler d'une ligne vers le bas

sauf que le code VBA ne sélectionne pas à chaque étape, il se contente de sélectionner à la fin
Sélections qui sont d'ailleurs la plupart du temps inutiles

Le code suivant, sans sélection, fait la même chose

Code:
Sub test()
    ActiveSheet.Range("Q27:AY27").Copy Workbooks("Blablabla.xlsx").Activesheet.Range("A65536").End(xlUp).Offset(1, 0)
End Sub

A partir du moment où tu travailles avec plusieurs classeurs, fait bien attention aux classeurs et feuilles où tu souhaites agir pour éviter les soucis...
 

EgoVV2

XLDnaute Nouveau
Re : Copier/coller à la suite

Et si mettons, je souhaite spécifié un onglet particulier où "copier", et un autre où "coller" ma sélection, comment je dois m'y prendre ?

Car "Activesheet" doit sous entendre qu'il colle dans ma feuille active ? et donc pas forcement celle ou je souhaite que ce soit collé.

Merci pour toutes ces explications, c'est super sympa :) ça fait plaisir de voir un forum aussi "disponible" et conviviale.
 

Pierrot93

XLDnaute Barbatruc
Re : Copier/coller à la suite

Bonjour à tous,

préciser les objets feuille concernés voir les classeurs :
Code:
Workbooks("NomClasseur1.xls").Sheets("NomFeuille").Range("Q27:AY27").Copy Workbooks("NomClasseur2.xls").Sheets("NomFeuille").Range("A65536").End(xlUp).Offset(1, 0)

bonne journée
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 519
dernier inscrit
Thomas_grc11