Copier/Coller plusieurs classeurs via VBA

Résolu
ti_mouton Messages postés 153 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Une question un peu compliquée. J'ai 4 classeurs parfaitement identiques nommés classeur1, classeur2, classeur3, classeur4. Dans mon 5ème classeur, dans ma feuille "Synthèse Globale", j'aimerais pouvoir développer une macro qui permettrai de copier/Coller les colonnes de C à E contenu dans l'onglet "Saisie" de chaque classeur. J'aimerais que les copier/Coller se fassent les uns à la suite des autres, par exemple la macro commence à copier/coller les colonnes de C à E de l'onglet "Saisie" du classeur1, puis quand on arrive à la ligne où les valeurs contenues dans ces colonnes sont nulles (ou plutôt cellule vide), la macro lance le copier/coller des colonnes C à E de l'onglet "Saisie" du classeur2... et ainsi de suite jusqu'au classeur4.
J'espère avoir été assez claire dans mes explications. Je ne sais pas du tout si une telle macro peut être développée.

Merci beaucoup pour votre aide,

5 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,
    Où se trouvent les 4 classeurs et le 5°: dans le m^me dossier ?
    et sont les seuls dans le ou les dossiers concernés?

    Edit 14:03h
    suffixes: xls, xlsx, xlm, xlsm des 4 ?
    Michel
    0
    1. ti_mouton Messages postés 153 Statut Membre
       
      RE,
      Les 5 classeurs se trouvent dans le même dossier nommé "Suivi des temps CIR" ils sont tous au format xlsm.

      Merci
      0
  2. ti_mouton Messages postés 153 Statut Membre
     
    RE,
    Les 5 classeurs se trouvent dans le même dossier nommé "Suivi des temps CIR" ils sont tous au format xlsm.

    Merci
    0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Re
    ci dessous un code non testé, donc...
    Option Explicit
    '------
    Sub compiler_CaE()
    Dim Chemin As String, Fich As String
    Dim Derlig As Integer, Ligvide As Long, Tampon

    'fige le défilement de l'écran
    Application.ScreenUpdating = False

    Chemin = ThisWorkbook.Path
    ChDir Chemin
    Fich = Dir("*.xlsm")
    While Fich <> "" And Fich <> "classeur5.xlsm"
    Workbooks.Open Filename:=Fich 'ouvre le classeur
    With Sheets("saisie")
    Derlig = .Columns("C:E").Find(what:="*", searchdirection:=xlPrevious).Row
    Tampon = .Range("C1:E" & Derlig) 'mémorise les données à compiler dans classeur5
    End With
    Workbooks(Fich).Close

    With ThisWorkbook.Sheets("Synthèse Globale")
    Ligvide = .Columns("C:E").Find(what:="", after:=Range("C:" & .Cells.Rows.Count)).Row
    Cells(Ligvid, "C").Resize(UBound(Tampon), 3) = Tampon
    End With

    'affecte le fichier suivant (utilisation du joker " * " utilisé pour la def du 1° fichier)
    Fich = Dir
    Wend

    Sheets("Synthèse Globale").Activate
    MsgBox "compilation terminée"
    End Sub


    pour bien faire pourrais tu mettre en pièce jointe un des classeurs source et me donner les nom exact du classeur5 et des classeurs source
    je restitue actuellement dans les colonnes C-E du classeur 5
    dans l'attente, d'avance merci; Je repasse dans 1h - 1h30

    pour mettre en Pj
    Mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
    et coller le lien proposé dans le message de réponse
    Dans l'attente

    Michel
    0
    1. ti_mouton Messages postés 153 Statut Membre
       
      Voici le lien demandé https://www.cjoint.com/?0EDpgKcHZbD
      Mes classeurs sources s'appellent respectivement: classeur1.xlsm, classeur2.xlsm, classeur3.xlsm, et classeur4.xlsm. Mon classeur destinataire s'appelle "Base de données.xlsm"
      Merci
      0
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    0
    1. ti_mouton Messages postés 153 Statut Membre
       
      je pense que je m'y prend mal, lorsque j'ouvre les fichiers et que je vais dans l'onglet Développeur puis VBA je ne trouve aucune macro de créée ...?
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > ti_mouton Messages postés 153 Statut Membre
       
      Oups! j'étais pressé (mauvais alibi)
      https://www.cjoint.com/?3EDqYVmvXDE
      n'ouvre pas le zip maisextrait le
      0
    3. ti_mouton Messages postés 153 Statut Membre > michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Merci beaucoup Michel, mais je vais encore vous embêter un petit peu. Votre code marche très bien, je l'ai copier dans mon classeur Base de données et tout fonctionne, par contre j'ai essayé de modifier le code pour qu'il me recopie les colonnes de B à I et pas seulement de C à E. Mais là ça ne marche plus, il me recopie uniquement les colonnes de B à I du classeur1 puis plus rien. Par contre message d'erreur ne s'affiche.
      0
    4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      bonjour,
      Suis absent toute la journée (météo splendide ici sans mistral...)
      met ton classeur base de données en PJ
      0
    5. ti_mouton Messages postés 153 Statut Membre > michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention  
       
      https://www.cjoint.com/?0EEkeCWKK8N
      Merci, et bonne journée au soleil
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Jojos54 Messages postés 15 Statut Membre
     
    Tu dois pouvoir t'en sortir avec ce type d'instruction.
    pour l'ouverture du classeur :
    Workbooks.Open Filename:=ThisWorkbook.Path & "\nom_du_classeur"
    la fermeture avec l'instruction workbooks("nom_du_classeur").close False

    et ensuite pour les copier coller workbook("nom_du_classeur").sheets("nom_de_l'onglet").range(column(3), column(5)).copy

    et un .paste derrière à l'endroit ou tu le veux.
    -2
    1. ti_mouton Messages postés 153 Statut Membre
       
      D'accord merci, mais j'ai oublié de préciser que je suis vraiment très débutante... Est ce que vous pourriez me détailler un peu plus tout ca ? j'ai du mal à comprendre comment faire pour que les copier/coller se fassent les uns à la suite des autres.
      Merci
      0