Compilation de plusieurs classeurs avec 1 feuil dans un classeur
Fermé
bf78630
Messages postés
1
Date d'inscription
mercredi 26 avril 2017
Statut
Membre
Dernière intervention
27 avril 2017
-
Modifié le 27 avril 2017 à 09:35
Bf78630 - 28 avril 2017 à 07:47
Bf78630 - 28 avril 2017 à 07:47
A voir également:
- Compilation de plusieurs classeurs avec 1 feuil dans un classeur
- Classeur numérique gratuit - Télécharger - Bureautique
- Les fonctionnalités suivantes ne peuvent pas être enregistrées dans des classeurs sans macro ✓ - Forum Excel
- Impossible d'exécuter la macro il est possible qu'elle ne soit pas disponible dans ce classeur ✓ - Forum Excel
- Telecharger code blocks avec compilateur - Télécharger - Langages
- Appliquer mise en forme conditionnelle sur tout le classeur ✓ - Forum Bureautique
2 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
27 avril 2017 à 11:34
27 avril 2017 à 11:34
Bonjour BF, bonjour le forum,
Essaie comme ça (nom des onglets à adapter) :
Si les fichiers source se trouvent dans la même dossier que le fichier destination tu peux simplifier CA avec :
Mais tu dois faire attention que le fichier destination ne soit pas inclus dans la boucle...
Essaie comme ça (nom des onglets à adapter) :
Sub recup() Dim CD As Workbook 'déclare la variable CD (Classeur Destination) Dim OD As Worksheet 'déclare la variable OD (Onglet Destination) Dim CA As String 'déclare la variable CA (Chemin d'Accès) Dim F As String 'déclare la variable F (Fichiers) Dim DEST As Range 'déclare la variable DEST (DESTination) Dim CS As Workbook 'déclare la variable CS (Classeur Source) Dim OS As Worksheet 'déclare la variable OS (Onglet Source) Set CD = ThisWorkbook 'définit le classeur destination CD Set OD = CD.Worksheets("Feuil1") 'définit l'onglet destination OD (à adapter à ton cas) CA = "C:\Users\ablancfo\Desktop\Fichier en cours\VBA OFS\TEST\A compiler\" 'définit le chemin d'accès CA F = Dir(CA & "*.xls") ' Premier fichier Do While F <> "" 'exécute tant qu'il existe des fichiers 'définit la cellule de destinatin DEST (A1, si A1 est vide, sinon, ;la premiere cellule vide de la colonne A de l'onglet OD Set DEST = IIf(OD.Range("A1").Value = "", OD.Range("A1"), OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0)) Workbooks.Open F 'ouvre le fichier F Set CS = ActiveWorkbook 'définit le classeur source CS Set OS = CS.Worksheets("Feuil1") 'définit l'onglet source OS (à adapter à ton cas) OS.Range("export").Copy DEST 'copie la plage nommée export de l'onglet OS et la colle dans dest CS.Close savechanges:=False 'ferme le classeur source sans enregistrer les changements F = Dir ' Fichier suivant Loop 'boucle End Sub
Si les fichiers source se trouvent dans la même dossier que le fichier destination tu peux simplifier CA avec :
CA = CD.Path & "\"
Mais tu dois faire attention que le fichier destination ne soit pas inclus dans la boucle...
Hello TauTheme mille merci pour ta réponse je suis plutot debutant en VBA mais j'adore ça ! De plus un code completement commenté comme le tiens c'est du pain bénit pour moi ! :) je vais l'essayer également, car j'ai trouvé une autre solution qui consiste tout simplement à coller mon code dans un module VBA (et ça fonctionne!) alors qu'avant je le mettais juste dans la feuille VBA. Cpendant je ne suis pas sur de bien comprendre la différence entre ces deux endroits ou placer le code.
Toujours est il que ça n'est que le début de ce que je compte faire : l'exercice ici est de compiler plusieurs fichiers (environ 75 bons de commande) et de rajouter des informations en colonne sur la droite par rapport au nom du fichier (correspondant au nom du client ) à chaque copier coller. J'esperais pouvoir le faire en ajoutant des condition imbriquées. Est ce que cela te parait etre la bonne direction ? J'ai nomé mes fichiers "test1", "test2" ect si jamais tu as le temps d'éclairer ma lanterne, c'est avec plaisir que je te lirais !
En tout cas , MILLE MERCI !
Toujours est il que ça n'est que le début de ce que je compte faire : l'exercice ici est de compiler plusieurs fichiers (environ 75 bons de commande) et de rajouter des informations en colonne sur la droite par rapport au nom du fichier (correspondant au nom du client ) à chaque copier coller. J'esperais pouvoir le faire en ajoutant des condition imbriquées. Est ce que cela te parait etre la bonne direction ? J'ai nomé mes fichiers "test1", "test2" ect si jamais tu as le temps d'éclairer ma lanterne, c'est avec plaisir que je te lirais !
En tout cas , MILLE MERCI !