Bonjour à tous,
J'ai parcouru plusieurs forums. J'ai trouver des choses intéressantes mais rien n'y fait. Je souhaite donc me lancer auprès de vous.
Pour le contexte : j'ai 50 fichiers Excel (nommés par leur date) qui contiennent 3 onglets. Seul chaque premier onglet m'intéresse.
Et dans chaque onglet, seules les colonnes A et G me concernent.
Je souhaiterai un fichier excel "synthèse" qui contienne une macro qui puisse placer dans son seul premier onglet :
colonne A, colonne G (du premier fichier) , colonne de séparation, colonne A, colonne G (du deuxième fichier), colonne de séparation, colonne A, colonne G (du troisième fichier) etc.
J'ai bien trouvé une macro qui ressemblait à un début de soluce mais arrangée par mes "soins" ça ne marche pas/plus.
Sub import()
Dim nf As String
Dim strPath As String
Dim des_fichiers_un_onglet As Workbook
Dim wbkSource As Workbook
Dim wksSource As Worksheet
strPath = ActiveWorkbook.Path
Set des_fichiers_un_onglet = ActiveWorkbook
nf = Dir(strPath & "\*.xlsm")
ChDir ActiveWorkbook.Path
nfa = Dir("*.xlsx")
Do While nf <> ""
Workbooks.Open Filename:=nfa
If wksSource.Name = "Feuil1" Then
wksSource.Copy After:=des_fichiers_un_onglet.Sheets(des_fichiers_un_onglet.Sheets.Count)
End If
nfa = Dir
Loop
End Sub
Plutôt que des ChDir ou des strPath je préfèrerais si possible de bon vieux chemins. Mes fichiers à traiter seront par exemple dans C:\Users\chat\Document1\
et mon fichier final sera dans C:\Users\chat\Document2\
Cerise sur le gâteau qui fera originale par rapport aux autres requêtes proches : comme chaque fichier fait 40 Mo (vous avez bien lu) minimum,
j'ai lu sur un forum qu'il était possible de passer par "la mémoire" d'excel/ du pc sans avoir à ouvrir chaque fichier.
Heu...que pensez-vous de tout ça ? Je joins un fichier .zip (bien fichue votre messagerie) si vous voulez ; Excel 2010 utilisé.
En vous félicitant pour les conseils et solutions que vous nous apportez, je vous remercie par avance pour votre aide.
Meleto
J'ai parcouru plusieurs forums. J'ai trouver des choses intéressantes mais rien n'y fait. Je souhaite donc me lancer auprès de vous.
Pour le contexte : j'ai 50 fichiers Excel (nommés par leur date) qui contiennent 3 onglets. Seul chaque premier onglet m'intéresse.
Et dans chaque onglet, seules les colonnes A et G me concernent.
Je souhaiterai un fichier excel "synthèse" qui contienne une macro qui puisse placer dans son seul premier onglet :
colonne A, colonne G (du premier fichier) , colonne de séparation, colonne A, colonne G (du deuxième fichier), colonne de séparation, colonne A, colonne G (du troisième fichier) etc.
J'ai bien trouvé une macro qui ressemblait à un début de soluce mais arrangée par mes "soins" ça ne marche pas/plus.
Sub import()
Dim nf As String
Dim strPath As String
Dim des_fichiers_un_onglet As Workbook
Dim wbkSource As Workbook
Dim wksSource As Worksheet
strPath = ActiveWorkbook.Path
Set des_fichiers_un_onglet = ActiveWorkbook
nf = Dir(strPath & "\*.xlsm")
ChDir ActiveWorkbook.Path
nfa = Dir("*.xlsx")
Do While nf <> ""
Workbooks.Open Filename:=nfa
If wksSource.Name = "Feuil1" Then
wksSource.Copy After:=des_fichiers_un_onglet.Sheets(des_fichiers_un_onglet.Sheets.Count)
End If
nfa = Dir
Loop
End Sub
Plutôt que des ChDir ou des strPath je préfèrerais si possible de bon vieux chemins. Mes fichiers à traiter seront par exemple dans C:\Users\chat\Document1\
et mon fichier final sera dans C:\Users\chat\Document2\
Cerise sur le gâteau qui fera originale par rapport aux autres requêtes proches : comme chaque fichier fait 40 Mo (vous avez bien lu) minimum,
j'ai lu sur un forum qu'il était possible de passer par "la mémoire" d'excel/ du pc sans avoir à ouvrir chaque fichier.
Heu...que pensez-vous de tout ça ? Je joins un fichier .zip (bien fichue votre messagerie) si vous voulez ; Excel 2010 utilisé.
En vous félicitant pour les conseils et solutions que vous nous apportez, je vous remercie par avance pour votre aide.
Meleto