Copie de données depuis un classeur fermé

Résolu
Jono92600 Messages postés 78 Statut Membre -  
baladur13 Messages postés 47339 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Voila actuellement, j'ai plusieurs classeurs excel comportant des données "différentes", j'aimerai copié les données de deux "Feuils" de chaque classeur même si ces derniers sont fermés.

"Classeur1"
- Test1
- Test2
- Test3
- Test4

Je veux copier les feuils nommées (ESSAIS et PRESTAT) de chaque classeur nommé (Test1, Test2, Test3 et Test4) dans une seule et même classeur nommé (Classeur1) dans l'ordre.

Copier les données issu du classeur "Test1", Feuil "ESSAIS" dans "Classeur1" Feuil "ESSAIS" et Feuil "PRESTAT" dans "Classeur1" Feuil "PRESTAT".

Copier les données issu du classeur "Test2", Feuil "ESSAIS" dans "Classeur1" Feuil "ESSAIS" et Feuil "PRESTAT" dans "Classeur1" Feuil "PRESTAT".

Copier les données issu du classeur "Test2", Feuil "ESSAIS" dans "Classeur1" Feuil "ESSAIS" et Feuil "PRESTAT" dans "Classeur1" Feuil "PRESTAT".

Copier les données issu du classeur "Test3", Feuil "ESSAIS" dans "Classeur1" Feuil "ESSAIS" et Feuil "PRESTAT" dans "Classeur1" Feuil "PRESTAT".

Copier les données issu du classeur "Test4", Feuil "ESSAIS" dans "Classeur1" Feuil "ESSAIS" et Feuil "PRESTAT" dans "Classeur1" Feuil "PRESTAT".

Tous ces données copiées les une après les autres.

ci-dessous, le lien du fichier compressé.

https://www.cjoint.com/c/GEtkLQiyhcG

Par avance merci de votre aide.

4 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour
    envoyer plutôt la pièce jointe compressée sur un site spécialisé plutôt que 7z que tout le monde n'a pas
    Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
    et faire un clic droit-coller le raccourci dans votre message

    Dans l’attente

     Michel
    0
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    Le but de ce forum d'entraide est de vous donner des conseils et de vous aider à résoudre votre problème, mais nous ne sommes par là pour faire le travail à votre place.
    Pour cela, il y existe des professionnels qui ont besoin de travailler. Il n’est pas question pour nous bénévoles, de leur ôter le pain de la bouche.
    Pour obtenir une réponse, il faut que vous fassiez vous-même des efforts. Montrez-nous ce que vous avez déjà fait en expliquant vos difficultés et vous mettrez toutes les chances de votre coté pour que quelqu’un vous réponde.
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Salut Patrice,

      Tiens, j'ai déjà lu ça quelque part ! ;o)

      Bon WE ensoleillé et amuse toi bien avec budgets: bientôt 400? :-D

      Cordialement
      0
  3. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    Je vais préciser pourquoi cette réponse et notamment cette partie : «nous ne sommes par là pour faire le travail à votre place.»

    - Pour résoudre ton problème, il faut écrire une macro en langage VBA.
    - Tu as posté deux fichiers (que j'ai regardé), dans lesquels il n'y a pas la moindre ligne de code VBA.

    Fais l'effort de commencer à écrire le code, et si rencontres des difficultés, on t'aidera.
    0
    1. Jono92600
       
      Bonjour,

      D'accord, je comprend mieux. Si tu regarde mais autres postes et si tu regardes un peu plus loin, j'ai aidé beaucoup de personnes à résoudre leur problème.
      ¨
      PS: le code que j'ai réaliser ne traite pas toutes les lignes, raison pour lequel je l'ai effacé.

      Merci.
      0
    2. Jono92600 Messages postés 78 Statut Membre
       
      Bonjour,

      Non, j'en ai pas d'autre.

      Ci-dessous le code qui me permet uniquement de copier la première cellule de la Feuil1 de chaque fichier.


      Option Explicit

      Sub Importer()
      Dim i As Long
      Dim sDossier As String, sFichier As String, sFeuille As String, sColonne As String

      Application.ScreenUpdating = False

      ShDatas.Range("A2:Z4587").Clear
      sDossier = ThisWorkbook.Path & "\"
      sFeuille = "Feuil1"

      For i = 1 To 4
      With ShDatas
      sFichier = .Cells(1, i)
      .Cells(2, i) = ExtraireValeur(sDossier, sFichier, sFeuille, "A2:A150")
      .Cells(2, i) = ExtraireValeur(sDossier, sFichier, sFeuille, "A2:A150")
      End With
      Next i

      Application.ScreenUpdating = True
      End Sub

      Private Function ExtraireValeur(ByVal Dossier As String, ByVal Fichier As String, ByVal Feuille As String, ByVal Cellule As String)
      Dim Argument As String
      Argument = "'" & Dossier & "[" & Fichier & "]" & Feuille & "'!" & Range(Cellule).Address(, , xlR1C1)
      ExtraireValeur = ExecuteExcel4Macro(Argument)
      End Function
      0
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    bonjour,

    si j'ose une incruste

    la macro XL4 ne fonctionne que pour une cellule à la fois

    pour copier le la valeur, soit:
    1/ tu peux faire une boucle en appelant à chaque fois la macro avec un test "sivide" pour sortir de la boucle

    2/ + raisonnablement, utiliser la technologie ADODB

    c'était juste une suggestion au passage
    a voir avec Patrice
    0
    1. Jono92600 Messages postés 78 Statut Membre
       
      Bonjour,

      Je vous remercie de cette intervention. Je vais faire le teste.

      Cordialement,
      0
      1. Jono92600 Messages postés 78 Statut Membre > michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonjour,

        Merci Michel_m, vous venez de répondre à ma question.

        Merci beaucoup.
        0