Regrouper feuilles de notre choix depuis plusieurs fichiers vers un seul fichier
#1
Débutant XLPages

Inscription: 05/12/2010

Messages: 14

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007,2010
Posté le : 05-12-2010 15h10
Bonjour à tous,

je sollicite votre aide car je bute sur un problème et j'aimerais savoir s'il existe une solution.

Besoin : regrouper dans un unique fichier chaque semaine certains onglets portant toujours le même nom, en provenance de plusieurs fichiers portants des noms différents.

Où j'en suis : j'arrive à ouvrir un répertoire dans lequel sont enregistrés les fichiers contenant les onglets dont j'ai besoin, mais je n'arrive à importer, soit qu'un onglet, soit tous les onglets, mais pas que les onglets que je souhaite.

Question : Est il possible de pouvoir déterminer dans le code en dur ou dynamiquement les onglets souhaités sachant que les noms des fichiers changent ?

Ci-joint le fichier qui me sert à combiner les premiers onglets de fichiers contenus dans un répertoire de mon choix.

Merci d'avance de votre aide.

Fred



Pièce jointe:
xls Combiner.xls   [ Taille: 25.50 Ko - Téléchargements: 1097 ]
Hors Ligne
Rapport   Haut 

Re: Regrouper feuilles de notre choix depuis plusieurs fichiers vers un seul fichier
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 05-12-2010 15h50
Bonjour manwe24, bienvenue sur XLpages.com

Citation :
manwe24 a écrit : 

je sollicite votre aide car je bute sur un problème et j'aimerais savoir s'il existe une solution.

Besoin : regrouper dans un unique fichier chaque semaine certains onglets portant toujours le même nom, en provenance de plusieurs fichiers portants des noms différents.

Où j'en suis : j'arrive à ouvrir un répertoire dans lequel sont enregistrés les fichiers contenant les onglets dont j'ai besoin, mais je n'arrive à importer, soit qu'un onglet, soit tous les onglets, mais pas que les onglets que je souhaite.

Question : Est il possible de pouvoir déterminer dans le code en dur ou dynamiquement les onglets souhaités sachant que les noms des fichiers changent ?

Sauf erreur, ton code récupère le 1er onglet de chaque classeur contenu dans le répertoire cible (ce qui est déjà une bonne chose au vu de ta question  ) et le nom variable des fichiers xls n'est visiblement plus un problème pour toi.

Que veux-tu faire exactement ?
Comment est identifié l'onglet à récupérer dans chacun des classeurs ? S'agit-il de récupérer uniquement un onglet en fonction de son nom ?

Détaille-nous un peu plus le problème que tu rencontres STP et sur quoi tu butes exactement...

Cordialement,


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Regrouper feuilles de notre choix depuis plusieurs fichiers vers un seul fichier
#3
Débutant XLPages

Inscription: 05/12/2010

Messages: 14

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007,2010
Posté le : 05-12-2010 16h06
Merci de ton intérêt.

Je vais donc détailler un peu plus mon problème.

Je dois réunir certains onglets de 4 fichiers de sources différentes. Aujourd'hui j'arrive correctement à récupérer l'onglet N°1 (par exemple), mais les onglets que j'aurais à récupérer ne se trouvent pas forcément sur les fichiers en position 1, et par ailleurs, sur un des fichiers il y a 2 onglets à récupérer...

Je pourrais très bien demander aux 4 créateurs et utilisateurs de ces fichiers, de mettre les informations importantes uniquement dans l'onglet N°1, et pour celui qui a deux onglets, de créer deux fichiers, mais j'aimerais trouver une solution.

