Macro pour masquer lignes dans feuilles différentes

  • Initiateur de la discussion Initiateur de la discussion menie84
  • Date de début Date de début

menie84

XLDnaute Nouveau
Bonjour,

J'ai créé un fichier Excel comportant plusieurs feuilles : je souhaite créer une macro me permettant de masquer certaines lignes (ligne 1 à 18) dans la feuille 2 de mon classeur lorsque la case e6 de la feuille 1 est vide. Pourriez-vous m'indiquer quel code il me faut utiliser?

J'ai essayé celui-là mais il ne fonctionne pas (ce qui n'est pas très étonnant je suppose)...

'Affiche les lignes 1 à 18 si la case E6 est égale à x

Sheet("Feuil1").Select
Range("e6").Select

If Range("e6") = "x" Then
Sheet("Feuil2").Select
Rows("1:18").Select
Selection.EntireRow.Hidden = False
End If
'Masque les lignes 1 à 18 si la case E6 n'est pas égale à x

Sheet("Feuil1").Select
Range("e6").Select

If Range("e6") = "" Then
Sheet("Feuil2").Select
Rows("1:18").Select
Selection.EntireRow.Hidden = True
End If

End Sub

Merci d'avance de votre aide,

Cordialement

Melanie
 

Cousinhub

XLDnaute Barbatruc
Re : Macro pour masquer lignes dans feuilles différentes

Bonjour,

Et Bienvenue

remplace ton code, par celui-ci, à placer dans le code de la feuille 1
Clic droit sur le nom de l'onglet 1, "Visualiser le code", et coller ce code :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$E$6" Then
    With Sheets("Feuil2")
        .Rows("1:18").Hidden = IIf(Target = "", True, False)
    End With
End If
End Sub

Ainsi, lorsque tu changes la valeur de E6, les lignes se masquent ou se démasquent en fonction de la valeur vide ou non de E6..
 

mromain

XLDnaute Barbatruc
Re : Macro pour masquer lignes dans feuilles différentes

bonjour menie84 et bienvenue sur le forum,

edit: bonjour bhbh, même idée ;)

essaye en mettant ce code "sur la feuille" Feuil1
> clic droit sur l'onglet
> visualiser le code

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$6" Then
    If Target.Text = vbNullString Then
        ThisWorkbook.Sheets("Feuil2").Rows("1:18").Hidden = True
    Else
        ThisWorkbook.Sheets("Feuil2").Rows("1:18").Hidden = False
    End If
End If
End Sub
a+
 

menie84

XLDnaute Nouveau
Re : Macro pour masquer lignes dans feuilles différentes

Rebonjour!

Merci encore pour votre aide : les deux codes marchent, c'est impeccable!

J'ai maintenant une petite question complémentaire : comment puis-je créer une boucle? Plus précisement, je souhaitais masquer les lignes 1 à 18 dans ma feuille 2 lorsque ma case e6 était vide : je voudrais trouver le moyen de faire une boucle qui fasse que lorsque ma case f6 est vide, les lignes 1à 18 de ma feuille 3 soient masquées, que lorsque ma case g6 est vide les lignes 1 à 18 de ma feuille 4 soient masquées etc. Est-ce possible? Et comment?

Merci d'avance!!

:)
 

Discussions similaires

Réponses
3
Affichages
424
Réponses
12
Affichages
545
  • Question Question
Microsoft 365 Mini macro en VBA
Réponses
1
Affichages
162

Statistiques des forums

Discussions
315 297
Messages
2 118 171
Membres
113 444
dernier inscrit
Yves GUIBERT