VBA - Masquer/Afficher automatiquement ligne

Garmin

XLDnaute Nouveau
Bonjour à toutes et à tous pour mon premier post (et donc premier problème).

Après avoir cherché et testé certaines réponses trouvées sur le forum, je sollicite votre aide.

Je débute sur VBA et je bute sur la macro suivante. Je vous joins un fichier dépourvu de données sensibles et avec les macros.

L'idée est de changer, dans l'onglet "graphique" le responsable que l'on veut observer par le biais d'une liste déroulante. Lors de ce choix le tableau dans l'onglet "VDB" s'actualise.
Chaque responsable a un nombre de vendeur qui lui est propre. Le tableau fait des des recherchesv dans l'onglet "base" en fonction du responsable que nous avons choisit.

Dans l'exemple un responsable a maximum 4 vendeurs. L'idée est la suivante: lorsque l'on change de responsable ayant juste 3 vendeurs, C8 = 0 donc masquer la ligne 8. De même si c'est un responsable ayant 2 vendeurs, C8 et C7 = 0 donc masquer la ligne 7 et 8.

A l'inverse si on passe d'un responsable ayant deux vendeurs à un responsable en ayant 4, réafficher les lignes.

Dans mon fichier j'ai cette macro mais elle n'est pas automatique. Quand je change de responsable dans ma liste déroulante il ne se passe rien. Des idées ?

Merci d'avance pour vos réponses. Je reste à votre dispo =D

Garmin
 

Pièces jointes

  • Copie de Fichier test.xls
    41.5 KB · Affichages: 45
  • Copie de Fichier test.xls
    41.5 KB · Affichages: 58
  • Copie de Fichier test.xls
    41.5 KB · Affichages: 61

DoubleZero

XLDnaute Barbatruc
Re : VBA - Masquer/Afficher automatiquement ligne

Bonjour à toutes et à tous,

Bienvenue sur XLD, Garmin.

Un essai avec les deux codes suivants :

- le premier, identique à celui déposé, mais avec une ligne supplémentaire :

Code:
Option Explicit
Sub Masque_lig()
    Application.ScreenUpdating = False
    Dim cellule As Range
    With Sheets("VDB")
        Cells.EntireRow.Hidden = False    'lignes afficher toutes
        For Each cellule In .Range("C5:C8")
            If cellule.Value = 0 Then
                cellule.EntireRow.Hidden = True
            Else
                cellule.EntireRow.Hidden = False
            End If
        Next cellule
    End With
End Sub

- le second, à placer dans le module de l'onglet "VDB" :

Code:
Option Explicit
Private Sub Worksheet_Activate()
Call Masque_lig
End Sub

A bientôt :)
 

Discussions similaires

Statistiques des forums

Discussions
312 169
Messages
2 085 918
Membres
103 038
dernier inscrit
Herve7