copier coller via vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pasquetp

XLDnaute Occasionnel
Sheets("Feuil1").Range("A1:A11").Copy Sheets("Feuil2").Range("A1")

Bonjour ,

j'ai trouvé ce lien très inyteressant:

https://www.excel-downloads.com/threads/vba-copie-de-plage-a-plage-dune-feuille-a-une-autre.736/

il indique une facon pour copier coller assez rapide

j'ai un souci pour l'appliquer. j'ai deux variables: une dans le copier et une dans le coller:

Sheets(2).Range("b6:x").Copy Sheets(1).Range("y")

le x se trouve en colonne B et correspond à la derniere cellule remplie

le y est situé en colonne A et est situé en dernière cellule rempli + offset(5,0)

auriez vous une idee?

Merci par avance
 
Re : copier coller via vba

Bonjour,

il faut déterminer la dernière ligne utile de chaque feuille:

LigSource = Worksheets("Feuil1").Range("B" & Rows.Count).End(xlUp).Row ' donne la dernière ligne renseignée
LigCible = Worksheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row + 5 ' + 5 pour le décalage souhaité

et l'utiliser dans l'instruction:

Worksheets("Feuil1").Range("B6:B" & LigSource).Copy Worksheets("Feuil2").Range("A" & LigCible)

Bonne suite

edit: Bonjour JPB;
 
Dernière édition:
Re : copier coller via vba

Rebonjour,

Il semble que la formule Paf fonctionne.

Merci de votre aide.
j'ai corrigé un peu la formule:

LigSource = Sheets(2).Range("B" & Rows.Count).End(xlUp).Row
LigCible = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row + 5

Merci à tous

Vous êtes GENIALES
 
Re : copier coller via vba

Re,
j'ai tenté sur ce fichier
J'ai obtenu une erreur
l'instruction
Code:
 Sheets(2).Range("b6:b" & Range("b65000").End(xlUp)).Copy Sheets(1).Range("a" & Range("a65000").End(xlUp) + 5)
comporte quelques anomalies:
Range("a65000").End(xlUp) ne donne pas le N° de la dernière ligne mais le contenu de cette ligne, y faire +5 alors que le contenu est une chaine conduit à une incompatibilité de type. Même si le contenu est numérique le résultat renvoyé ne sera pas le N° de ligne !!!

Sheets(2).Range("b6:b" & Range("b65000").End(xlUp)) on précise bien la feuille source sur le premier range, mais pas sur le deuxième. Même problème pour le range de la feuille cible.

les range sans désignation seront exécutés sur la feuille courante et pas sur la feuille souhaitée.

Il faudrait
Sheets(2).Range("b6:b" & Sheets(2).Range("b65000").End(xlUp).Row).Copy Sheets(1).Range("a" & Sheets(1).Range("a65000").End(xlUp).Row + 5)


Il semble que la formule Paf fonctionne.

ça fonctionne ou pas ?

Bon courage
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
653
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
1 K
Réponses
12
Affichages
1 K
Retour