Rechercher dans plusieurs classeurs
Bonsoir le forum,
Dans le but de compléter une application, je souhaiterais faire une "synthèse" de tous les classeurs d'un répertoire donné.
Je voudrais en effet copier dans la feuille 2 de mon classeur "pilote" sur la première ligne toutes les cellules (Valeur et couleur de fond) du premier classeur de mon répertoire qui sont sur fond vert ou rouge , puis sur la ligne suivante toutes les cellules (Valeur et couleur de fond) du deuxième classeur de mon répertoire qui sont sur fond vert ou rouge, et ainsi de suite jusqu'au dernier, ce qui m'éviterais de tous les ouvrir les uns après les autres pour effectuer un contrôle visuel.
Le nombre de cellules susceptibles d'avoir une fond de couleur est de 8 par classeur.
Quelque chose dans le genre :
For each workbook dans le répertoire X
si le fond de la cellule A1 n'a aucune couleur alors copier la valeur de la cellule dans la feuille 2 de mon classeur "pilote"
si le fond de la cellule F2 n'a aucune couleur alors copier la valeur de la cellule dans la feuille 2 de mon classeur "pilote"
Next workbook
Une variable de type "flag" serait mise à 1 si au moins une des 8 cellules à un fond de couleur et je ne copierais la ligne que dans ce cas.
Si quelqu'un avait une idée....
Merci à vous
Cordialement
Joseph
Bonjour Joseph le forum
un peu light ton explication mais bon on va dire que l'on comprend mal aujourd'hui.
1) est-ce que le fichier pilote est dans le même dossier que tes classeurs à traiter?
2) est-ce que dans ce dossier, il n'y a pas d'autre classeurs qui ne seraient pas à traiter?
en cas de réponses oui il nous faudra à ce moment là le nom des fichiers à traiter ou la racine des noms à traiter
ex: Compte rendu x
3) maintenant ton histoire de couleur là il peut y avoir 8 cellules donc on suppose de la feuil1 ligne 1 de A1 à H1 et on suppose aussi que tes classeurs ont une seule feuille.
Donc beaucoup de suppositions, alors, le mieux le classeur pilote et au moins un classeur à traiter avec les explications et on va ta faire cela sans soucis
a+
papou
Bonjour papou, le forum,
Tout d'abord merci pour ton intérêt. Les questions soulevées sont autant d'informations pour moi.
J'avais bien conscience d'être un peu "light", mais je ne voyais pas comment insérer un répertoire.
Je vais essayer d'être plus précis suite à tes remarques (fondées).
Le répertoire du fichier "pilote" (Mesures.slxm) et de la fiche type (FicheType.xlsx) à partir de laquelle je crée toutes les fiches est le suivant : ("\\SNELL-PC\Users\SNELL\Documents\Joseph\MAJEURS")
Le répertoire des fiches dont le nom est le N° RG (par exemple 600008.xlsx) est le suivant :
("\\SNELL-PC\Users\SNELL\Documents\Joseph\MAJEURS\Fiches\"). Ce répertoire ne contient uniquement que des fiches.
Les fiches ne contiennent qu'une seule feuille, et les cellules susceptibles d'avoir un fond vert ou rouge sont lers suivantes : J2, J9, J10, J11, G16, D22 et D23.
Le but de la manoeuvre est de copier (fond et valeur) toutes les cellules ayant un fond de couleur de toutes les fiches dans la feuille 2 du classeur pilote Mesures.xlsm sans avoir à ouvrir les fiches les unes après les autres et d'effectuer un contrôle manuel et visuel.
Le mot de passe est ...... Joseph
Merci encore de ton intérêt et de ton aide.
Amicalement
Joseph
Salut le forum
Un début de solution
Mytå
Bonjour Myta,
J'avais effectivement dans mes recherches vu ce post.
Malheureusement je suis complètement largué. Je n'ai pas compris grand chose du code, alors de là à réussir à l'adapter à mon cas....
Je suis toutefois déjà retourné dessus pour essayer de comprendre.
En tout cas, merci pour ton intervention.
Amicalement
Joseph
Bonsor Joseph le forum
je n'ai pas le temps là, mais je te ferai la macro pour réaliser ce que tu souhaites demain
Un lien vers un post c'est bien mais de faire le fichier c'est mieux, du moins je pense !!!
a+
papou
Bonsoir papou, le forum,
Mille merci papou. Ma demande n'est pas urgente, et je pense bien que l'on peut avoir autre chose à faire un dimanche.
Si je reçois quelque chose demain, c'est très bien, mais après demain ce sera toujours encore très bien, et après après demain encore.
J'ai entretemps consulté des dizaines de recherches, vu pal mal de choses intéressantes, mais là je sature un peu, et mes yeux m'arrivent plus à suivre. J'arrête donc pour aujourd'hui.
J'attends avec intérêt ta macro...
Merci et bonne soirée
Amicalement
Joseph
Bonjour Joseph le forum
bon alors j'ai regardé les fichiers et tu es encore plus light que je ne le pensais !!!!!
tu dis :
Les fiches ne contiennent qu'une seule feuille, et les cellules susceptibles d'avoir un fond vert ou rouge sont lers suivantes : J2, J9, J10, J11, G16, D22 et D23.
J2 =
mais ou copier ces fonds de couleur? exemple J2 = colonne H de la feuille Mesure
mais J9 donc RVV lui il va ou????
alors STP tu me dis J2 = colonne H J9 = colonne ??? etc pour les autres J jusqu'à D23
et je suppose aussi qu'il faut les copier dans les lignes correspondant à la personne de la fiche, juste une petite précision que tu avais oublié !!!!!!
dans l'attente de ta réponse
a+
Papou
Bonjour papou, le forum,
Pour quelqu'un de presque 80 kg, light c'est super!!!
Bref, trêve de plaisanteries, je redevient sérieux.
Une fois de plus, tes questions mettent en lumière combien il est difficile d'expliquer correctement ce que l'on souhaite. (en tous cas pour moi)
Et comme souvent, je pense beaucoup plus loin que ce que j'ai déjà fait : revoici le fichier Mesures.xlsm avec la feuille 3 dans laquelle copier les cellules des fiches qui ont un fond de couleur.
Corrélations fiches et feuil3 de Mesures.xlsm
Nom B2 ------------------> Nom à partir de A3 (valeur de la cellule)
Prénom F2 ---------------> Prénom à partir de B3 (valeur de la cellule)
Age J2 ---------------------> Age à partir de C3 (valeur de la cellule et couleur de fond)
Rev.AAH J9 --------------> Rev.AAH à partir de D3 (valeur de la cellule et couleur de fond)
Rev.suivi J10 -------------> Rev suivi à partir de E3 (valeur de la cellule et couleur de fond)
Rev.travail ----------------> Rev.travail à partir de F3 (valeur de la cellule et couleur de fond)
Révision tribunal G16 --> Révision tribunal à partir de G3 (valeur de la cellule et couleur de fond)
Rev.CMU base D22 ----> Révision CMU base à partir de H3 (valeur de la cellule et couleur de fond)
Rev CMU compl. D23 -> Rév.CMU compl à partir de I3 (valeur de la cellule et couleur de fond)
Si dans la fiche aucune des cellules listées n'a de fond vert ou rouge, on ne crée évidemment pas d'enregistrement dans la feuille 3 de Mesures.xlsm
Le fond des cellules listées passe au vert 4 mois avant l'échéance et au rouge 2 mois avant l'échéance. Pour l'âge c'est en vert pour 4 mois avant 57 ans et en rouge 2 mois avant 57 ans.
Voilà, j'espère n'avoir rien oublié cette fois-ci...
Amicalement
Joseph
Re Bonjour Joseph le forum
voilà ton fichier en retour avec trois fichiers pour mes tests, que j'ai rempli au moins avec une cellule de couleur.
testes et redis moi
a+
Papou
Bonjour papou, le forum,
Dis-moi, comment fais-tu pour aller si vite ????
Je vais voir çà ce soir encore ou demain après 16h..
Je te tiendrais au courant dès que possible...demain journée continue.
En tous les cas, merci par avance
A bientôt
Amicalement
Joseph
Bonsoir Joseph le forum
bah quand on a les éléments c'est plus rapide encore !!!!
enfin tu n'as pas essayé, mais tu peux le faire en décompressant le dossier que je t'ai envoyé sur ton bureau
et tu lances la macro et tu me redis
a+
Papou
Bonsoir papou, le forum,
Eh bien voilà j'ai eu un peu de temps pour tester.
Visiblement il y a un petit souci.
Dans le module lister :
Sub Liste()
Dim Fso As Object
Dim rep$, f As Object, x&, adr$
Dim f1 As Object, f2 As Object
Set Fso = CreateObject("Scripting.FileSystemObject")
adr = ThisWorkbook.Path
rep = adr & "\Fiche"
Sheets.Add after:=Sheets(Sheets.Count): ActiveSheet.Name = "Liste"
x = 1
For Each f In Fso.GetFolder(rep).Files
Cells(x, 1).Value = f.Name
x = x + 1
Next f
x = 1
End SubIl était marqué rep = adr&"\fiche" : j'ai remplacé par rep = adr &"\Fiche " avec un F majuscule puisque le dossier s'appelle Fiche.
J'ai supprimé la feuille "Liste" dans Mesures Joseph V1.xlsm car elle existait déjà et donc le code "plantait". (J'ai vu que cette feuille était supprimée dans le module Joseph à la fin du traitement.)
Enfin, le code "plante" au niveau de l'instruction suivante : For Each f In Fso.GetFolder(rep).Files avec comme message d'erreur : "Chemin d'accès introuvable". Et là, je ne sais plus du tout quoi faire. (inutile de dire que ton code me dépasse de loin !)
A bientôt
Amicalement
Joseph
Bonsoir papou, le forum,
STOP : ne pas tenir compte de ce que je viens de dire juste auparavant.
J'ai placé tes fichiers dans le dossier "papou" ou lieu de les laisser en temp ...... : et ça fonctionne. YES !!!!!!!
C'est proprement super.
Juste un point de détail, dans Mesures Joseph V1.xlsm feuille 3, colonne G, les dates s'inscrivent que le fond soit de couleur ou pas.
Pourrais-tu ...?
Et si en prime (cerise sur le gateau) je pouvais avoir quelques explications sur le code.
Un immense merci
Amicalement
Joseph
re Joseph le forum
tu peux m'expliquer ce que tu dis là ?
Juste un point de détail, dans Mesures Joseph V1.xlsm feuille 3, colonne G, les dates s'inscrivent que le fond soit de couleur ou pas.
Pourrais-tu ...?
J'ai rapatrié toutes les cellules J2 J9 J10 et les suivantes de tous ceux qui ont au moins une cellule en couleur, c'est ce que tu as demandé au début, si maintenant ta demande n'est plus la même il faut le dire mais moi j'ai fait en sorte de rapatrier toutes les cellules de J2 à D23 de tous ceux qui ont au minimum une case coloriée dans cette liste de cellule.
a+
Papou
re Joseph le forum
bon voilà avec ce que j'ai compris + une vérification de la feuille liste
Mais avec des explications très incomplètes il est difficile de comprendre ce que tu veux exactement
j'ai rapatrié dans tous les cas les trois premières cellules pour avoir le nom prénom et age de la personne
qui ont des défauts
testes et redis moi
a+
papou
Bonjour papou, le forum,
Je viens de rentrer et me suis de suite précipité vers mon PC.
Décidément, je suis confus par mon manque de clarté. Moi qui relis trois fois mes messages avant de les envoyer, je pensais vraiment avoir tout détaillé.
Mais selon mes premières constatations, ton fichier fait exactement ce que je souhaite.
Pour chaque fiche si une au moins des cellules listées a un fond de couleur, écrire une ligne sur la feuille 3 de Mesures Joseph.xlsm avec le nom et le prénom de la personne plus la valeur et couleur de fond de la (ou des) cellule(s) ayant un fond de couleur..
Si aucune des cellules listées n'as de couleur de fond, il ne faut pas écrire de ligne.
Je vais donc signaler ce post comme étant résolu dès que j'aurais essayé tous les cas de figure.
Reçois en attendant mes plus vifs remerciements pour ta patience et ta disponibilité.
J'aurais peut-être fini centenaire avant de réussir à résoudre ce problème.
Merci
Joseph
Bonjour papou, le forum,
Voilà petit problème avec la fiche 999.xlsx
La cellule D22 en fond vert n'est pas recopiée dans feuille 3 de Mesures Joseph V3.xlsm en H7 comme il le faudrait
J'ai remarqué en testant que parfois tout n'était pas recopié.
Là j'ai laissé tel quel pour que tu puisses le constater.
J'ai bien essayé de voir à quel endroit du code celà pouvait se passer, mais bon je ne suis pas encore centenaire (cf.post précédent)
Peut-être au niveau de ceci ? :
If x <= 3 Then GoTo 1A cet effet, je prends la liberté de te renvoyer les fichiers.
A bientôt
Amicalement
Joseph
Bonsoir Joseph le forum
c'est le fichier 999 qui me fallait pour vérifier pas l'autre
tu fais comme moi un dossier avec tes fichiers dedans et tu les compresses en .zip
a+
Papou
Bonsoir papou, le forum,
J'étais persuadé que le tout (Mesures et toutes les fiches) étaient dans Mesures Joseph.zip
Ce n'est pas grave, voici toutes les fiches
Meri
A bientôt
Joseph