Fusion de plusieurs classeurs dans un classeur

BUCA2

XLDnaute Nouveau
Bonsoir,
Après avoir cherché une macro toute la journée, je suis un peu dans le cirage et je ne m'en sors pas.
Si quelqu'un peut m'aider, voici le problème :
Je dispose d'environ 200 classeurs fermés référencés comme suit, XL001 à XL200.
Chaque classeur contient une seule feuille nommée Feuil1.
Je souhaite récupérer de manière automatique les cellules A10 à F19
( série de cellules sur 10 lignes ) de chaque classeur pour les mettre dans un nouveau classeur RECAP les unes après les autres.
Cela donnerait le résultat suivant :
Sur RECAP :
Les cellules A1 à F9 contiendront les cellules A10 à F19 de XL001
Les cellules A10 à F19 contiendront les cellules A10 à F19 de XL002
Les cellules A11 à F29 contiendront les cellules A10 à F19 de XL003
et ainsi de suite jusqu'au 200 ème classeur.
Note particluière : Tous les classeurs XL sont fermés.
Quelqu'un peut il m'aider à écrire cette macro.
Je suis débutant et je n'arrive pas à trouver les bonnes syntaxes
( ex : open.workbook avec ' ou [ ou ( etc .. )
Merci de votre Aide . René
 

Bebere

XLDnaute Barbatruc
bonsoir Buca
combinaison touches Alt F11 pour aller vers vba
menu outils références Microsoft ActiveX Data Objects 2.x Library x= chiffre version exemple : 2.5

dans le code Chemin = 'E:\\' à adapter

'chemin des classeurs à adapter
Chemin = 'E:\\'
si problèmes tu nous reviens
à bientôt
[file name=PourBuca.zip size=15657]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/PourBuca.zip[/file]
 

Pièces jointes

  • PourBuca.zip
    15.3 KB · Affichages: 275

BUCA2

XLDnaute Nouveau
Ah là vraiment Bebere je te remercie.
Cela commence à bien marcher.
Un petit problème cependant :
Dans mes feuilles XLnnn il y a toujours 10 lignes mais il se peut que la dernière et l'avant dernière soient à blanc.
Donc, les données de la première feuille sont bien positionnées.
Après toutes les autres se chevauchent.
Je vais chercher de mon côté mais si tu vois d'où cela peut venir fais moi signe.
Je pense que cela doit venir du fait du test de dernière ligne à blanc dans la feuille RECAP mais comme je ne suis pas aguerri je n'ose pas trop toucher.
A+ René.
 

Bebere

XLDnaute Barbatruc
buca

remplace ton LitDatas par celui-çi
Sub LitDatas()
Dim Fich$, Arr, L As Integer, C As Integer, N2 As String
Dim X As Integer, Y As Integer
Dim Chemin As String

'chemin des classeurs à adapter
Chemin = 'E:\\'

With ThisWorkbook.Sheets('Recap')
For C = 1 To 200
If C < 10 Then
N2 = 'Xl00' & C
ElseIf C < 100 Then
N2 = 'Xl0' & C
Else: N2 = 'Xl' & C
End If
Fich$ = Chemin & N2
If .Range('A1') = '' Then
L = 0
Else: L = .Range('A65536').End(xlUp).Row
End If
'récup des données à partir de l'adresse d'une plage de cellules
' si noms de champ changer false en true
GetExternalData Fich, 'Feuil1', 'A1:F9', False, Arr
'récup des données à partir du nom d'une plage de cellules ()
' GetExternalData Fich, '', 'plagenommée', False, Arr
' .Range('A1', .Cells(UBound(Arr, 1), UBound(Arr, 2))).Offset(L, 0).Value = Arr
For X = 1 To UBound(Arr, 1) 'lignes
For Y = 1 To UBound(Arr, 2) 'colonnes
If Arr(X, Y) <> '' Then .Cells(X, Y).Offset(L, 0).Value = Arr(X, Y)
Next Y
Next X
Fich = ''
Next C
End With

End Sub

à bientôt
 

peygase

XLDnaute Nouveau
Re : Fusion de plusieurs classeurs dans un classeur

Bonjour,
Jais beau testé vos code vba je ni parviens pas jais chercher un peu partout rien ne marche
Bref si une oreille passe par la voila mon Problème
Jais crée 12 dossier (leur nom son les moi de l'année) dans chaque dossier le nombre de classeur et équivalant au jour travaillé exemple (nom des classeur)------( 0101) -----(0201)-----(0301)…exemple pour le moi de janvier). Comment récupéré les donné dans un récap
Les ligne de donné son (de c22 a n22 ainsi que 021).
La mise en forme des classeurs et identique je voudrai réunir les classeurs jour pour avoir un recap par moi et ce pour chaque moi.
Toute aide me serais utile merci d'avance
voila un debut de quelque chose

Sub LitDatas()
Dim Fich$, Arr, L As Integer, C As Integer, N2 As String
Dim X As Integer, Y As Integer
Dim Chemin As String

'chemin des classeurs à adapter
Chemin = c:\Users\peygase\Desktop\JANVIER '

With ThisWorkbook.Sheets('Recap')
For C = 1 To 31
If C < 10 Then
N2 = 'récapitulaif journalier' & C
ElseIf C < 100 Then
N2 = 'Xl0' & C
Else: N2 = 'Xl' & C
End If
Fich$ = Chemin & N2
If .Range('A1') = '' Then
L = 0
Else: L = .Range('A65536').End(xlUp).Row
End If
'récup des données à partir de l'adresse d'une plage de cellules
' si noms de champ changer false en true
GetExternalData Fich, récapitulatifjournalier ', c22:l22, False, Arr
'récup des données à partir du nom d'une plage de cellules ()
' GetExternalData Fich, '', 'plagenommée', False, Arr
' .Range('A1', .Cells(UBound(Arr, 1), UBound(Arr, 2))).Offset(L, 0).Value = Arr
For X = 1 To UBound(Arr, 1) 'lignes
For Y = 1 To UBound(Arr, 2) 'colonnes
If Arr(X, Y) <> '' Then .Cells(X, Y).Offset(L, 0).Value = Arr(X, Y)
Next Y
Next X
Fich = ''
Next C
End With


End Sub

le classeur nommé 0101 ligne de transphere (c22 a n22) sur claseur nommé recap ligne c1 a n1
le classeur nommé 0201 ligne de transphere (c22 a n22) sur classeur nommé recap ligne c2 a n2

comment faire pour que ce soit automatique
voila ce qui me cause probleme

- le balayage des fichiers dans les répertoires,
- l'ouverture des fichiers
- la recopie de valeurs
rien ne marche
merci d'avance @+
Fichiers attachés
 
Dernière édition:

shmider

XLDnaute Occasionnel
Re : Fusion de plusieurs classeurs dans un classeur

Bonjour tout le monde,
en fait j'ai que 4 fichiers et j'essai de les mettre dans un récap.
j'ai bien essaier et sans succés d adapter le code cité un peu avant, mais rien n y fait!
ma question est, comment peut on tout simplement rapatrier des données sur un meme classeur (sans copier coller)?
Merci à vous.
@+
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Voir par là :

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko