Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copie de données de plusieurs fichiers dans un seul.

  • Initiateur de la discussion Initiateur de la discussion Renaud22
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Renaud22

XLDnaute Occasionnel
Bonjour à tous,

J'aurais besoin qu'on m'aide pour concevoir une macro qui permettrait de copier dans un fichier "Récapitulatif.xlsx" tous les codes (cellule I1) contenu dans chacune des feuilles d'un fichier quelconque (exemple : 1er : "Classeur 1.xlsx", 2e : "Classeur 2.xlsx",...). Le nom associé à chaque fichier devra être copié à droite du code. A chaque fois que la macro est activée et ce pour un nombre X de fichiers, les codes et les noms de fichiers devront être copiés à la suite du précédent comme dans l'exemple "Récapitulatif.xlsx". Si vous avez des questions, n'hésitez pas à me contacter.

Merci à l'avance pour votre aide.

Sincères salutations,

Renaud22
 

Pièces jointes

Re : Copie de données de plusieurs fichiers dans un seul.

Bonsoir à tous

Renaud22
Si vous avez des questions, n'hésitez pas à me contacter.
Une seule question:
Le sujet que tu abordes dans ta question ayant été traité moult fois sur ce forum, as-tu chercher dans les archives du forum (en cliquant sur la loupe en haut à droite) les fils de discussion relatifs à celui-ci?

Si la réponse est oui, cela entraine une seconde question:
Tu n'as pas trouvé d'exemples suffisamment explicites et transposables à ta problématique ?

Si la réponse est non, alors plus de question, mais une suggestion en guise d'invitation 😉
Voici =7&prefixchoice[]=&prefixchoice[]=Excel_2013&prefixchoice[]=Excel_2010&prefixchoice[]=Excel_2007&prefixchoice[]=Excel_2003&prefixchoice[]=Excel_2002"]un exemple de recherche possible
Voila =7&prefixchoice[]=&prefixchoice[]=Excel_2013&prefixchoice[]=Excel_2010&prefixchoice[]=Excel_2007&prefixchoice[]=Excel_2003&prefixchoice[]=Excel_2002"]un autre exemple

Avec tous ces fils, tu devais trouver de quoi commencer une ébauche de solution, non ? 😉
 
Re : Copie de données de plusieurs fichiers dans un seul.

Bonjour JM,

Certes, il existe sur le forum une multitude d'exemples similaires au mien. Cependant, le temps me manque réellement pour faire cette recherche mais surtout l'adapter spécifiquement à mon problème. J'espérais avoir l'aide nécessaire dans un délai relativement bref pour solutionner mon problème de macro.

Cordialement,

Renaud22
 
Re : Copie de données de plusieurs fichiers dans un seul.

Bonjour à tous

Renaud22
Demander de l'aide sur un forum d'entraide quoi de plus normal 😉
Encore faudrait-il suivre les discussions que tu crées, non ?
Quid de celle-ci par exemple ?
https://www.excel-downloads.com/threads/copie-et-suppression-de-bloc-de-donnees.224587/

[aparté]
En quoi ton temps est-il plus précieux que le notre?
Nous sommes ici des bénévoles, pas des prestataires de services qui livrent des solutions clés-en mains 😉
C'est avec plaisir que je aide les demandeurs quand ceux-ci mettent un tant soit peu la main à la pâte 😉
[/aparté]

NB: Dans mon précédent message, la recherche est déjà faite (voir les URL en bleus qui sont cliquables)
Cela t'épargne un peu de temps, tu as juste à cliquer sur ces liens.

PS: Si tu es pressé, tu peux aller voir Lien supprimé , et là tu ne perdras pas de temps, juste un peu de sous 😉
 
Re : Copie de données de plusieurs fichiers dans un seul.

Re

Renaud22
En prenant un peu sur mon temps de sommeil, et en prenant comme point de départ un code trouvé dans fil de discussion issu de la recherche citée dans mon premier message (le premier lien), et après quelques légères modifs, voici une macro qui fait ce que tu souhaites...🙄

En espérant que la prochaine fois, tu daignes mouiller un peu plus le maillot 😉
Code VBA:
Sub a()
'source du code original dans ce fil
'http://www.excel-downloads.com/forum/98695-est-il-possible-de-fusionner-plusieurs-documents-excel-en-un-seul-post1412455.html#post1412455
'pour fusionner plusieurs classeurs d'un même répertoire

