Import automatique de données entre classeurs

Jérémy86

XLDnaute Nouveau
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.

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.
 
G

Guest

Guest
Re : Import automatique de données entre classeurs

Bonjour Jérémy,

remplacer tous les Sheets("Feuil1"). par des Sheets(1).

Sheest(1) prendra la première feuille à gauche lorsqu'on ouvre le classeur.

A bientôt
 

Jérémy86

XLDnaute Nouveau
Re : Import automatique de données entre classeurs

Bonjour,

Je viens de tester :

Code:
Sheets("Liste").Select
                Workbooks.Open Filename:=ActiveWorkbook.Path & "\" & Range("A" & i).Value
                    Sheets(1).Select
                        Sheets(1).Copy After:=Workbooks("FichierCible.xls").Sheets(2)

Cela me reprend bien la première feuille de chaque classeur que j'ai mentionné manuellement dans ma liste.

Par contre maintenant, je vais me pencher pour pouvoir récupérer les noms des feuilles automatiquement avec ça :

Code:
Dim ws As Worksheet ' ws variable qui représente une feuille
Set ws = Worksheets("Feuil1") 'variable ayant pour valeur
ws.Range("A" & i) = ws.Name 'le nom de cette feuille dans la cellule A1 de cette feuille

Enfin, je vois si je peux y arriver seul.

Merci tout de même.
 

Discussions similaires

Statistiques des forums

Discussions
312 699
Messages
2 091 113
Membres
104 768
dernier inscrit
rom1cg