Masquage sous condition

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 !

Brigitte

XLDnaute Barbatruc
Bonjour tout le monde,

Je vais continuer de chercher, mais si vous aviez le bout de code sous la main...

Comment faire une macro pour masquer (puis une autre pour démasquer) des lignes selon le contenu d'une cellule. En gros, je choisirai une colonne (H dans mon fichier pour l'instant) et si qqchse est présent (le mot "masquer" ici), en cliquant sur mon bouton masquage, ca masque. Inverse possible.

Petite cerise sur le gâteau, car j'hésite : même chose si rien dans la cellule.
Merci à vous.
 

Pièces jointes

Re : Masquage sous condition

Bonjour Brigitte,

Voici pour masquer :
VB:
Sub MasquageConditionnel()
    Application.ScreenUpdating = False
    For i = 1 To Range("H65536").End(xlUp).Row
        If Range("H" & i) = "Masquer" Then
            Range(i & ":" & i).EntireRow.Hidden = True
        End If
    Next
    Application.ScreenUpdating = True
End Sub

Et voici pour démasquer :
VB:
Sub DemasquerTout()
    Range("A1:IV65536").EntireRow.Hidden = False
End Sub

Par contre, je n'ai pas bien compris pourquoi masquer quand il n'y a rien dans la cellule. dans ce cas, tu masquerais tout ? merci de préciser exactement quel est ton souhait.

A+
 
Re : Masquage sous condition

Bonjour à tous,

Remplaces tes deux codes par ceux-çi:
Code:
Sub MasquageConditionnel()
    For i = [H65536].End(xlUp).Row To 1 Step -1
      If Cells(i, 8) <> "" Then Rows(i).EntireRow.Hidden = True
    Next i
End Sub

Sub DemasquerTout()
   Rows.EntireRow.Hidden = False
End Sub

Cordialement
 
Re : Masquage sous condition

Bonjour,

Merci à vous pour vos réponses. Suis en pleine tonte (de pelouse)... vais regarder.

Fred : en fait, c seulement un exemple, la réalité étant que je veux masquer les lignes inutiles à l'impression et à l'utilisation prioritaire (en gros, lignes avec du texte en italique, mais je ne veux pas restreindre en ce sens) et qui me sont utiles juste parfois.

Donc j'envisage de mettre qq part un mot, ou au contraire une colonne en plusss dans laquelle je mettrai le mot "masquer" ou autre bien sûr. Les autres doivent rester visibles... j'ai fait une macro à la main pour montrer ce que je veux obtenir avec les boutons.
C'est pourquoi il me faut un bouton "afficher" pour les fois où j'ai besoin de tout analyser... Il y a plein de colonnes à côté vous vous en doutez ;-)
 
Re : Masquage sous condition

JC,

J'ai pas pu résister avant de retourner dehors pour essayer ta toupie. Nickel...

Pour adapter à mon cas, si je change de colonne et si je veux, au lieu de choisir le mot "masquer", dire comme Hbenalia que je veux masquer ce qui est différent de "", est ce que je fais ainsi ?

If Range("A" & i) <>""

Hbenalia,

C'est tout à fait ca aussi... J'imagine que je remplace le 8 par le numéro de la colonne que j'utiliserai... Merci beaucoup.

Vous êtes super, je ne sais pas encore laquelle choisir....

Bisous JC
 
Dernière édition:
Masquage sous condition avec togglebutton et protection

Bonsoir,

Petit souci sur ce classeur quand je mets en musique dans la vraie version qui est "protégée" à la fermeture.
La protection empêche le togglebutton de fonctionner
Est ce possible de l'activer sans déprotéger ? j'ai par ailleurs des boutons affectés à des macros qui eux fonctionnent.
Est ce une particularité du bouton "toupie" ?

Merci à vous
 

Pièces jointes

Re : Masquage sous condition

Bonjour

En général je mets dans le Workbook open donc
Code:
Private Sub Workbook_Open()
For Each feuille In Sheets
    feuille.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
    , AllowInsertingColumns:=True, AllowDeletingRows:=True, AllowSorting:= _
    True, AllowFiltering:=True, UserInterfaceOnly:=True
Next

End Sub
 
Re : Masquage sous condition

Bonsoir à tous 🙂
Hello Brigitte 🙂 🙂

Essaie en mettant ta macro Workbook_BeforeClose plutôt en Workbook_Open, et en ajoutant la clause UserInterfaceOnly:=True :

Code:
Private Sub Workbook_Open()
For Each feuille In Sheets
    feuille.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
    , AllowInsertingColumns:=True, AllowDeletingRows:=True, AllowSorting:= _
    True, AllowFiltering:=True, UserInterfaceOnly:=True
Next
End Sub

Bises Brigitte 🙂 🙂
et Bise JC 🙂 🙂

Edit: Hello Chris 🙂 🙂
 
Re : Masquage sous condition

Bonsoir,

Merci chris, ca marche ! Je pige pas pourquoi le fait de le mettre dans workbook open c'est différent de workbook close... mais ca marche, c'est l'essentiel !

Bisous bisous et bonne nuit !

edit : je n'avais pas rafraichi, je papotai avec chris, xld ouvert. Merci Mireille, ca marche... deux filles pour une autre paumée, c cool, j'en apprends tous les jours ici.
 
Re : Masquage sous condition

Bonjour tout le monde,

Crotte, ce matin, ca rebugge : quand je clique sur afficher détail ou masquer détail, ca ne marche pas si je ne déprotège pas ma feuille avant (elle se protège à l'ouverture).

La macro est tjs celle de chris ou mireille :

Code:
Private Sub Workbook_Open()
For Each feuille In Sheets
    feuille.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
    , AllowInsertingColumns:=True, AllowDeletingRows:=True, AllowSorting:= _
    True, AllowFiltering:=True, UserInterfaceOnly:=True
Next
End Sub

Pour ceux qui arrivent sur le fil :

- j'ai une macro avec un bouton togglebutton dans une barre de titres qui me permet de masquer ou démasquer une partie des lignes de mon tableau
- le fichier protège toutes les feuilles à l'ouverture (car utilisé par plusieurs) : à la fermeture, ca ne permettait pas de pouvoir cliquer sur le togglebutton et ca marchait... jusque ce matin...

et donc

maintenant quand il s'ouvre, comme il se protège, il ne me permet pas l'accès à mon togglebutton.

Code:
Private Sub ToggleButton1_Click()
[COLOR=red]ActiveSheet.Unprotect ???[/COLOR]
If ToggleButton1.Value = True Then
Call Masquer
ToggleButton1.Caption = "Afficher Détail"
Else
Call Afficher
ToggleButton1.Caption = "Masquer Détail"
End If
End Sub

2ème solution : Pourrais je rajouter une déprotection de ma feuille dans ce togglebutton, même si ce n'est pas la meilleure solution pour moi ? Je viens d'essayer, peut être pas mis au bon endroit, ca marche pas.


Curieux... Une petite chose à ajouter dans le code du workbook open ?


Merci à vous.
 
Dernière édition:
Re : Masquage sous condition

Bonjour à tous,

Peux-tu essayer ceci dans le ThisWorkBook :
Private Sub Workbook_Open()
For Each Sh In Sheets
Sh.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
ActiveSheet.EnableSelection = xlUnlockedCells
Next
End Sub

Bises
A+ à tous
 

Pièces jointes

- 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

Discussions similaires

Réponses
5
Affichages
372
  • Question Question
Réponses
5
Affichages
630
Réponses
2
Affichages
411
Réponses
3
Affichages
432
Retour