Macro, Compiler plusieurs fichiers excel

mimir77

XLDnaute Nouveau
Bonjour à tous,

Dans le cadre de mon stage je suis amener à créer un fichier Excel me permettant de compiler un certains nombres de données. Parcontre je ne maitrise pas du tout le Visual Basic.

Je dois compiler plus de 300 fichiers excels qui ont le même squelette et qui sont situés à des dossiers differents. Ce sont des matrices ou sont renseignés un certains nombres d'élements.

Je voudrais donc faire un fichier à plat sur Excel pour pouvoir ensuite l'exploiter en TCD.

Concernant mes fichiers à récuperer je voudrais qu'il me copie colle dans mon tableau à plat les données figurant dans 2 feuilles. Les données ont le même emplacement pour chaque fichier.
Je voudrais aussi que ma Macro puisse traiter d'un coup tout les fichiers à importer pour éviter de perdre du temps à la prochaine compilation car je recois régulièrement des fichiers à compiler et je perd patience à copier coller les données manuellement.

Je vous en serais très reconnaissant si vous pouvez m'aider. Merci à tous....
 

ConsultantJP

XLDnaute Occasionnel
Re : Macro, Compiler plusieurs fichiers excel

Bonjour,

Sait tu le nombre de ligne total de tes 300 tableaux ? excel ne peux en gérer au maximum 65536 lignes.

C'est une opération ponctuelle ou qui sera récurrente ?

Tu as 300 fichiers qui sont dans 300 répertoires différents ? ou plutot dans 30 fichiers par répertoire soit 10 répertoire ?

Avec un peu plus de détail , je suis sur que tu aura plus de réponse.
 

mimir77

XLDnaute Nouveau
Re : Macro, Compiler plusieurs fichiers excel

Bonjour,

Sait tu le nombre de ligne total de tes 300 tableaux ? excel ne peux en gérer au maximum 65536 lignes.

C'est une opération ponctuelle ou qui sera récurrente ?

Tu as 300 fichiers qui sont dans 300 répertoires différents ? ou plutot dans 30 fichiers par répertoire soit 10 répertoire ?

Avec un peu plus de détail , je suis sur que tu aura plus de réponse.

Désolé pour le trop peu d'informations fournit.

J'ai un peu plus de 300 fichiers et régulièrement c'est à dire 1 fois par semaine je recois de nouveaux fichiers qui viendront alimenter mon fichier récapitulatif. Une sorte de mise à jour de ma base.

Chaque fichier comprend 2 feuilles qui m'interessent ou figure une matrice par feuille. J'aimerais par exemple prendre 10 infos dans la premiere feuille (Cellule L5C10, Cellule L8C6, Etc....).

Les 300 fichiers sont disposés de la même manière. Je peux essayer de faire un fichier matrice exemple car les matrices dont je dispose sont des données très confidentielles.
 

vbacrumble

XLDnaute Accro
Re : Macro, Compiler plusieurs fichiers excel

Re



Tu peux créer un fichier fictif avec des données bidons


Voici une petite macro qui te facilitera la tache.
Code:
Option Explicit

Sub makealeadata()
Dim NC&, NL&, plg As Range
NC = _
    InputBox("Nombre de colonnes de la plage de cellules à créer ?", _
    "Nombre de colonnes?", 10)
NL = _
    InputBox("Nombre de lignes de la plage de cellules à créer ?", _
    "Nombre de lignes?", 10)
On Error Resume Next
Set plg = _
    Range(Cells(1, 1), Cells(NL, NC))
If (MsgBox("Adresse de la plage crée : " & plg.Address(0, 0), vbOKOnly, "Infos")) = 1 Then
With plg
    .FormulaArray = "=ROW()*COLUMN()"
    .Value = .Value
End With
End If
End Sub
 

mimir77

XLDnaute Nouveau
Re : Macro, Compiler plusieurs fichiers excel

Voila un fichier exemple Matrice et le fichier Recap ou se trouve une ébauche de Macro. J'aimerais l'adapter à mon cas particulier.
NB: Les cellules grisées numérotées sont les données à exporter vers le fichier Recap. Il doit figurer une ligne avec en premier le chiffre 1 ainsi de suite jusqu'au dernier numéro.


Je vous remercie.
 

Pièces jointes

  • RécupFichierXLS.xls
    39 KB · Affichages: 292
  • RécupFichierXLS.xls
    39 KB · Affichages: 307
  • RécupFichierXLS.xls
    39 KB · Affichages: 305
  • matricem.xls
    31.5 KB · Affichages: 207

vbacrumble

XLDnaute Accro
Re : Macro, Compiler plusieurs fichiers excel

Re


Je te laisse ce code comme point de départ

(teste cette macro dans le classeur matricem.xls et observe le résultat en Feuil3 )

Code:
Option Explicit

Sub recap()
Dim adressesF, adressesM, i As Byte, j As Byte
adressesM = _
        Array("Q6", "Q7", "Q8", "Q9", "Q17", _
        "Q22", "Q24", "Q26", "S6", "S7", _
        "S8", "S9", "S17", "S22", "S24", "S26")
