Macro Exel copier dossier

Résolu
Bonjour,
J' ai la macro suivante pour copier des dossiers dans un autre dossier, mais cela ne fonctionne pas;

1 -Sub CopiesDIS()
'
2- ' CopiesDIS Macro
'

'
3- Windows("DOSAUBERT.xlsm").Activate
4- Range("A5:G15").Select 5- Selection.Copy

5- Windows("CCM.multi.ZZZ.xlsm").Activate

6- Sheets("AUBERT").Select
7- Range("A5").Select
8- ActiveSheet.Paste
9- Range("A5").Select

'---------------------------------------------------------------
10- Windows("DOSBERNARD.xlsm").Activate '
11- Range("A5:G15").Select '
12- Selection.Copy

13- Windows("CCM.multi.ZZZ.xlsm").Activate

14 - Sheets("BERNARD").Select
15- Range("A5").Select
16- Range("A5").Select

'---------------------------------------------------------------

17- Windows("DOSCARDON.xlsm").Activate
18- Range("A5:G15").Select
19- Selection.Copy

20- Windows("CCM.multi.ZZZ.xlsm").Activate 21- Range("A18").Select
21- Sheets("CARDON").Select
22- Range("A5").Select
23- ActiveSheet.Paste
24- Range("A11").Select
25- Ebd Sub

Merci d' avance pour l' aide;
Cdt,

