Aide VBA

Bonjour,

Je m'y connais pas vraiment dans les VBA et je n'arrive pas à trouver de code valide .... Et je ne vois pas quelle fonction pourrait convenir autrement ...

Je suis sur Excel 2007, je souhaite masquer/afficher des lignes en fonction de l'affichage d'une cellule.

En B23 j'ai un menu déroulant : "Sélectionner", "Élément plat" et "Élément de forme"

En fonction de ce que je sélectionne en B23:

"Sélectionner" -> Masquer les lignes 35 à 38 ;

"Élément plat" -> Masquer les lignes 36 à 37, et afficher les lignes 35 et 38 ;

"Élément de forme" -> Masquer la ligne 35, et donc avoir les lignes 36 à 38 d'affichées.

Est-faisable ? Avez-vous une solutions svp ? Sachant que j'aimerais que se soit automatique et sans boutons.

Merci d'avance

Bonjour,

Une proposition de macro évenementielle (= liée à la modification de la cellule B23). Le code est à placer dans le module de la feuille concernée, dans l'éditeur VBA (accessible via ALT + F11) :

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$B$23" Then 'Si la cellule modifiée est B23
    Select Case Target.Value 'Selon la valeur prise par cette cellule
        Case "Sélectionner" 'Masquer les lignes 35 à 38
            Rows("35:38").Hidden = True
        Case "Élément plat" 'Masquer les lignes 36 à 37, et afficher les lignes 35 et 38
            Rows("35:38").Hidden = False
            Rows("36:37").Hidden = True
        Case "Élément de forme" 'Masquer la ligne 35, et donc avoir les lignes 36 à 38 d'affichées.
            Rows("35").Hidden = True
            Rows("36:38").Hidden = False
        Case Else 'Afficher toutes les lignes
            Rows("35:38").Hidden = False
    End Select
End If

End Sub

PS : je ne l'ai pas testé

Salut tessrb,

Salut Pedro,

même chose...

Private Sub Worksheet_Change(ByVal Target As Range)
'
If Not Intersect(Target, [B23]) Is Nothing Then
    Rows.Hidden = False
    Rows(IIf(InStr(Target, "Sél") > 0, "35:38", IIf(InStr(Target, "plat") > 0, "36:37", "35"))).Hidden = True
End If
'
End Sub

A+

Merci à vous deux,

Mais je n’arrive pas à les exécuter... je sélectionne en B23 et rien. Est ce que le fait d’avoir fusionner des cellules pourrait causer le problème ?

Merci d’avance !

C’est bon je l’avais mise sur la mauvaise page !

Merci ☺️

Rechercher des sujets similaires à "aide vba"