Requête dans plusieurs onglets avec plusieurs critères

Y compris Power BI, Power Query et toute autre question en lien avec Excel
J
JoeLeMana
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 7 avril 2014
Version d'Excel : 2003

Message par JoeLeMana » 7 avril 2014, 15:43

Bonjour,

Le fichier Excel que je dois créer servira à du suivi de production. Dans l'atelier il y a plusieurs machines dont les informations sont rentrées quotidiennement dans un fichier Excel.

Mon travail consiste à créer une "page d’accueil" dans laquelle l'utilisateur pourra rentrer plusieurs critères de recherche.

Exemple de recherche : Le taux de pannes de la machine 1 de la semaine 12 à la semaine 15.

En cherchant sur le forum, j'ai trouvé un bout de programme qui m'a permit d'arriver à un résultat qui répond partiellement à mes attentes. Il permet de trouver les données correspondantes mais uniquement que pour une seule semaine alors que j'aimerai pouvoir rechercher dans un intervalle. Concrètement, je ne peux que rechercher la semaine 2 alors que j'aimerai rechercher de la semaine 2 à la 5 par exemple. Le second point de mon problème, c'est que je n'arrive pas à rechercher dans plusieurs onglets. Dans mon programme test, toutes les données sont contenues dans un seul et même onglet alors que dans le "vrai" fichier, il y a plusieurs onglets. Pour le moment je n'arrive pas à adapter le programme pour répondre à ces problèmes.

J'ai mis en pièces jointes mon document test où il y a le programme que j'ai fait. Le deuxième fichier est un exemple des données dans lesquelles je devrais effectuer mes recherches.

J'espère que certains d'entre vous pourront m'aider.

Je vous remercie par avance
donnéesMachine.xls
(60.5 Kio) Téléchargé 54 fois
ClasseurTestRequeteDonnées.xls
(59 Kio) Téléchargé 52 fois
p
paulpolopolux
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 6 avril 2014
Version d'Excel : 2010 FR

Message par paulpolopolux » 7 avril 2014, 21:57

Bonjour,

Voici qui pourrait t'aider, cependant le mieux est de rassembler toutes tes feuilles du classeur en une seule, car cette fonction ne marche pas comme la fonction "somme" en faisant référence à plusieurs onglets, je viens d'essayer. Il te suffira de mettre le nom de la machine comme tu l'as fait dans ton test. J'ai mis le taux de panne colonne K, ligne 2 n'hésite pas à me recontacter.

Cordialement.

Si tu tiens vraiment à le faire, il y a un moyen avec la fonction indirect, tape "somme si ens sur plusieurs feuilles" sur google, je ne l'ai jamais fait moi.
ClasseurTestRequeteDonnées.xls
(45.5 Kio) Téléchargé 63 fois
J
JoeLeMana
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 7 avril 2014
Version d'Excel : 2003

Message par JoeLeMana » 8 avril 2014, 10:32

Merci de votre premier retour.

J'ai continuer à avancer de mon côté et j'ai réussi à calculer mes indicateurs entre deux dates avec la formule sommeprod.

Dans mon idée, j'aurai un document avec autant d'onglets que de machines et une page d’accueil dans laquelle j'aurai trois critères de recherche:
- Selection machine (ce critère déterminera l'onglet de la recherche)
- Selection date début
- Selection date fin

Mon problème est donc : Comment faire pour qu'une cellule variable permette de "choisir" l'onglet dans lequel les calculs vont s'effectuer ?

Ainsi, dans ma page d'acceuil, je pourrai connaître très simplement le taux de pannes de la machine 1 entre le 02/01 et le 15/01.

Je vous joins le fichier pour que vous voyez mieux mon travail.
ClasseurTestRequeteDonnées2.xls
(64 Kio) Téléchargé 76 fois
J
JoeLeMana
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 7 avril 2014
Version d'Excel : 2003

Message par JoeLeMana » 8 avril 2014, 11:22

N'y aurait-il pas un début de solution en utilisant ce genre de code. En gros, utiliser un IF pour sélectionner le bon onglet de calculs

Sub test()
/Indiquer la machine souhaitée dans A1/
If A1 = "Machine1" Then
/Si la machine souhaitée est Machine1, insérer dans A2 la formule qui correspond au bon onglet/
Range(A2).Value = "==(SOMMEPROD((Machine1!B2:B47>=J10)*(Machine1!B2:B47<=K10)*(Machine1!E2:E47)))/(SOMMEPROD((Machine1!B2:B47>=J10)*(Machine1!B2:B47<=K10)*(Machine1!D2:D47)))"
If A1 = "Machine2" Then
/Si la machine souhaitée est Machine2, insérer dans A2 la formule qui correspond au bon onglet/
Range(A2).Value = "==(SOMMEPROD((Machine2!B2:B47>=J10)*(Machine2!B2:B47<=K10)*(Machine2!E2:E47)))/(SOMMEPROD((Machine2!B2:B47>=J10)*(Machine2!B2:B47<=K10)*(Machine2!D2:D47)))"

End If

End Sub
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message