Boucle et filtre

Fermé
DGVDR - 22 nov. 2013 à 16:49
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 - 26 nov. 2013 à 10:06
Bonjour,

Grace à un enregistrement de macro j'ai tout d'abord trouver mon code VBA pour le fait de filtrer :

ActiveSheet.Range("$A$1:$T$2561").AutoFilter Field:=2, Criteria1:= _
"Boucheuse / Museleuse"
Range("C1").Select
ActiveSheet.Range("$A$1:$T$2561").AutoFilter Field:=3, Criteria1:="Curatif"

Cependant j'aimerai que mon critère 1 du filtre 2 ne reste pas sur "Boucheuse / Museleuse"

Mais qu'il passe d'une machine à la suivante, la liste de mes machines étant dans l'onglet 'MTBF' de la case A2 à la case A44.

Quelqu'un à une idée ?

Merci de votre temps,

DGVDR

6 réponses

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
25 nov. 2013 à 10:15
Bonjour,

Qu'est-ce qui entraîne le changement de filtre (càd le passage d'une machine à la suivante) ? un laps de temps ? l'appui sur un bouton ? ... ?

A+
0
Bonjour Zoul67, et merci de ta réponse,

Le but de ma macro est d'analyser un tableau se trouvant dans l'onglet "Enregistrement interventions". Dans ce tableau on retrouve les différentes machines ainsi que les dates d'interventions associées.

Je voudrais que ma macro analyse machine par machine ( d'ou le changement dans le filtre 2) Je voudrais que le changement de critère ce fasse automatiquement, une fois l'analyse épuisée pour la première machine. ( peut être du coup deux boucles l'une dans l'autre ?)

Une boucle pour le changement de machine vis à vis de la liste existant dans l'onglet MTBF, et une boucle qui, par machine, analyserait le tableau.

Merci de ton aide,

Qu'en penses tu ?

DGVDR
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
25 nov. 2013 à 11:14
Re,

ça peut être délicat à traiter, des données filtrées.
Souvent, les Tableaux Croisés Dynamiques sont un bon outil pour visualiser rapidement des données par critère.
Pour le code, ça ressemblerait à
For l = 2 to 44
critere = Sheets("MTBF").Cells(l,1).Value
ActiveSheet.Range("$A$1:$T$2561").AutoFilter Field:=2, Criteria1:= critere
'ton code de traitement des données filtrées
Next l

A+
0
Comment ça délicat ?

Je regarde ça au plus vite, merci beaucoup
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DGVDR Messages postés 158 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
25 nov. 2013 à 12:25
Petit problème :

J'arrive bien à filtrer mon tableau, il n'apparait que les lignes avec mon critère.

Cependant par la suite j'aimerai me caller sur la dernière ligne, sa case "E" (valeur que l'on appelera X)
Par la suite je me calle sur la ligne d'au dessus, le tableau étant toujours filtré, puis je prend me calle également sur la case "E" (valeur que l'on appelera Y)

J'aimerai effectuée X - Y

J'ai un début de reflexion :

For L = 2 To 44
critere = Sheets("MTBF").Cells(L, 1).Value
ActiveSheet.Range("$A$1:$T$2561").AutoFilter Field:=2, Criteria1:=critere 'ton code de traitement des données filtréesNext l

numligne = Sheets("Enregistrements interventions").Range("A65536").End(xlUp).Row

DerDate = Worksheets("Enregistrements interventions").Range("E" & numligne)

Cependant je n'ai pas l'astuce pour mettre en mémoire la valeur Y, un tableau filtré pouvant passer de la ligne 600 à la 700, je ne sais pas comment me caller dessus.

Quelqu'un à t il déjà rencontré ce cas ?

Merci,

DGVDR
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
25 nov. 2013 à 12:50
Ben voila, c'est délicat :-p
Copie-colle les données filtrées dans un onglet temporaire de travail, tu obtiens ainsi des lignes contiguës (ça ne colle que les données filtrées).

A+
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
25 nov. 2013 à 13:13
Sinon, jusqu'ici, c'est gérable par fonctions Excel.
0
DGVDR Messages postés 158 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
25 nov. 2013 à 14:00
Est-ce possible celon de toi de gérer cela en automatique ? (par vba)

Car toute l'idée est de ne pas avoir à effectuer de manipulation "manuelle", de copier coller par exemple
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
25 nov. 2013 à 15:55
Oui, essaie de voir le code VBA généré quand tu fais un copier-coller.

Mais il y a peut-être encore plus simple... car là tu poses tes questions en pas-à-pas suivant les manipulations que tu connais. Si X-Y correspond à une durée (entre les deux dernières pannes?), la macro est superflue et c'est gérable avec des fonctions.
Donc... quel est le but final recherché ?
0
DGVDR Messages postés 158 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
25 nov. 2013 à 16:00
C'est en effet une durée moyenne entre deux pannes que je recherche.

Il va donc me faloir le nombre d'interventions :

Nbre = Worksheets("Enregistrements interventions").Application.CountIf(Range("B5:B300"), critere)

Et la somme des écarts (donc X-Y, Y-Z ,Z-...)

Vois tu ce que je veux dire ? Sinon je peux te mettre un fichier joint
0
DGVDR Messages postés 158 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
Modifié par DGVDR le 26/11/2013 à 09:49
Zoul67,

Peux tu m'expliquer un peu plus le "SOMME.SI.ENS", dans son fonctionnement ?

Mais une fois que tu appliques le code, les pannes 5-6-7-8 en sont 4 ou n'en sont qu'une ?
-> Je ne comprends pas bien la question, les pannes 5-6-7-8 restent bien distinct et compte comme 4 dans le calcul de MTBF

Et pour le calcul du MTBF, tu utilises la date de mise en service (pas d'autre choix pour les machines n'ayant connu qu'une panne) ?
-> Oui, quand j'ai la date je l'utilise en effet (ça n'est pas encore en place ceci dit)

Merci de ton temps,

DGVDR
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
Modifié par Zoul67 le 26/11/2013 à 10:06
DGVDR,

Je voulais dire NB.SI.ENS en fait. Tu en verras l'utilisation dans ce fichier :
https://www.cjoint.com/c/CKAkdXQdWDS

PS : je craignais que 5-6-7-8 soient 4 interventions pour la même panne.

A+
0