'ajout staple
Dim wRecap As Workbook, wsData As Worksheet, strPath$
Dim nf, compteur As Long, k As Byte
Set wRecap = ThisWorkbook
Set wsData = wRecap.Sheets("Données")
strPath = wRecap.Path
' fin ajout
compteur = 1
nf = Dir("*.xlsx")
Application.ScreenUpdating = False
Do While nf <> ""
If nf <> wRecap.Name Then
Workbooks.Open Filename:=nf
For k = 1 To Worksheets.Count
'code d'origine
'Sheets(k).Copy After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count)
'classeurMaitre.Sheets(classeurMaitre.Sheets.Count).Name = "CM" & compteur

'///// ajout staple /////
If Len(Worksheets(k).Cells(1, "I")) > 0 Then
wsData.Cells(Rows.Count, 2).End(xlUp)(2) = Worksheets(k).Cells(1, "I")
wsData.Cells(Rows.Count, 3).End(xlUp)(2) = Workbooks(nf).FullName & " | " & Worksheets(k).Name
End If
' fin ajout
compteur = compteur + 1
Next k
Workbooks(nf).Close False
End If
nf = Dir
Loop
Application.ScreenUpdating = True
End Sub


NB: Tu penses vraiment que tu n'auras pas eu le temps de faire ce que je viens de faire ?
J'ai téléchargé tes PJ à 6h12 ce matin et posté le code ci-dessus à 6h36.
(J'ai pris le temps entre temps de boire un café, et de fumer une petite cancerette)
 
Dernière édition:
Re : Copie de données de plusieurs fichiers dans un seul.

Re

Histoire d'honorer mes endives, la version courte 😉
(en espérant que tout ce temps perdu ne le soit finalement pas.
Au moins cela m'aura tenu éveillé 😉 )
Code:
Sub b()
Dim wRecap As Workbook, wsData As Worksheet, strPath$, nf$, compteur&, k As Byte
Set wRecap = ThisWorkbook: Set wsData = wRecap.Sheets("Données")
strPath = wRecap.Path: compteur = 1
nf = Dir("*.xlsx")
Application.ScreenUpdating = False
  Do While nf <> ""
    If nf <> wRecap.Name Then
      Workbooks.Open Filename:=nf
      For k = 1 To Worksheets.Count
        If Len(Worksheets(k).Cells(1, "I")) > 0 Then
            With wsData.Cells(Rows.Count, 2).End(xlUp)(2)
                .Value = Worksheets(k).Cells(1, "I").Value
                .Offset(, 1).Value = Workbooks(nf).FullName & " | " & Worksheets(k).Name
            End With
        End If
        compteur = compteur + 1
      Next k
      Workbooks(nf).Close False
    End If
    nf = Dir
  Loop
 Application.ScreenUpdating = True
End Sub
 
Re : Copie de données de plusieurs fichiers dans un seul.

Bonjour JM,

Merci infiniment d'avoir pris quelques minutes de votre temps pour concevoir le code VBA. Celui-ci fonctionne à merveille. Je vous promets qu'à l'avenir, je prendrai le temps nécessaire pour chercher sur ce forum la solution à un problème de macro. Malheureusement, je n'y connais rien en programmation. C'est pour cette raison que je fais appel à des spécialistes comme vous. Désolé pour mon ignorance dans ce domaine. Demeurez assuré que j'apprécierais grandement les efforts que vous avez déployé pour me venir en aide.

Sincères salutations,

Renaud22
 
Re : Copie de données de plusieurs fichiers dans un seul.

Bonsoir à tous

Renaud22
Demeurez assuré que j'apprécierais grandement les efforts que vous avez déployé pour me venir en aide.
Assurément demeure sans réponse cette question...
Donc avant les prochaines fois, pensons déjà à la fois d'avant 😉
https://www.excel-downloads.com/threads/copie-de-donnees-de-plusieurs-fichiers-dans-un-seul.224753/

NB: je parle bien sur de ta non-réponse sur l'autre fil.

Sinon pour ta question de cette fois-ci, tu peux aussi n'utiliser que Workbooks(nf).Name à la place de Workbooks(nf).FullName si tu ne veux que le nom du classeur.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

P
Réponses
6
Affichages
1 K
Pimprenelle9
P
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…