Copier-coller entre classeurs [Résolu/Fermé]

Signaler
Messages postés
9
Date d'inscription
mercredi 25 février 2015
Statut
Membre
Dernière intervention
26 février 2015
-
Messages postés
9
Date d'inscription
mercredi 25 février 2015
Statut
Membre
Dernière intervention
26 février 2015
-
Bonjour à tous,

Je suis nouveau sur le forum.

Enoncé du problème :
- un dossier contient des fichiers Excel extraits quotidiennement,
- chaque fichier est intitulé de la façon suivante : même préfixe + date du jour,
- chaque fichier contient 1 onglet que je souhaiterais récupérer et coller dans un onglet dans un fichier RECAP (ou peu importe le nom du fichier).

En somme, j'ai plusieurs fichiers Excel (1 par jour) dans un même dossier. Je souhaiterais copier-coller l'onglet qui m'intéresse de chacun de ces fichiers journaliers dans un fichier nouvellement créé qui s'intitulerait RECAP par exemple et ce, de façon automatiser (ne plus copier-coller manuellement l'onglet "collaboratif" du fichier du 1er janvier dans le RECAP puis l'onglet "collaboratif" du fichier du 2 janvier et ainsi de suite.

Pourriez-vous m'aider, s'il-vous-plaît, pour automatiser ce copier-coller ? Par exemple : à l'enregistrement du fichier journalier dans le dossier prévu à cet effet --> copier-coller de l'onglet "collaboratif" du fichier journalier dans un onglet du fichier RECAP (avec pourquoi pas le nom de ce nouvel onglet RECAP = nom du fichier journalier à la date du jour).

7 réponses

Messages postés
9819
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 novembre 2020
1 096
Bonjour,
Essayer une fois, activer l'enregistreur de macro et exécuter les opérations manuellement puis le fermer. Consulter la macro enregistrée et adapter là pour la suite.

Messages postés
9
Date d'inscription
mercredi 25 février 2015
Statut
Membre
Dernière intervention
26 février 2015

Bonjour,

Je vous remercie pour votre réponse. Néanmoins, cela ne fonctionne pas car il faut générer de nouveaux onglets dans le dossier RECAP à chaque fois.
Messages postés
7071
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 novembre 2020
577
Bonjour,

voici un exemple. Ouvrez le classeur "Essai" à sa fermeture l'onglet "Essai" sera copié dans le classeur "Recap" avec la date du jour.

http://www.cjoint.com/data3/3BzpZs1iP3z.htm
Messages postés
9
Date d'inscription
mercredi 25 février 2015
Statut
Membre
Dernière intervention
26 février 2015

Bonjour,

Je vous remercie pour votre démonstration.

En fait, ce que je souhaiterais :
- ce que vous proposez dans votre exemple (très compréhensible),
- en plus : le classeur "Essai" (pour revenir sur votre exemple) contiendrait 4 onglets. Je souhaiterais copier d'entre eux sur l'un des onglets du fichier "RECAP" (les données de la feuille "Essai" par exemple en haut de l'onglet du fichier "RECAP" puis les données de la feuille3 par exemple du classeur "Essai" en dessous des données de la feuille "Essai" qui viennent d'être copiées sur l'onglet du classeur "RECAP".
- Répéter l'opération tous les jours : à chaque réception d'un classeur "Essai", copier-coller deux onglets de celui-ci sur un seul onglet du classeur "RECAP" (en revanche, dans le classeur RECAP, je souhaiterais avoir un onglet par jour).

Est-ce possible ?
Messages postés
9
Date d'inscription
mercredi 25 février 2015
Statut
Membre
Dernière intervention
26 février 2015

Ah et sans la date du jour également. Je souhaiterais que l'onglet du classeur "RECAP" s'intitule de la même façon que le nom que j'ai donné au fichier "Essai", par exemple "Essai 21-01-2015", "Essai 22-01-2015",...
Messages postés
7071
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 novembre 2020
577
Ce que vous voulez faire c'est copier des données. Ce n'est pas pareil que copier un onglet. On ne peux pas mettre 2 onglets sur le même onglet. Par contre on peut mettre des données à la suite l'une de l'autre.

Voici un exemple pour copier 2 onglets:

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Sheets("Essai").Select
  Workbooks.Open ThisWorkbook.Path & "\" & "Recap.xls"
Sheets(Array("Essai", "Azerty")).Copy After:=Workbooks("Recap.xls").Sheets(1)
Workbooks("Recap.xls").Close
End Sub

Messages postés
9
Date d'inscription
mercredi 25 février 2015
Statut
Membre
Dernière intervention
26 février 2015

Oui, exactement.

Par contre, est-ce qu'il sera nécessaire de changer le code à chaque fois?
En effet, tous les jours, j'aurai un classeur différent dont je souhaiterais extraire les données présentes sur 2 onglets différents afin de les coller sur un seul onglet de mon classeur "RECAP".

Par ailleurs, j'ai trouvé un autre code en fouillant. Mais je suis confronté au problème que vous évoquez : ce code permet de copier un onglet. Aussi, comment puis-je procéder pour vous envoyer ce code afin que nous regardions ensemble?

L'exemple sera plus parlant, assurément.
Messages postés
9
Date d'inscription
mercredi 25 février 2015
Statut
Membre
Dernière intervention
26 février 2015

Par ailleurs, je viens d'essayer votre code.
Il fonctionne mais me crée deux onglets différents sur mon classeur RECAP.
Messages postés
7071
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 novembre 2020
577
En le déposant là et ensuite mettre le lien ici. Comme je l'ai fait pour l'exemple donné

https://www.cjoint.com/
Messages postés
9
Date d'inscription
mercredi 25 février 2015
Statut
Membre
Dernière intervention
26 février 2015

https://www.cjoint.com/?3Bzr6snvpRi
http://www.cjoint.com/confirm.php?cjoint=3Bzr6snvpRi

J'utilise l'onglet "Param" du classeur "RECAP" pour la copie de l'onglet "Collaboratif UR1" du classeur "IndicateursWorkflow01012015".
Je souhaiterais copier sur un même onglet du classeur "RECAP", les onglets "Collaboratif UR1" et "Collaboratif UR3" et ce, pour chaque jour d'un mois (extraction journalière).

Vous remerciant par avance.
Messages postés
7071
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 novembre 2020
577
Voici le dossier. Il faudra allez au module 2 et adaptez le nom de la feuille:

http://www.cjoint.com/data3/3BzsRUUN8Lq.htm
Messages postés
7071
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 novembre 2020
577
Voir ceci

https://www.sfr.fr/fermeture-des-pages-perso.html

et rectifier pour mettre le nouvel onglet en dernière position:

  Sheets.Add.Name = "Mafeuille" 'a adapter
    Sheets("Mafeuille").Move After:=Sheets(Sheets.Count) 'positionner en dernière position
Messages postés
7071
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 novembre 2020
577
Pour mettre le nom de la feuille. Mettre ce nom par exemple dans la feuille Param dans la cellule A11
Rectifier le code comme ceci:

Sub Copier_onglets()
Dim nom As String
nom = Range("A11").Value
If nom = "" Then Exit Sub
Sheets("RECAP.").Select
    Sheets.Add.Name = nom
    Sheets(nom).Move After:=Sheets(Sheets.Count) 'positionner en dernière position
       Workbooks.Open ThisWorkbook.Path & "\" & "IndicateursWorkflow 01012015.xls" 'classeur à copier
    Sheets("Consultatif UR1").Select
    Columns("A:G").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("RECAP.xls").Activate
    Sheets(nom).Select

Messages postés
7071
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 novembre 2020
577
Je me suis trompé de feuilles à copier. Voila le bon dossier avec les feuilles "Collaboratif UR1" et "Collaboratif UR3" copièes:

http://www.cjoint.com/data3/3BAj0h3eDGZ.htm
Messages postés
9
Date d'inscription
mercredi 25 février 2015
Statut
Membre
Dernière intervention
26 février 2015

Merci beaucoup CS_Le Pivert!!!!