Macro excel afficher et masquer des lignes

Fermé
GTA54 Messages postés 414 Date d'inscription jeudi 23 février 2012 Statut Membre Dernière intervention 7 août 2019 - 23 févr. 2012 à 14:03
GTA54 Messages postés 414 Date d'inscription jeudi 23 février 2012 Statut Membre Dernière intervention 7 août 2019 - 24 févr. 2012 à 14:00
Bonjour,

Je suis étudiant en alternance dans une entreprise qui fabrique des pièces pour l'automobile.
Une de mes missions et de créer une AMDEC (Analyse des Modes de Défaillance, de leurs effets et de leurs criticités) générique et automatique ! Pour l'instant, j'ai réussi à faire tout ce que je voulais !
Maintenant ça fait depuis ce matin que je coince sur une macro casse tête...

Je vous explique le truc :

J'ai un onglet nommé "Process Analysis" qui (pour l'instant) est le même onglet que "Process Analysis Set" (dès que je rentre une donnée dans le tableau "Process Analysis Set", le tableau "Process Analysis" se met directement à jour). Le tableau "Process analysis" est composé de :

colonne A : Numéro (s'inscrit automatiquement par rapport au process selectionné)
colonne B : Process (type de process définit ultérieurement)
colonne C --> AV: Méthodologie etc...

J'ai un onglet "Synoptic" qui recense tous les différents Process que l'on peut avoir. Dans cet onglet, il y à :
colonne C : La liste des process
colonne A : L'opérateur rentre manuellement un numéro en fonction de l'ordre où il veut que s'affiche les différents process dans l'onglet "Process Analysis"
colonne B : Lorsque l'on rentre un chiffre dans la colonne A, un "X" apparait dans la colonne B (au niveau du chiffre colonne A)
J'ai également mis un bouton MAJ affecté à une macro qui lorsque l'on clique dessus affiche dans l'onglet "Process Analysis" le premier process coché... alors que je voudrais tout les process cochés.

Je ne sais pas si c'est très clair ... =/ Voici ma macro :

Sub Bouton6_QuandClic()
Dim a As String
Dim x As String
Sheets("process analysis").Range("B91 : B300").EntireRow.Hidden = False
a = 18
Do Until a = 52
If Sheets("synoptic").Range("B" & a).Value = "X" Then
x = 91
Do Until x = 201
If Sheets("process analysis").Range("B" & x).Value = Sheets("synoptic").Range("C" & a) Then
Sheets("process analysis").Range("B" & x).EntireRow.Hidden = False
ElseIf Sheets("process analysis").Range("B" & x).Value <> Sheets("synoptic").Range("C" & a) Then
Sheets("process analysis").Range("B" & x).EntireRow.Hidden = True
End If
x = x + 1
Loop
ElseIf Sheets("synoptic").Range("B" & a).Value = "" Then
End If
a = a + 1
Loop
End Sub

Ce que je veux c'est :

Lorsque l'opérateur rentre un ou plusieurs chiffre dans la colonne A (onglet "Synoptic") et que l'on clic sur le bouton MAJ, les lignes de process correspondant reste affichées dans l'onglet "Process Analysis" et les lignes de process qui n'ont pas de numéro sélectionnés avant se masque ! Ensuite, par rapport au numéro que l'on aura mis dans l'onglet "Synoptic", les lignes sont triées par ordre croissant (attention : il peut y avoir plusieurs process avec le même numéro et plusieurs lignes avec le même process !)

J'espère que j'ai été assez clair et que vous pourrez m'aider !

Dans l'attente d'une solution. Merci !


A voir également:

2 réponses

GTA54 Messages postés 414 Date d'inscription jeudi 23 février 2012 Statut Membre Dernière intervention 7 août 2019 28
23 févr. 2012 à 14:07
Ah oui et j'ai EXCEL Standard XP sur le PC.
0
GTA54 Messages postés 414 Date d'inscription jeudi 23 février 2012 Statut Membre Dernière intervention 7 août 2019 28
24 févr. 2012 à 14:00
https://www.cjoint.com/?3BylFKxNk2w

Voila ce que je veux faire.
Quand on rentre un numéro dans la colonne A de l'onglet "Synoptic", seules les lignes qui ont le même "Process" (colonne B onglet Process Analysis Set) que le process (colonne C "synoptic") sont affichées dans l'onglet "Process Analysis".
De plus les lignes doivent être triées dans l'ordre croissant en fonction du numéro que l'on aura mis dans la colonne A du Synoptic. Attention ils peut y avoir plusieurs process avec le même numéro.

J'espère être un peu plus clair...
0