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

Extraction multiples VBA

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

C

chris1234

Guest
Bonjour,

Je suis en train de réaliser une macro pour extraire les données depuis plusieurs fichiers xls.

Je souhaite extraire les données des feuil1 de chaque fichier (qui sont dans un dossier commun) en spécifiant la colonne et la plage de ligne à prendre en compte (extraire les toutes les données présentes dans la colonne G, de la ligne 6 à 20 uniquement)

La matrice semble fonctionner dans le sens ou elle va ouvrir le fichier extrait (tous)les éléments, referme le fichier puis passe au second.

Le problème, c'est comment indiquer de copier uniquement les données de la colonne G et ensuite de les coller dans la colonne A et d'ajouter un saut de ligne entre les résultats pour éviter des compiler.

Malgré des recherches dans le forum je n'ai pas trouvé d'exemples pour m'aider.

Merci par avance de votre aide.

Voici le code réalisé


Sub Extraction()
Dim principal As ThisWorkbook
Dim repertoire As String, fichier As String
Application.ScreenUpdating = False
Set principal = ThisWorkbook
repertoire = "C:\Users\.................................."
ChDir repertoire
fichier = Dir("*.xls")
Do While fichier <> ""
If fichier <> principal.Name Then
Workbooks.Open fichier
On Error GoTo suivant
With Sheets("Feuil1")
On Error GoTo 0
On Error Resume Next
.Range ("A1:A" & .[b65536].End(xlUp).Row)
.UsedRange.EntireRow.Copy Destination:=principal.Sheets(1).[a65536].End(xlUp).Offset(1)
End With
ActiveWorkbook.Close False
End If
suivant:
If Err.Number = 9 Then MsgBox "Pas de feuille ""Feuil1"" dans le fichier " & fichier, vbExclamation: ActiveWorkbook.Close False
fichier = Dir
Loop
End Sub
 
Re : Extraction multiples VBA

Salut Chris1234,
N'ayant pas de fichier pour tester, voici un fichier qui fait (si j'ai bien compris) ce que tu souhaites sans même ouvrir les fichiers.
Extraction des données G6:G20 des feuilles1 et copie dans ton fichier en colonne A.
Voir module LireFermé et Module2
Cordialement
Lolote83
 

Pièces jointes

Re : Extraction multiples VBA

Bonjour Lolotte,

Je te remercie de ton retour réactif.
J'ai bien chargé ton fichier mais cela ne semble pas focntionner.
Pour cela je te joins les fichiers sur lesquels je travaille.

Merci de ton aide précieuse.
 

Pièces jointes

Re : Extraction multiples VBA

Parfait
La matrice marche nikel !
Tu viens de me faire gagner un an de travail 😉
Par contre, j'ai pas compris comment tu indiques dans la macro de prendre de données entre G6 et G20 ?
 
Re : Extraction multiples VBA

Salut Chris1234,
Coçntent que cela fonctionne.
Regarde dans le module LireFermé, il y a une ligne qui indique l'onglet dans lequel tu souhaites extraire les données ainsi que la plage de données (ici G6:G20)
Defait, si tu souhaites lire des données dans un fichier fermé, il faut donc rensigner :
- Le chemin ou se trouve le fichier
- Le nom du fichier
- L'onglet
- La plage de données
- et pour finir ou coller les données récupérées.
Voili voilà.
Bon courage pour la suite.
@+ Lolote83
 
- 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

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
459
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…