adressesF = _
        Array("E2", "H7", "E19", "E21", "E23", _
        "E25", "E29", "E31", "E33", "E51", _
        "E53", "M3", "M5", "M45", _
        "M47", "M49", "M51", "M55")
        
For i = LBound(adressesF) To UBound(adressesF)
Sheets("Feuil3").[A65536].End(xlUp).Offset(, i) = _
Sheets("FICHE").Range(adressesF(i))
Next
For j = LBound(adressesM) To UBound(adressesM)
Sheets("Feuil3").[A65536].End(xlUp).Offset(, j + 18) = _
Sheets("MATRICE").Range(adressesM(j))
Next
End Sub

PS: par manque de temps, je n'ai pas pu aller plus loin.
Mais je suis ce fil et repasserai plus tard.
 
Dernière édition:

mimir77

XLDnaute Nouveau
Re : Macro, Compiler plusieurs fichiers excel

Merci beaucoup vbacrumble. Cette macro marche très bien dans mon fichier Matrice mais maintenant j'aimerais quelle s'execute à partir du fichier Recapfichierxls pour un soucis de commodités. Je veux donc que cette macro copie à la ligne les fichiers suivant mais c'est vraiment ce que tu m'as donné dans l'esprit.

Je veux juste l'executer à partir de mon fichier RecapFichierXLS qui lui prend tout les fichier excel sans se soucier du nom du fichier.

Je pense que c'est la dernière étape pour que mon fichier soit finalisé. :D

Merci encore pour ton aide.
Si d'autres ont des solutions pour fusionner la macro de vbacrumble avec celle que j'ai joint en fichier plus haut je suis preneur. Mercii
 

vbacrumble

XLDnaute Accro
Re : Macro, Compiler plusieurs fichiers excel

Re


J'ai la solution mais pas le temps de finaliser tout de suite.

D'où mon incitation à te rendre adepte du D.I.Y ;)

en postant le code VBA précédent.


Si jamais personne ne prends la suite

Je reviendrai d'ici peu
 

vbacrumble

XLDnaute Accro
Re : Macro, Compiler plusieurs fichiers excel

Re

Finalement, j'ai pris le temps

Code:
Sub compilationClasseurs()
Dim W As Workbook, WL As Workbook, DCel As Range, i As Long
Dim adressesF, adressesM, k As Byte, l As Byte
adressesM = _
        Array("Q6", "Q7", "Q8", "Q9", "Q17", _
        "Q22", "Q24", "Q26", "S6", "S7", _
        "S8", "S9", "S17", "S22", "S24", "S26")
adressesF = _
        Array("E2", "H7", "E19", "E21", "E23", _
        "E25", "E29", "E31", "E33", "E51", _
        "E53", "M3", "M5", "M45", _
        "M47", "M49", "M51", "M55")

Application.ScreenUpdating = False
   
On Error Resume Next

Set W = ThisWorkbook
With Application.FileSearch
    .NewSearch
    .LookIn = "C:\Tempi" [COLOR="Green"]'ADAPTER LE CHEMIN[/COLOR]
    .FileType = msoFileTypeExcelWorkbooks
 
If .Execute > 0 Then
    For i = 1 To .FoundFiles.Count
        Set WL = Workbooks.Open(.FoundFiles(i), 0)
        Set DCel = W.Sheets("Compilation_DONNEES").[A65536].End(xlUp).Offset(1, 0)
        For k = LBound(adressesF) To UBound(adressesF)
            DCel.Offset(, k) = WL.Sheets("FICHE").Range(adressesF(k))
        Next
        For l = LBound(adressesM) To UBound(adressesM)
            DCel.Offset(, l + 18) = WL.Sheets("MATRICE").Range(adressesM(l))
        Next
        WL.Close False
    Next i
End If
End With

On Error GoTo 0
Application.ScreenUpdating = True

Set W = Nothing
Set WL = Nothing
Set DCel = Nothing
End Sub

EDITION: je te conseille de jeter un oeil également sur ce fichier de kiki29
Lien supprimé
 
Dernière édition:

mimir77

XLDnaute Nouveau
Re : Macro, Compiler plusieurs fichiers excel

Bonjour à tous, Bonjour à toi vbacrumble,

Je viens au nouvelles. Alors j'ai testé la macro et j'ai remplacé seulement le chemin pour mettre celui de mon dossier ou ce trouvait 4 matrices pour tester.

Lors de mon test je n'avais aucune ligne. Je l'ai testé plusieurs fois en ne mettant pas mon fichier recap dans le même dossier mais sans succès. Je ne m'y connais pas en VBA sinon j'aurais regardé ou est ce que ca n'allais pas.

Lors de l'execution de la macro je tiens à préciser que mes fichiers s'ouvrent bien un par un.

EDIT : Dans la macro ou renseigne t on les feuilles à récupérer : FICHE et MATRICE ?

Merci encore
Cordialement
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 656
Messages
2 111 613
Membres
111 225
dernier inscrit
arnaud3110