Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 14/11/2005, 19h12   #1 (permalink)
XLDnaute Nouveau
 
Date d'inscription: octobre 2005
Messages: 26
Par défaut Fusion de plusieurs classeurs dans un classeur

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é
BUCA2 est déconnecté   Réponse avec citation
ANNONCES
Vieux 14/11/2005, 21h35   #2 (permalink)
XLDnaute Accro
 
Date d'inscription: mai 2005
Localisation: Tongres
Version Excel : Excel 2000 (PC)
Messages: 1 827
Par défaut Re:Fusion de plusieurs classeurs dans un classeur

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]
Fichiers attachés
Type de fichier : zip PourBuca.zip (15,3 Ko, 55 affichages)
Bebere est déconnecté   Réponse avec citation
Vieux 14/11/2005, 21h44   #3 (permalink)
XLDnaute Nouveau
 
Date d'inscription: octobre 2005
Messages: 26
Par défaut Re:Fusion de plusieurs classeurs dans un classeur

Merci pour ta réponse.
Je teste et je reviens te donner la réponse.
BUCA2 est déconnecté   Réponse avec citation
Vieux 14/11/2005, 22h18   #4 (permalink)
XLDnaute Nouveau
 
Date d'inscription: octobre 2005
Messages: 26
Par défaut Re:Fusion de plusieurs classeurs dans un classeur

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é.
BUCA2 est déconnecté   Réponse avec citation
Vieux 15/11/2005, 00h06   #5 (permalink)
XLDnaute Accro
 
Date d'inscription: mai 2005
Localisation: Tongres
Version Excel : Excel 2000 (PC)
Messages: 1 827
Par défaut Re:Fusion de plusieurs classeurs dans un classeur

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
Bebere est déconnecté   Réponse avec citation
Vieux 15/11/2005, 13h12   #6 (permalink)
XLDnaute Nouveau
 
Date d'inscription: octobre 2005
Messages: 26
Par défaut Re:Fusion de plusieurs classeurs dans un classeur

Super et Bravo Bebere.
Cela marche impeccable.
Maintenant je vais essayer de bien comprendre ligne à ligne toutes les fonctions que je ne connaissais pas ( notamment la fonction UBOUND ).
Merci et à bientôt.
René.
BUCA2 est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 18h34.


(C) 2006 Excel Downloads