Récupérer toutes les feuilles d'un fichier excel à distance (sans recordset)

  • Initiateur de la discussion Initiateur de la discussion creal69360
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

creal69360

XLDnaute Junior
Bonjour,

Je voudrais savoir si c'est possible depuis un fichier excel de récupérer toutes les feuilles d'un autre fichier. J'arrive à récupérer une feuille en précisant son nom avec ce code:

ThisWorkbook.Worksheets(NomOnglet).Cells.ClearContents ' On nettoie la feuille qui va contenir les données
Workbooks.Open Filename:=chemin d'accès fichier On ouvre le fichier source
' On copie les données du fichier source
Workbooks(nom_fichier).Worksheets(feuille à récupérer).Cells.Copy _
ThisWorkbook.Worksheets(NomOnglet destination).Range("A1") ' On colle les données
Workbooks(nom_fichier).Close False ' On ferme le fichier source
End Sub

Mais voila moi je voudrais pouvoir importer toutes les feuilles de mon fichier source en les nommant de la même façon .
Quelqu'un sait si c'est possible?
Merci de m'aider.
 
Re : Récupérer toutes les feuilles d'un fichier excel à distance (sans recordset)

Bonsoir creal9360,

Pourquoi copier les cellules plutôt que les feuilles
Si tu copies les feuilles, tu auras une réplique exacte de la feuille (sauf peut-être s'il y a des textes très longs dans les cellules, limite de la copie de feuille jusqu'en XL2003)
Tu ouvres ton fichier Source
tu copies tes feuilles une à une dans le fichier destination
tu fermes ton fichier source, pas loin de ce que tu avais fait
genre

Code:
Dim SourceWkb as WorkBook, DestWkb as Workbook, Ws As Worksheet
Set DestWkb = Thisworkbook
Set Sourcewkb = Workbooks.Open (Filename:=chemin d'accès fichier) 'On ouvre le fichier source
' On copie les feuilles du fichier source
    For Each Ws In SourceWkb.Worksheets
        Ws.Copy after:=DestWkb.Worksheets(DestWkb.Worksheets.Count)
    Next
sourcewkb.close false
 
Re : Récupérer toutes les feuilles d'un fichier excel à distance (sans recordset)

Voila c'est ce que je voudrais faire, récupérer les données de toutes les feuilles d'un fichier externe et les mettre à la suite dans le fichier dans une feuille qui contiendrait alors toutes les données.
Est ce que c'est possible?
Merci
 
Re : Récupérer toutes les feuilles d'un fichier excel à distance (sans recordset)

Re,

Oui, pas testé mais je pense que ça doit donner ça

Code:
Dim SourceWkb as WorkBook, DestWks as Worksheet, Ws As Worksheet, Ligne as Long
Set DestWks = Thisworkbook.worksheets("FeuilDest") 'La feuille destination est considérée vide au départ
Ligne = 1
Set Sourcewkb = Workbooks.Open (Filename:=chemin d'accès fichier) 'On ouvre le fichier source
' On copie les données des feuilles du fichier source
    For Each Ws In SourceWkb.Worksheets
        Ws.usedrange.Copy destwks.range("A" & ligne)
        Ligne = destwks.usedrange.rows.count + 1
    Next
sourcewkb.close false
 
Re : Récupérer toutes les feuilles d'un fichier excel à distance (sans recordset)

C'est parfait merci.

Par hasard si je voulais enlever 1 ou plusieurs feuilles de l'importation il serait possible de faire quelququechose?
exemple: dans mon fichier il existe 2 feuilles dont je veux pas récupérer les données qu'est ce qu'il faudrait que je fasse? Si c'est possible bien sur.
merci
 
Re : Récupérer toutes les feuilles d'un fichier excel à distance (sans recordset)

Re,

Si tu connais leurs noms, il faut que tu fasses un test dans le "For each Ws in .." sur Ws.Name, pour ne pas réaliser les actions de la boucle dans ce cas 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
938
Retour