![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: octobre 2005
Messages: 26
|
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é |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Accro
Date d'inscription: mai 2005
Localisation: Tongres
Version Excel : Excel 2000 (PC)
Messages: 1 827
|
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] |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: octobre 2005
Messages: 26
|
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é. |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Accro
Date d'inscription: mai 2005
Localisation: Tongres
Version Excel : Excel 2000 (PC)
Messages: 1 827
|
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 |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: octobre 2005
Messages: 26
|
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é. |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|