Récupération de données multi fichiers

  • Initiateur de la discussion Initiateur de la discussion titi55
  • 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 !

T

titi55

Guest
Bonsoir,


J'ai une centaine de fichiers contenant sur leur 2ème onglet, nommé D2, des tableaux strictement identiques quant à leur structure et leur emplacement, seules les données varient.

Les tableaux, situés sur N:\12-Gestion, comportent 10 colonnes et 8 lignes.

Je souhaite mettre ces tableaux à la suite sur un seul fichier sans passer par l'ouverture et copier/coller de mes 100 fichiers.

le fichier destinataire comporte dans son premier onglet les noms des 100 fichiers.

l'objectif est de récupérer les tableaux sur le 2ème onglet

Puis-je automatiser ce traitement en VBA?


Merci de votre aide.
 
Re : Récupération de données multi fichiers

Bonsoir et bienvenue sur ce forum,

C'est assez simple à faire avec une macro.
On peut travailler à partir de la liste des noms, mais je préfère mettre tous les fichiers dans un répertoire et créer une collection en les recensant automatiquement soit parce que ce sont les seuls dans ce répertoire, soit que les noms aient une particularité permettant de les reconnaître.

Une petite pièce jointe (voir la charte) sans donnée confidentielle avec description du résultat attendu permettrait d'y voir plus clair (Aller en mode avancé / Gérer les PJ).

Un coup de pouce pour commencer :
à mettre dans un module
VB:
Option Explicit
Public ListeWorkbooks As New Collection

Sub BoucleSurRepertoire()
  Dim Rep As String, Wb As Variant
  'Application.ScreenUpdating = false ' neutralisé pour tests de mise au point
  Rep = ThisWorkbook.Path & "\" ' ou "N:\12-Gestion\" ' Répertoire à adapter
  ListeFichiers (Rep) ' Création de la collection des fichiers *.xls  du répertoire
 For Each Wb In ListeWorkbooks  ' Boucle sur les fichiers
	.
	.
	.
  code
	.
	.
	.
  Next Wb
  Application.ScreenUpdating = true
End Sub



 Sub ListeFichiers(Rep As String) 'Crée la collection des fichiers du répertoire
 Dim Nf As String, i As Long
 For i = 1 To ListeWorkbooks.Count  ' Supprime le premier objet à chaque fois avec
   ListeWorkbooks.Remove 1          ' la boucle, jusqu'à ce que la collection soit vide.
 Next i
  Nf = Dir(Rep & "*.xls")    ' appelle le premier fichier *.xls ,on peut particulariser
 Do While Nf <> ""
	If Nf <> "Fichier_Synthese.xls*" Then ListeWorkbooks.Add Item:=Nf   ' l'ajoute à la collection si <> fichier de synthèse
   Nf = Dir                       ' suivant
 Loop
End Sub
A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

S
Réponses
7
Affichages
977
Soph'
S
D
Réponses
5
Affichages
990
D
Retour