7 réponses

  1. Bonjour,

    Je vous invite à mettre des balises pour identifier votre code. Ca sera déjà un poil plus propre (4eme bouton en haut de la fenêtre de rédaction).

    Ensuite il va falloir être plus claire sur les termes et le besoin, je ne vois que des classeurs, avec des feuilles, et des plages de cellules, pas de "Dossier" ici. Pour faire un copier coller d'un classeur à un autre il y'a environ 10 fois trop de code. C'est une macro généré automatiquement (enregistrement ?). En plus il y'a des références vers quatre classeur différents. Énoncez plus précisément votre besoin !

    Un exemple quand même:
    Sub Copier_Coller()    'Déclaration et nom de la macro
    
    ' Description libre : Macro pour Copier - Coller une plage de cellules entre deux classeur
    
        Sheets("AUBERT").Select    'Sélection de la feuille source d'où vous voulez copier
        Range("A5:G15").Select    'Sélection de la plage de cellule à copier
        Selection.Copy    'Copie de la plage dans le presse-papier
        Windows("DOSBERNARD.xlsm").Activate    'Sélection du classeur de destination
        Sheets("BERNARD").Select    'Sélection de la feuille de destination
        Range("A5:G15").Select    'Sélection de la plage de destination
        ActiveSheet.Paste    'Ecriture des données
        Windows("DOSAUBERT.xlsm").Activate    'Facultatif, retour sur le premier classeur
    End Sub ' Fin de la macro
    
    


    Cdlt.
    0
    1. Merci de votre réponse rapide,
      Dans mon, exemple j' ai des applications Excel que je nomme "Dossier", AUBERT, BERNARD,
      CARDON;; contenant chacun une feuille contenant les informations actualisées et qui doivent être coller dans un Dossier Excel nommé "RECAP" dans des feuilles nommées AUBERT, BERNARD, CARDON..
      Les données des différentes feuilles du dossier RECAP sont totalisées dans une feuille nommée "RECAP.

      J' ai mis des numéros de ligne au lieu de balises.
      La ligné 4
      4- Range("A5:G15").Select 5- Selection.Copy
      doit être modifiée ainsi
      4- Range("A5:G15").Select
      5- Selection.Copy

      Ma macro est faite par "enregistrer une macro" mais elle ne fonctionne pas, rien n' est copier.

      Encore merci,
      Cdt
      0
      1. Bonjour,

        Il faut reprendre à zéro... je part de ma base et je duplique pour les trois opérations:

        Sub Copier_Coller()    'Déclaration et nom de la macro
        
        ' Description libre : Macro pour Copier - Coller une plage de cellules entre deux classeur
        
        'Copie des cellules du premier "dossier" vers le recap
            Windows("DOSAUBERT.xlsm").Activate 'Sélection du classeur source
            Sheets("AUBERT").Select    'Sélection de la feuille source d'où vous voulez copier
            Range("A5:G15").Select    'Sélection de la plage de cellule à copier
            Selection.Copy    'Copie de la plage dans le presse-papier
            Windows("RECAP.xlsm").Activate    'Sélection du classeur de destination
            Sheets("AUBERT").Select    'Sélection de la feuille de destination
            Range("A5:G15").Select    'Sélection de la plage de destination
            ActiveSheet.Paste    'Ecriture des données
        'Copie du 2eme "dossier" vers le recap
            Windows("DOSBERNARD.xlsm").Activate 
            Sheets("BERNARD").Select
            Range("A5:G15").Select
            Selection.Copy
            Windows("RECAP.xlsm").Activate
            Sheets("BERNARD").Select
            Range("A5:G15").Select
            ActiveSheet.Paste
        'Copie du 3eme "dossier" vers le recap
            Windows("DOSCARDON.xlsm").Activate 
            Sheets("CARDON").Select
            Range("A5:G15").Select
            Selection.Copy
            Windows("RECAP.xlsm").Activate
            Sheets("CARDON").Select
            Range("A5:G15").Select 
            ActiveSheet.Paste 
        End Sub ' Fin de la macro


        Vous avez la structure et la fonction de chaque ligne, à vous d'adapter !
        0
    2. Bonsoir,

      La macro butte sur la ligne ci-dessous, comme c' était le cas dans ma macro.

      balise 10- Windows("RECAP.xlsm").Activate 'Sélection du classeur de destination

      Je ne comprends pas pourquoi,

      Merci de ton intérêt à mon problème.
      Cdt,
      0
      1. Vérifier que ce soit le bon nom et le bon format de fichier ... (bien xslm et pas xlsx)
        0
    3. J' ai vérifier, tout est correct, l"' erreur ne vient pas de là:

      Je comprend toujours pas d' où vient le problème;

      Merci, cordialement.
      0
      1. Tous vos fichiers sont ouverts, et dans le même dossier ? (Dans le doute mettez le chemin d'accès complet type C:\User\Abcde\Documents\RECAP.xlsm)
        0
    4. Contributeur
      Bonjour JB22, T3chNog3n

      excusez l'incruste
      Que copies tu ? des données, les formats, colleurs etc.... ?
      car si c'est seulement des valeurs il y a peut-^tre + Simple et rapide....

      0
      1. Bonjour,

        Il n'y a pas d'incruste, toute aide est bienvenue, je n'ai pas le monopole ^^

        Cdlt.
        0
    5. Je confirme :
      "Il n'y a pas d'incruste, toute aide est bienvenue, je n'ai pas le monopole ^^"

      Oui les données actualisées des dossiers individuels, AUBERT, BERNARD,...contiennent des données numériques.
      Dans le dossier RECAP" il y autant de feuilles au nom des dossiers individuels , AUBERT,BERNARD, CARDON...
      Dans ce dossier une feuille "RECAL donne le total de toutes les feuilles individuelles.

      Le problème vient de la difficulté de coller par macro les données actualisées de chaque feuille individuelle dans le dossier "RECAP".

      Je pense avoir été assez clair,

      Grand merci pour toute contribution;
      Cdt
      Jean Braconnier
      0
      1. Contributeur
        Re, Les classeurs (aubert, Bernerd...)que tu veux recopier vers le classeur "Recap" sont ils dans le m^me dossier (répertoire si tu préfères: le mot "dossier" est le nom moderne de "répertoire" ) ?
        0
      2. Bonjour,

        Je vois pas la difficulté ... Voici un dossier exemple, vous avez un bouton pour lancer la macro dans l'onglet RECAP du fichier du même nom.
        https://www.cjoint.com/c/LCinH2Rae1X (lien valide 21 jours)

        Cdlt.
        0
    6. Merci pour le lien.
      Cela fonctionne bien;, la macro est un peu longue, mais on ne la crée qu'une fois avec des recopie de fonctions en changeant les noms;
      Le test ne concerne qu' une donnée dans chaque dossier individuel mais j' ai pu adopter la feuille à plusieurs données.
      Encore un grand merci.
      Cdt,
      Jean braconnier
      0