Rapatrier des feuilles de divers fichiers à partir Usf Liste

Bonjour,

je cherche à rappatrier dans un fichier récap les feuilles de différents fichiers de Suivi (tous les fichiers ont des feuilles qui portent le même nom).

J'ai constituer un USF avec l'ensemble des noms des feuilles.

je voudrais, quand on sélectionne une feuille (ou plusieurs) récupérer l'information et concaténer les tableaux de ces feuilles dont le nom a été sélectionné dans la userform, pour l'ensemble des fichiers.

Ex: j'ai sélectionné la feuil1 et la feuil2, dans la USF

je crée dans mon fichier Récap, 2 feuilles portant les noms sélectionnés : Feuil1 et Feuil2

Dans RecapFeuil1 je vais copier en B1 le tableau (B1:G9) de la Feuil1 du fichier Suivi1 (en précisant en A1 = Suivi1)

puis en dessous, je vais copier le tableau (B1:G11) de la Feuil1 du fichier Suivi2 (en précisant en A10 = Suivi2)

et la même chose dans RecapFeuil2, avec les feuil2 des fichiers suivi1 et suivi2.

Je vous joints mon fichier, mais je suis pas très avancée, vue que jusqu'à présent, ma très petite expérience m'a appris à utiliser un formulaire pour remplir une feuille mais pas pour récupérer les données dans VBE

Merci d'expliquer votre code, afin que je progresse.

Bonjour,

n'ayant pas eu de réponse, et comme le dirait Banzai "remet-toi en question" (a quelque chose près), je vais essayer d'une part de reformuler, d'autre part de morceler mon projet...

j'ai créé une listebox avec des noms de feuille de classeur.

Suite à la sélection par l'utilisateur, je voudrais récupérer ces sélections dans des variables pour les utiliser afin d'ouvrir les feuilles concernées dans des fichiers, afin d'en faire une récap.

je sais comment récupérer une donnée d'une listbox pour la positionner dans une cellule ou une USF, mais là je ne connais pas d'avance le nombre de sélection et je ne pense pas qu'il faille passer par la feuille de récap ; faut-il utiliser un debug Print ? ; faut-il écrire le coded dans un module ou dans Private Sub LtB_Feuille_Click() ?

Merci de bien vouloir m'orienter...

Bonjour

Ce que je dis fait partie des règles lorsqu'on demande une aide

J'avais commencé à bosser sur ton problème, et m...e pas les fichiers "suivi1" et "suiv2"

Il sont au format xls ou xlsx ?

Que faire si la page n'est pas trouvé ?

Comment faire des tests sans rien

et zut je ferme le programme et je passe à autre chose

Et ton second fichier ressemble furieusement au 1er, mais toujours pas les fichiers "suivi"

Cette fois je te le dis

Merci Banzai,

De toute façon, même en cherchant on apprend, j'ai même bien avancé dans le code, même si je n'ai pas encore réussi à répondre à mon pb.

Banzai64 a écrit :

Que faire si la page n'est pas trouvé ?

ça ça fait partie des choses que je sais pas encore bien faire... j'imagine qu'il faut un si mafeuil = 0 then goto code suivant
Banzai64 a écrit :

et zut je ferme le programme et je passe à autre chose

là je sens que je t'énerve, je suis désolée

Donc il me manque la partie de récupération des noms de feuille, j'ai fait avec Mois1 = "12-12", comme si l'utilisateur avait fait ce choix.

