Masquer/afficher des lignes spécifique en fonction d1 liste

Bonjour,

Je vous écris ici car je debute avec l'éditeur VBA, et je cherches des pistes pour réaliser une programmation...

Je m'explique :

J'ai un tableau dans lequel ma cellule B2 est une liste déroulante comprenant 9 choix possible.

En fonction de ce qui est sélectionné dans la cellule B2 j'aimerais n'afficher que le tableau respectif au choix :

Choix 1 : lignes 6 à 25

Choix 2 : lignes 27 à 46

Choix 3 : lignes 48 à 67

Choix 4 : lignes 69 à 88

Choix 5 : lignes 90 à 109

Choix 6 : lignes 111 à 130

Choix 7 : lignes 132 à 151

Choix 8 : lignes 153 à 172

Choix 9 : lignes 174 à 193

Les 5 premières lignes sont utilisés pour d'autres fonctions, et les lignes après la ligne 194 également, ce qui veux dire que celles-ci sont toujours visible!

J'espère avoir été clair sur la présentation de mon problème.

Merci pour votre aide...

Bonjour,

Merci de joindre un fichier

Bonjour

A tester

Super,

Ca marche, mais je ne comprends juste pas comment devrais-je modifier le code pour que ça marche si ma liste ne porte pas les nom "Choix 1",... mais on d'autre nom?

Merci

Bonjour

Change de liste comme tu l'entends et fais un essai

Ca marche je viens seulement de tilter!

Il faut le temps que ca monte au cerveau!

Merci,

Je test ça desuite, je croix que ça résout mon problème!

Je viendrai bientôt avec la suite du casse tête...

Merci

En fait je reviens vers vous car après plusieurs essais de motif du code de Banzai64

Je n'arrive toujours pas a solutionné mon problème! je vous joints mon tableau.

Il y a 3 feuilles, les lignes a afficher/masquer sont sur la 1 (DATA PROGRAM)

La deuxième feuilles sont toutes les listes que nécessitera mon classeur (LISTS)

La troisième (LOG) sera mon prochain problème!

Merci

Bonjour

Modifie la procédure

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Indice

  If Target.Address = "$B$2" Then
    Application.ScreenUpdating = False
    Rows("6:193").Hidden = True
    'Indice = Application.Match(Range("B2"), Range("LISTS!E3:E11"), 0)
    Indice = Application.Match(Range("B2"), Sheets("LISTS").Range("E3:E11"), 0)
    If Not IsError(Indice) Then
      Rows(6 + ((Indice - 1) * 21)).Resize(20).Hidden = False
    End If
  End If
End Sub
Rechercher des sujets similaires à "masquer afficher lignes specifique fonction liste"