Macro - extraire des données dans plusieurs pages vers une feuille excel
borisparis
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai une macro qui permet, quand j'ouvre plusieurs fichiers excel d'extraire des données qui sont toujours placées au même endroit (colonne ligne) pour les disposer dans une autre feuille excel.
Mon problème : je voudrais faire cette opération pour plusieurs centaines de fichiers. Et mon ordinateur ne supporte pas que j'ouvre plus de 20 fichiers à la fois...
Est-il possible de faire ouvrir, par la macro, automatiquement chaque fichier, d'extraire la donnée et de le refermer ?
Ci-dessous la macro actuelle.
Merci pour votre aide
Sub Code()
Dim fichier_recap As Workbook, wb As Workbook, Ligne As Long
Set fichier_recap = Workbooks.Add
fichier_recap.SaveAs ("Récapitulatif.xls")
With fichier_recap
.Sheets(1).Range("A1").Value = "Fichier"
.Sheets(1).Range("B1").Value = "NOM Prénom"
.Sheets(1).Range("C1").Value = "DDN"
.Sheets(1).Range("D1").Value = "Sexe"
.Sheets(1).Range("E1").Value = "Poids"
.Sheets(1).Range("F1").Value = "Taille (cm)"
.Sheets(1).Range("G1").Value = "SC"
.Sheets(1).Range("H1").Value = "Clairance"
.Sheets(1).Range("I1").Value = "Clairance / Inuline"
.Sheets(1).Range("J1").Value = "Clairance normalisée"
.Sheets(1).Range("K1").Value = "Date de l'examen"
End With
Ligne = 1
For Each wb In Workbooks
If wb.Name <> "Récapitulatif.xls" Then
Ligne = Ligne + 1
With fichier_recap.Sheets(1)
.Cells(Ligne, 1).Value = wb.Name
.Cells(Ligne, 2).Value = wb.Sheets(1).Range("B10").Value
.Cells(Ligne, 3).Value = wb.Sheets(1).Range("D10").Value
.Cells(Ligne, 4).Value = wb.Sheets(1).Range("F10").Value
.Cells(Ligne, 5).Value = wb.Sheets(1).Range("B12").Value
.Cells(Ligne, 6).Value = wb.Sheets(1).Range("D12").Value
.Cells(Ligne, 7).Value = wb.Sheets(1).Range("F12").Value
.Cells(Ligne, 8).Value = wb.Sheets(1).Range("B41").Value
.Cells(Ligne, 9).Value = wb.Sheets(1).Range("C43").Value
.Cells(Ligne, 10).Value = wb.Sheets(1).Range("C45").Value
.Cells(Ligne, 11).Value = wb.Sheets(1).Range("E3").Value
End With
End If
Next wb
End Sub
J'ai une macro qui permet, quand j'ouvre plusieurs fichiers excel d'extraire des données qui sont toujours placées au même endroit (colonne ligne) pour les disposer dans une autre feuille excel.
Mon problème : je voudrais faire cette opération pour plusieurs centaines de fichiers. Et mon ordinateur ne supporte pas que j'ouvre plus de 20 fichiers à la fois...
Est-il possible de faire ouvrir, par la macro, automatiquement chaque fichier, d'extraire la donnée et de le refermer ?
Ci-dessous la macro actuelle.
Merci pour votre aide
Sub Code()
Dim fichier_recap As Workbook, wb As Workbook, Ligne As Long
Set fichier_recap = Workbooks.Add
fichier_recap.SaveAs ("Récapitulatif.xls")
With fichier_recap
.Sheets(1).Range("A1").Value = "Fichier"
.Sheets(1).Range("B1").Value = "NOM Prénom"
.Sheets(1).Range("C1").Value = "DDN"
.Sheets(1).Range("D1").Value = "Sexe"
.Sheets(1).Range("E1").Value = "Poids"
.Sheets(1).Range("F1").Value = "Taille (cm)"
.Sheets(1).Range("G1").Value = "SC"
.Sheets(1).Range("H1").Value = "Clairance"
.Sheets(1).Range("I1").Value = "Clairance / Inuline"
.Sheets(1).Range("J1").Value = "Clairance normalisée"
.Sheets(1).Range("K1").Value = "Date de l'examen"
End With
Ligne = 1
For Each wb In Workbooks
If wb.Name <> "Récapitulatif.xls" Then
Ligne = Ligne + 1
With fichier_recap.Sheets(1)
.Cells(Ligne, 1).Value = wb.Name
.Cells(Ligne, 2).Value = wb.Sheets(1).Range("B10").Value
.Cells(Ligne, 3).Value = wb.Sheets(1).Range("D10").Value
.Cells(Ligne, 4).Value = wb.Sheets(1).Range("F10").Value
.Cells(Ligne, 5).Value = wb.Sheets(1).Range("B12").Value
.Cells(Ligne, 6).Value = wb.Sheets(1).Range("D12").Value
.Cells(Ligne, 7).Value = wb.Sheets(1).Range("F12").Value
.Cells(Ligne, 8).Value = wb.Sheets(1).Range("B41").Value
.Cells(Ligne, 9).Value = wb.Sheets(1).Range("C43").Value
.Cells(Ligne, 10).Value = wb.Sheets(1).Range("C45").Value
.Cells(Ligne, 11).Value = wb.Sheets(1).Range("E3").Value
End With
End If
Next wb
End Sub
A voir également:
- Macro - extraire des données dans plusieurs pages vers une feuille excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Extraire une video youtube - Guide
- Trier des données excel - Guide
- Extraire le son d'une vidéo - Guide
- Liste déroulante excel - Guide
8 réponses
Bonjour,
C'est possible mais avec + de 100 fichiers, on peut interroger ceux ci sans les ouvrir question rapidité mais c'est un boulot de programmation de plusieurs heures...
Je n'ai pas les dernières versions XL (xl2007) donc utiliser powerquery est pour moi de la science fiction!
a toi de dire OK ou pas OK
C'est possible mais avec + de 100 fichiers, on peut interroger ceux ci sans les ouvrir question rapidité mais c'est un boulot de programmation de plusieurs heures...
Je n'ai pas les dernières versions XL (xl2007) donc utiliser powerquery est pour moi de la science fiction!
a toi de dire OK ou pas OK
Les classeurs que tu dois ouvrir sont ils stockés dans un seul et même endroit ?
J'ai travaillé sur une macro similaire où j'avais besoin d'ouvrir une centaine de classeurs et d'avoir un récap sur un classeur final, le plus important pour moi était d'avoir un dossier où je centralisais tout mes classeurs afin que la macro parcours d'elle même ce dossier en y ouvrant chaque fichier d'extension ".xlsx"
J'ai travaillé sur une macro similaire où j'avais besoin d'ouvrir une centaine de classeurs et d'avoir un récap sur un classeur final, le plus important pour moi était d'avoir un dossier où je centralisais tout mes classeurs afin que la macro parcours d'elle même ce dossier en y ouvrant chaque fichier d'extension ".xlsx"
Bonjour à tous
Est-il possible de faire ouvrir, par la macro, automatiquement chaque fichier, d'extraire la donnée et de le refermer ?
Un exemple à adapter en attendant la solution de michel (amical salut au passage) qui fera la même chose sans ouvrir les fichiers
https://www.cjoint.com/c/KFfjZXb7zlB
Cdlmnt
Est-il possible de faire ouvrir, par la macro, automatiquement chaque fichier, d'extraire la donnée et de le refermer ?
Un exemple à adapter en attendant la solution de michel (amical salut au passage) qui fera la même chose sans ouvrir les fichiers
https://www.cjoint.com/c/KFfjZXb7zlB
Cdlmnt
Merci++
Etant vraiment ignorant je ne sais pas comment rattacher cette macro avec mon programme qui extrait les infos dans le fichier ouvert et le met dans la page excel ou se trouve la macro..
Si tu peux me guider...
Merci++
Etant vraiment ignorant je ne sais pas comment rattacher cette macro avec mon programme qui extrait les infos dans le fichier ouvert et le met dans la page excel ou se trouve la macro..
Si tu peux me guider...
Merci++
re,
bonjour Ozone
Salut ccm81, ca va ?
un exemple sans ouvrir les fichiers source en XL2000
https://mon-partage.fr/f/UKVIasWg/
bonjour Ozone
Salut ccm81, ca va ?
un exemple sans ouvrir les fichiers source en XL2000
https://mon-partage.fr/f/UKVIasWg/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Etant vraiment ignorant je ne sais pas comment rattacher cette macro avec mon programme qui extrait les infos dans le fichier ouvert et le met dans la page excel ou se trouve la macro..