Passer des lignes d'un classeur a un autre
van_van
Messages postés
60
Date d'inscription
Statut
Membre
Dernière intervention
-
van_van Messages postés 60 Date d'inscription Statut Membre Dernière intervention -
van_van Messages postés 60 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaiterais transferer des ligne d'un fichiers excel ( a partir de la deuxieme lignes et ce jusqu'a la derniere ligne non vide) vers un autres classeur via une macro vba. Quelqu'un aurait une solution ?
Merci d'avance
Je souhaiterais transferer des ligne d'un fichiers excel ( a partir de la deuxieme lignes et ce jusqu'a la derniere ligne non vide) vers un autres classeur via une macro vba. Quelqu'un aurait une solution ?
Merci d'avance
A voir également:
- Passer des lignes d'un classeur a un autre
- Passer de qwerty a azerty - Guide
- Passer a windows 10 - Accueil - Mise à jour
- Partager des photos en ligne - Guide
- Mettre un mot de passe sur un dossier - Guide
- Passer un texte en majuscule - Guide
2 réponses
Bonjour Van_van, bonjour le forum,
Tu donnes si peu d'explications que le code que je te propose doit être complètement adapté à ton cas. Pour qu'il fonctionne il faut le placer dans le classeur source (celui qui contient les lignes). Ensuite, il faut que le classeur destination soit ouvert. Et pour terminer il te faut adapter toutes les variables : OS, CD, OD et éventuellement PL si ton tableau ne commence pas dans la cellule A1...
le Code :
Un conseil, la prochaine fois quand tu demandes de l'aide essaie d'être le plus précis possible si tu veux mettre le maximum de chance d'obtenir une réponse rapidement...
Tu donnes si peu d'explications que le code que je te propose doit être complètement adapté à ton cas. Pour qu'il fonctionne il faut le placer dans le classeur source (celui qui contient les lignes). Ensuite, il faut que le classeur destination soit ouvert. Et pour terminer il te faut adapter toutes les variables : OS, CD, OD et éventuellement PL si ton tableau ne commence pas dans la cellule A1...
le Code :
Sub Macro1() Dim CS As Workbook 'déclare la variable CS (Classeur Source) Dim OS As Worksheet 'déclare la variable OS (Onglet Source) Dim CD As Workbook 'déclare la variable CS (Classeur Destination) Dim OD As Worksheet 'déclare la variable OS (Onglet Destination) Dim PL As Range 'déclare la variable PL (PLage) Dim DEST As Range 'déclare la variable DEST (cellule de DESTination) Set CS = ThisWorkbook 'définit le classeur source CS Set OS = CD.Sheets("Feuil1") 'définit l'onglet source OS Set CD = Workbooks("Classeur Destination.xlsx") 'définit le classeur destination CD Set OD = CD.Sheets("Feuil1") 'définit l'onglet destination OD Set PL = OS.Range("A1").CurrentRegion 'définit la plage PL Set PL = PL.Offset(1, 0).Resize(PL.Rows.Count - 1, PL.Columns.Count) 'redéfinit la plage PL (sans la première ligne) Set DEST = OD.Cells(Application.Rows.Count).End(xlUp).Offset(1, 0) 'définit la cellule de destination PL.Copy DEST 'copie la palge PL dans DEST End Sub
Un conseil, la prochaine fois quand tu demandes de l'aide essaie d'être le plus précis possible si tu veux mettre le maximum de chance d'obtenir une réponse rapidement...
Re,
J'ai rectifié deux erreurs du premier code proposé.
Comme tu manques toujours de précision, pour que le nouveau code fonctionne il faut que :
- Les donnés commencent en A1
- le classeur CLASSEUR_VERSEMENTS_DEPLACES_MOIS ait une extension .xlsx (sinon il faut modifier le code)
- le classeur CLASSEUR_VERSEMENTS_DEPLACES_MOIS.xlsx soit ouvert
Le code :
J'ai rectifié deux erreurs du premier code proposé.
Comme tu manques toujours de précision, pour que le nouveau code fonctionne il faut que :
- Les donnés commencent en A1
- le classeur CLASSEUR_VERSEMENTS_DEPLACES_MOIS ait une extension .xlsx (sinon il faut modifier le code)
- le classeur CLASSEUR_VERSEMENTS_DEPLACES_MOIS.xlsx soit ouvert
Le code :
Sub Macro1() Dim CS As Workbook 'déclare la variable CS (Classeur Source) Dim OS As Worksheet 'déclare la variable OS (Onglet Source) Dim CD As Workbook 'déclare la variable CS (Classeur Destination) Dim OD As Worksheet 'déclare la variable OS (Onglet Destination) Dim PL As Range 'déclare la variable PL (PLage) Dim DEST As Range 'déclare la variable DEST (cellule de DESTination) Set CS = ThisWorkbook 'définit le classeur source CS Set OS = CS.Sheets("VERSEMENTS_DEPLACES") 'définit l'onglet source OS Set CD = Workbooks("CLASSEUR_VERSEMENTS_DEPLACES_MOIS.xlsx") 'définit le classeur destination CD Set OD = CD.Sheets("Feuil1") 'définit l'onglet destination OD Set PL = OS.Range("A1").CurrentRegion 'définit la plage PL Set PL = PL.Offset(1, 0).Resize(PL.Rows.Count - 1, PL.Columns.Count) 'redéfinit la plage PL (sans la première ligne) Set DEST = OD.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0) 'définit la cellule de destination PL.Copy DEST 'copie la palge PL dans DEST End Sub
"Set OD = CD.Sheets("Feuil1") 'définit l'onglet destination OD" ici je n'ai pas mis Feuil1 mais versements déplacés car les lignes a transferer sont dans cet onglet la
Plus de précision ne voulais pas dire la marque du café à la machine à café ou l'âge de la secrétaire mais :
- Chemin d'accès du Classeur Destination
- Nom du Classeur Destination
- Nom de l'Onglet Destination
- Nom de l'Onglet Source
- Adresse de la plage
- Adresse de cellule de la première copie
- ect...
Avec en plus ton fichier ZIPPÉ en pièce jointe, tu mettrais toutes les chance d'obtenir rapidement une réponse, de ton coté...
Alors le Classeur qui contient les données a transferer s'apelle CLASSEUR_VERSEMENTS_DEPLACES , et l'onglet est VERSEMENTS_DEPLACES
et le classeur qui va recevoir les données s'appelle CLASSEUR_VERSEMENTS_DEPLACES_MOIS, sur onglet "Feuil1"