Masquer des lignes avec formules

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

syllage

Guest
Bonjour à toutes et à tous,

Voici mon problème : (je débute en vba)

Dans mon projet, je cherche à masquer/afficher à l'aide d'un bouton les lignes dont la formule en colonne A se reporte à une cellule vide (que je remplie mano en cas de besoin) dans une autre feuille du classeur.

Je suis arrivé pour le moment au code suivant :

Private Sub CommandButton2_Click()
ActiveSheet.Unprotect
CommandButton2.Caption = IIf(CommandButton2.Caption = "Masquer", "Afficher", "Masquer")
Range("A8:A105").EntireRow.Hidden = IIf(CommandButton2.Caption = "Masquer", False, True)
End Sub

mais ceci me masque toutes les lignes nommé par Range.

Si je met ce code :

Private Sub CommandButton2_Click()
ActiveSheet.Unprotect
CommandButton2.Caption = IIf(CommandButton2.Caption = "Masquer", "Afficher", "Masquer")
Range("A8:A105").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = IIf(CommandButton2.Caption = "Masquer", False, True)
End Sub

il me masque seulement les quelques lignes (A98:A105) qui n'ont pas de formules.

Merci pour votre aide.
 
Re : Masquer des lignes avec formules

phlaurent55,

Si ce que vous voulez me dire es de joindre un fichier pour mieux visualisé mon problème, il suffisait de me le demander mais il faut tout d'abord que je recrée un classeur car le miens es beaucoup trop volumineux et comporte 44 feuilles.

Mais je me met au travail et je le joint dès que possible.

Si ce n'est pas ce que vous vouliez me dire et bien dite le moi clairement.

cdt
 
Re : Masquer des lignes avec formules

Je reprend tout depuis le début :

Bonjour à toutes et à tous,

Voici mon problème : (je débute en vba)

Dans mon projet, je cherche à masquer/afficher à l'aide d'un bouton les lignes dont la formule en colonne A de la feuille "annuaire" se reporte à une cellule vide (que je remplie à la main en cas de besoin) dans la feuille "chantiers" de ce même classeur.

Je suis arrivé pour le moment aux codes suivant :

Private Sub CommandButton1_Click()
CommandButton1.Caption = IIf(CommandButton1.Caption = "Masquer", "Afficher", "Masquer")
Range("A3:A20").EntireRow.Hidden = IIf(CommandButton1.Caption = "Masquer", False, True)
End Sub

mais ceci me masque toutes les lignes nommé par Range.

Si je met ce code :

Private Sub CommandButton1_Click()
CommandButton1.Caption = IIf(CommandButton1.Caption = "Masquer", "Afficher", "Masquer")
Range("A8:A105").SpecialCells(xlCellTypeBlanks).En tireRow.Hidden = IIf(CommandButton1.Caption = "Masquer", False, True)
End Sub

il me masque seulement les quelques lignes qui n'ont pas de formules (s'il y en as).

Je vous joint un fichier en pièce jointe pour appuyé ma demande, je tiens à précisé que ce classeur n'est pas celui sur lequel je travail mais juste un exemple.

Merci d'avance pour votre aide.
 

Pièces jointes

Re : Masquer des lignes avec formules

Bonjour,

Merci à celles et ceux qui ce seront penché sur mon soucis mais je viens de trouvé la solution que je copie ci-dessous pour ceux qui aurait besoin :

Private Sub CommandButton2_Click()
CommandButton2.Caption = IIf(CommandButton2.Caption = "Masquer", "Afficher", "Masquer")
Range("A4:A21").Select
Selection.EntireRow.Hidden = IIf(CommandButton2.Caption = "Masquer", False, True)
Range("A1").Select
End Sub

Private Sub masque()
For Each c In Range("A4", "A21")
For i = 0 To Range("A1").Column
If c.Offset(0, i) <> 0 Then
n = 1
End If
Next
If n <> 1 Then
c.EntireRow.Hidden = True
End If
n = 0
Next
End Sub

Pour rappel à celles et ceux qui aurait besoin : cette commande fonctionne avec un bouton de commande, concernant les plages d'utilisation il suffi de les remplacer par les votres.

Bon courage et bonne continuation.
 
Re : Masquer des lignes avec formules

Re Aurore C,

A première vu le code fonctionne, je le test dans mon fichier original pour être sur et je tiens au courant mais pour ma part je pense que cela fera l'affaire.
 
Re : Masquer des lignes avec formules

re,

Cela fonctionne dans mon classeur original mais il a fallu que je change "" en " " sinon cela n'était pas pris en compte.

Donc le code es le suivant :

Private Sub ToggleButton1_Click()
Dim x As Range

With ToggleButton1
For Each x In Range("a3:a20")
If x = " " Then Rows(x.Row).Hidden = .Value
Next x
.Caption = IIf(.Caption = "Afficher", "Masquer", "Afficher")
End With
End Sub

Merci encore une foir Aurore C de m'avoir aider, bonne soirée.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
XL 2019 Code VBA
Réponses
12
Affichages
891
C
Réponses
14
Affichages
1 K
C
S
Réponses
19
Affichages
3 K
Retour