Macro pour masquer des lignes si cellule = 0

  • Initiateur de la discussion Initiateur de la discussion FranckS
  • 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 !

FranckS

XLDnaute Nouveau
Bonjour,

Je ne connais pas le VBA mais je m'inspire de ce que trouve sur les forums ou alors j'ai pu demandr souvent votre aide par le passé.

J'ai fait une macro qui masque des lignes si des cellules de la colonne A qui sont égales à 0.
Elle fonctionne très bien mais qui est "longue" à se mettre en oeuvre.
Auriez-vous une idée différente qui ferait la même chose mais plus rapidement afin de gagner en efficacité ?

Voici la macro :

Private Sub ToggleButton1_Click()

For I = 8 To 69 'Ici le nombre le ligne

If Range("A" & I) = 0 Then ' Je teste si la cellule A est vide
Rows(I).Select 'Sélectionne la ligne
End If

If ToggleButton1.Value Then
Selection.EntireRow.Hidden = True 'Masque la ligne
End If

If Not ToggleButton1.Value Then
Selection.EntireRow.Hidden = False 'Affiche la ligne
End If

Next I

For I = 201 To 243 'Ici le nombre le ligne

If Range("A" & I) = 0 Then ' Je teste si la cellule A est vide
Rows(I).Select 'Sélectionne la ligne
End If

If ToggleButton1.Value Then
Selection.EntireRow.Hidden = True 'Masque la ligne
End If

If Not ToggleButton1.Value Then
Selection.EntireRow.Hidden = False 'Affiche la ligne
End If

Next I

For I = 253 To 267 'Ici le nombre le ligne

If Range("A" & I) = 0 Then ' Je teste si la cellule A est vide
Rows(I).Select 'Sélectionne la ligne
End If

If ToggleButton1.Value Then
Selection.EntireRow.Hidden = True 'Masque la ligne
End If

If Not ToggleButton1.Value Then
Selection.EntireRow.Hidden = False 'Affiche la ligne
End If

Next I

If ToggleButton1.Value = True Then
ToggleButton1.Caption = "OF validé"
Else
ToggleButton1.Caption = "Valider OF"
End If

End Sub


Merci d'avance pour votre aide.

Bonne journée,
Franck
 
Bonjour @FranckS,

Essayez (pas testé puisque pas de fichier joint) :
VB:
Private Sub  ToggleButton1 _Click()
Dim xcell, etat As Boolean
   Application.ScreenUpdating = False
   etat = ( ToggleButton1 =True)
   For Each xcell In Range("A8:A69,A201:A243,A253:A267")
      If xcell = 0 Then xcell.EntireRow.Hidden = etat
   Next xcell
    ToggleButton1.Caption = IIf(etat, "OF validé", "Valider OF")
End Sub
 
Dernière édition:
Bonjour mapomme,

Ca fonctionne parfaitement : c'est de la bombe ! Désolé, je suis trop satisfait 🙂 . C'est exactement ce qu'il fallait. Bravo et merci pour votre temps.

Pour ceux qui recopieraient la macro, il y a juste un espace à enlever entre ToggleButton1 et .Caption

Merci encore et bonne fin de journée.
Franck
 
- 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
235
Réponses
8
Affichages
233
Réponses
10
Affichages
281
Réponses
4
Affichages
177
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Retour