Après il me manque la vérif que la feuille existe dans le fichier récap si non on crée une feuille "12-12" (la création je l'ai faite)

On ouvre de fichier de données Suivi1 ça c'est OK

Là comme tu dis il faut vérifier que la feuille existe si non en envoie un mess à l'utilisateur et on l'invite à refaire une sélection et on ferme.

Après on sélectionne le tablo de données on le colle sur le fichier Récap, ça c'est presque OK

Pour le 2ème fichier Suivi2, je ferai comme pour le premier Non ?

Merci encore pour ton aide et ta patience

Pour le fichier Récap, j'ai résolu la question de savoir si la feuille existe ou pas, car j'ai décidé de faire le ménage avant tout, je supprime toute les feuilles existantes sauf celles qui s'appellent 'menu' et 'Aide'

'Suppression de toutes les feuilles sauf la feuille Menu
Dim Compteur As Integer, Nom As String
    Application.DisplayAlerts = False
    For Compteur = Worksheets.Count To 1 Step -1
        Nom = Sheets(Compteur).Name
        Select Case Nom
        Case "Menu", "Aide" 'feuille à ne pas supprimer

        Case Else
            Sheets(Compteur).Delete
        End Select
    Next Compteur
    Application.DisplayAlerts = True

Comme ça on réinitialise à chaque fois le fichier et on est sur que toutes données sont à jour, qu'il ne reste pas de feuille d'une consultation précédente...

Merci pour la réflexion Banzai

Bonsoir

Faire des tests avec une seule feuille pas évident

Donc à tester en réel (sur une copie bien sur)

Bonjour Banzai,

Merci de m'avoir encore fortement aidé sur ce coup...

J'ai quand même eu un peu de mal à l'adapter en réel (5 fichiers à rappatrier, de longueur différente...), mais tout est presqu'Ok maintenant, plus qu'à réaliser la documentation utilisateur et applicative et qq mises en formes).

j'ai encore un petit souci... que je peux résoudre seule, mais certainement as-tu une idée plus professionnelle :

dans ton code, au moment de rappatrier les données, tu écris :

If FeuilleExiste(WbSource.Name, Me.LtB_Feuil.List(I)) = True Then
WbSource.Sheets(Me.LtB_Feuil.List(I)).Cells.FormatConditions.Delete 

que veut exactement dire cette dernière phrase ? je pose la question (parce que je ne l'ai pas comprise évidement, mais aussi) parce que je perds les mises en formes conditionnelles et les couleurs des types de données. Y at'il un moyen de les conservér (elles concernent les jours fériés et des couleurs par type de données rappatriées, donc c'est les mêmes pour tous les tableaux rappatriés).

Vraiment, encore merci, j'avais déjà essayé de m'y mettre seule (sur VBA) j'ai toujours abandonné, même les Dif ne sont pas adaptés. Heureusement qu'il existe des gens comme vous.

Continuez ; ne baissez pas les bras quand on n'est pas compréhensible....

A bientôt.

Bonjour

C'est cette partie qui m'a emm...dé gêné

C'est pour enlever justement le format conditionnel

Lors de la lecture du 2ème fichier XL m'indiquait qu'un nom défini existait déjà dans la page de réception etc .....

Et ce message me gênait

J'avais la solution de demander de ne pas l'afficher, mais.... pas mon style (j'essaie d'abord d'enlever la cause du problème avant de mettre une rustine)

Donc j'avais trouvé la solution de supprimer les format conditionnel de la page source avant de rapatrier les données

Ce n'était pas gênant car le fichier source était refermé sans sauvegarde

Donc dans ce fichier je reviens à ma 1ère solution

A tester

Bonsoir Banzai,

Je ne comprenais pas pourquoi, après modification du code, comme tu me l'as suggéré, j'avais des lignes colorées et des données colorées, mais pas avec la couleur d'origine, d'autres données pas colorées du tout, bref pas TOP.

Le passage 2007/2003 ne permet la prise en charge que des 3 premières conditions de MFC

Avec 2007 et mon fichier xlsm, ça va mieux :

mais il a fallu qu'avec mes données, je rappatrie également les tableaux de couleur.

Finalement, j'ai beaucoup galéré avec la MFC des jours fériés, qui ne fonctionnait pas, même après rappatriement du tableau des dates. j'ai compris que c'était à cause de la gestion des noms. la seule chose que j'ai trouvé, c'est de recréer cette liste sur une feuille fixe la feuille 'Menu' (les feuilles créés sont supprimées et recrées pour leur mise à jour)

A présent, cela semble Ok, je refais des tests demain et il faudra que je trouve comment supprimer tous les messages machines qui préviennent qu'il existe déjà un nom FERIES (il faut cliquer 8 fois sur OK... )

Bonne soirée.

Désolée d'avoir été si longue, mais peut-être que ça servira un jour à qq'1

Merci encore Banzai

A Bientôt

Rechercher des sujets similaires à "rapatrier feuilles divers fichiers partir usf liste"