Faire un test d'une cellule sur plusieurs classeurs

Bonsoir à tous,

Alors voilà j'ai plusieurs classeurs tous suivant le même modèle dans plusieurs dossiers, et j'aimerais dans un autre classeurs ou sur une ligne je récupère le nombre fois ou tel valeurs est apparue. Pour être plus précis, j'ai un dossier 2021 ensuite plusieurs dossier pour les mois, et dans chaque mois, il y a plusieurs classeurs tous nommé Rapport AAAAMMJJ HHMM.xls et dans la cellule B6 j'ai un menu déroulant qui contient A,B,C,.. et que dans mon classeurs Rapport annuel sur une cellule je voudrais savoir combien de fois j'ai eu de A, de B,.. dans tous mes fichier du dossier parent 2021. J'aimerais savoir quelle formule je peux utiliser pour récupérer ces valeurs. Et deuxièmement comment je pourrais récupérer des valeurs de durée et d'heures afin d'incrémenté un compteur par objet d'un autre menu déroulant.

J'espère avoir été clair dans ce que j'essaye de dire si besoin de plus d'explication n'hésitez pas et merci à vous d'avance, bonne soirée.

SToXiT

A mon avis, une récursivité s'impose. Pourrais-tu nous proposer un de ces fichiers histoire de voir ce que tu veux manipuler ?

Euh oui optimix, il faut juste que je le modifie pour enlever des données

Ca marche.

Bonsoir à tous les 2 (on se retrouve^^),

Voici une proposition (pour l'instant non fonctionnelle) issue de l'adaptation d'un code que j'ai fait assez récemment. Sur le sujet en question, le code est censé inspecter tous les fichiers de tous les sous-dossiers de tous les dossiers d'un dossier parent. Ici, on a un niveau en moins...

Je pense qu'au-delà, le recours au fso et à une fonction récursive s'impose.

https://forum.excel-pratique.com/excel/recherche-de-fichier-dans-plusieurs-dossiers-152171

Sub test()

dim strPath$

strPath = "C:\...\2021\" '<<<<< ADAPTER

'TABLEAU CONTENANT LES DOSSIERS DE 2021
arrFolders = ListeDossiers(strPath)

'POUR CHAQUE SOUS-DOSSIER DE 2021, ON PARCOURT TOUS LES FICHIERS
For i = LBound(arrFolders) To UBound(arrFolders)
    strCurrentFile = Dir(arrFolders(i) & "*.xls*")
    While strCurrentFile <> ""
        if strCurrentFile like "Rapport*" then
            '----------COEUR DU CODE A DEFINIR
            set wb = workbooks.open(arrFolders(i) & strCurrentFile)
            with wb
                'code a executer dessus '<<<<<<<<
                .close true
            end with
            '--------------------------------
        end if
        strCurrentFile = Dir
    Wend
Next i

End Sub

'FONCTION PERMETTANT DE RENVOYER UN TABLEAU AVEC TOUS LES SOUS-REPERTOIRES D'UN REPERTOIRE
Function ListeDossiers(strRepertoire$)

Dim strDossier$, n&, temp()

strDossier = Dir(strRepertoire, vbDirectory)
While strDossier <> ""
    If Not strDossier Like "*.*" Then
        ReDim Preserve temp(n)
        temp(n) = strRepertoire & strDossier & "\"
        n = n + 1
    End If
    strDossier = Dir
Wend
ListeDossiers = temp

End Function

Pour le coeur du problème, je pense qu'il faut bien le définir (et donc connaitre les caractéristiques des fichiers avec précision) et partir sur une macro dépendant de paramètres.

Cdlt,

Pour la récupération des valeurs B6, je te propose une récursivité sous fso. Le fichier ci-dessous doit être placé à la racine des années.

12recursivite.xlsm (26.75 Ko)

Bonjour, je vais voir ce que vous m'avez proposé, et oui on retrouve à nouveau nous trois ^^. Pour que vous vous fassiez une idée plus clair je vous joint le fichier, j'y est mis quelque annotation. Et les info récupérer seront traité dans un classeur différent que je nommerais Stats.

Merci à vous deux

11rapport-copie.xlsm (22.34 Ko)

Il faut mettre la propriété .Visible de ton fichier sur "True" car je ne vois rien. Petit cachotier !

Tu peux mettre mon exemple dans n'importe quel dossier : ma macro sait où elle se trouve et ce qu'elle doit scanner : cad tous tes fichiers Excel.

Désolé, où dois-je mettre la propriété visible de mon classeur sur true? Chez moi il s'affiche normalement, sur mon autre ordi idem.

Je viens d'essayer avec ton fichier, c'est parfait pour faire les stat pour le motif, saurait-tu comment je peux faire pour l'adapter aux heures car il faudrait que dans le fichier Rapport les heures soit précise mais dans les stats arrondir à l'heure au dessus?

La propriété .Visible était une plaisanterie, car tu avais oublié de mettre ta pièce jointe quand j'ai posté.

Ce n'est pas le fichier récupérateur qui m'intéressait, c'est un exemple de fichier contenant des données à récupérer. Où sont les données et où faut-il les mettre ?
Impossible (pour moi) de t'aider sans un descriptif précis et complet (le goutte à goutte est à éviter).

D'accord, désolé je n'avais pas compris sur le moment ^^, Voila je te joint le classeur Rapport ainsi que le Classeur STAT, j'espère que tu aura une meilleure compréhension de ce que je souhaiterais. La macro du classeur STAT n'est pas complète, je dois continuer de rentré tout ce qu'il y aura dans les menus déroulants

11stats.xlsm (27.93 Ko)
10rapport-copie.xlsm (22.55 Ko)
Rechercher des sujets similaires à "test classeurs"