Donc est-il envisageable de programmer un code du genre : récupérer les onglets se nommant :"recap", "bilan", "paris", ... dans les fichiers trouvés... ? (je n'y arrive pas)

OU toute autre solution.

Mon problème global (et j'expose précédemment la seule solution que j'ai trouvé) étant de faire un TCD de 6 onglets de 5 fichiers différents (dont les noms sont variables).

En espérant avoir été le plus clair possible.
Hors Ligne
Rapport   Haut 

Re: Regrouper feuilles de notre choix depuis plusieurs fichiers vers un seul fichier
#4
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 05-12-2010 22h10
Re,

Ton explication n'est pas franchement précise.

Cela dit, tu trouveras en pièce jointe une interprétation de ce que j'ai cru comprendre...

J'ai échangé ton code, par celui-ci (dans le Module1) :
Option Explicit

Sub recuperation()
Dim F As Worksheet
Dim Rep As String       ' répertoire à traiter
Dim Classeur As String, Onglet As String
Dim i As Byte

    Rep = mDF_ChoixDossier("Choisissez le répertoire à regrouper")
    If Rep = "" Then Exit Sub
    Classeur = Dir(Rep & "\*.xls")
   
    Do While Classeur <> Empty
        With Workbooks.Open(Rep & "" & Classeur)
            For i = 1 To 3  'A adapter
                Onglet = Choose(i, "recap", "bilan", "paris")   'A adapter
                On Error Resume Next
                Set F = .Sheets(Onglet)
                On Error GoTo 0
                If Not F Is Nothing Then
                    F.Copy After:=ThisWorkbook.Worksheets(1)
                    Set F = Nothing
                End If
            Next i
            .Close False
        End With
        Classeur = Dir
    Loop
End Sub

Function mDF_ChoixDossier(Titre As String) As String
'myDearFriend!  -  www.mdf-xlpages.com
Dim objFolder As Object
Dim Chemin As String
    Set objFolder = CreateObject("Shell.Application").BrowseForFolder(0, Titre, 513, 0)
    If objFolder Is Nothing Then Exit Function
    On Error Resume Next
    Chemin = objFolder.Items.Item.Path & ""
    On Error GoTo 0
    mDF_ChoixDossier = IIf(Left(Chemin, 1) = ":", "", Chemin)
End Function
Chaque onglet intitulé "recap", "bilan" ou "paris" devrait donc être récupéré pour chaque classeur situé dans le répertoire cible.

J'en ai également profité pour simplifier un peu le code que tu utilises pour le choix du répertoire (éviter au maximum l'utilisation des Api Windows lorsque c'est possible, me parait une bonne idée).

Cordialement,

Pièce jointe:
zip PourManwe24.zip   [ Taille: 12.42 Ko - Téléchargements: 1209 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Regrouper feuilles de notre choix depuis plusieurs fichiers vers un seul fichier
#5
Débutant XLPages

Inscription: 05/12/2010

Messages: 14

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007,2010
Posté le : 06-12-2010 08h41
Bonjour,

Ton interprétation est parfaite ! C'est exactement ce que je souhaite. Désolé de ne pas avoir été très explicite dès le départ.

J'ai testé ton code sur 7 fichiers à récupérer et plusieurs feuilles par classeur (10 au total), et il n'y a aucun problème. Mon souci est donc résolu.

Merci infiniment de ton aide, ainsi que de ta simplification du code.

Fred


Hors Ligne
Rapport   Haut 

Re: Regrouper feuilles de notre choix depuis plusieurs fichiers vers un seul fichier
#6
Débutant XLPages

Inscription: 04/02/2011
De Picardie, Oise

Messages: 1

Système d'exploitation:
PC
Version Excel utilisée:
97,2002
Posté le : 04-02-2011 16h42
bonjour,
j'étais a la recherche d'une solution équivalente à celle que recherchait manwe24.

j'ai testé la solution proposée par mydearfriend tout bonnement excellente !!!
j'ai fait un mixage des deux solutions et ça marche impeccablement.
J'ai juste adapté cette solution pour regrouper des fichiers xml sans avoir besoin de rechercher un onglet précis par son nom.( j'ai supprimé cet aspect de mon module)

Par contre, je sollicite la communauté afin de savoir si : au lieu de scanner un seul répertoire , il était possible de scanner un répertoire racine et , de fait, ses sous répertoires ?
bien sur, en passant en revue tous les sous répertoires, le but est de récupérer les fichiers xml et de les agglomérer dans mon classeur excel.
par avance , je remercie tous ceux qui auront la générosité de m'aider
cordialement,


Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes