Bonjour à toutes et à tous,
J'ai dans un classeur qui est ma matrice 2 feuilles :
- la première me sert à lister les classeurs dont je veux exporter des données, appelée "Liste"
- la deuxième est la réelle feuille matrice, avec un tableau avec des colonnes et leurs titres respectifs, appelée "FeuilleSynthèse".
Avec ce code dont je me suis beaucoup inspiré, il me récupère très bien les données de la première feuille de chaque classeur étant dans le même dossier que mon fichier matrice, qui est mentionné en "Liste". Mais cette première feuille de chaque classeur doit pour cela s'appeler "Feuil1", sinon il ne la connaît pas.
Le problème est que je voudrais automatiser plus la chose, c'est à dire que mon menu "Liste" soit alimenter en automatique par la première feuille de chaque classeur se trouvant dans le dossier.
Autre contrainte, les classeurs dont les données sont à exporter sont générés en automatique, donc leur nom est de la forme 30_07_2008_16_16_53.xls (jour_mois_année_heure_minute_seconde), et que leur première feuille possède le même nom.
Ces fichiers sont générés en automatique par un organisme bancaire, donc je ne peux les modifier.
J'espère me faire comprendre, et merci d'avance pour vos réponses.
J'ai dans un classeur qui est ma matrice 2 feuilles :
- la première me sert à lister les classeurs dont je veux exporter des données, appelée "Liste"
- la deuxième est la réelle feuille matrice, avec un tableau avec des colonnes et leurs titres respectifs, appelée "FeuilleSynthèse".
Avec ce code dont je me suis beaucoup inspiré, il me récupère très bien les données de la première feuille de chaque classeur étant dans le même dossier que mon fichier matrice, qui est mentionné en "Liste". Mais cette première feuille de chaque classeur doit pour cela s'appeler "Feuil1", sinon il ne la connaît pas.
Le problème est que je voudrais automatiser plus la chose, c'est à dire que mon menu "Liste" soit alimenter en automatique par la première feuille de chaque classeur se trouvant dans le dossier.
Autre contrainte, les classeurs dont les données sont à exporter sont générés en automatique, donc leur nom est de la forme 30_07_2008_16_16_53.xls (jour_mois_année_heure_minute_seconde), et que leur première feuille possède le même nom.
Ces fichiers sont générés en automatique par un organisme bancaire, donc je ne peux les modifier.
Code:
Private Sub CommandButton1_Click()
Dim r
r = Range("A65000").End(xlUp).Row
Dim chemin
chemin = ActiveWorkbook.Path
' Boucle pour copier le contenu de la première feuille de chaque classeur
For i = 1 To r
Application.DisplayAlerts = False
ChDir ActiveWorkbook.Path
Sheets("Liste").Select
Workbooks.Open Filename:=ActiveWorkbook.Path & "\" & Range("A" & i).Value
Sheets("Feuil1").Select
Sheets("Feuil1").Copy After:=Workbooks("FichierCible.xls").Sheets(2)
Windows("FichierCible.xls").Activate
ActiveSheet.Range("A2:AB20").Select
Selection.Copy
Sheets("FeuilleSynthèse").Select
Sheets("FeuilleSynthèse").Range("A65000").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Windows("FichierCible.xls").Activate
Windows(Range("A" & i) & ".xls").Activate
ActiveWindow.Close SaveChanges:=False
' Se positionner sur la feuille de synthèse une fois la macro exécutée
Sheets("FeuilleSynthèse").Select
Application.DisplayAlerts = True
Next i
' Suppression des feuilles temporaires créées
' Suppression de la confirmation de suppression des feuilles
' Suppression automatique des feuilles à partir de la 3ième
Application.DisplayAlerts = False
For i = Sheets.Count To 3 Step -1
Sheets(i).Delete
Next i
Application.DisplayAlerts = True
End Sub
J'espère me faire comprendre, et merci d'avance pour vos réponses.