Masquer des lignes automatiquement

Bonjour,

Je souhaiterais créer une commande automatique VBA sans MACRO pour masquer des lignes dont la valeur d'une cellule est 0.

Cependant je ne connais pas du tout le langage VBA et vous demande de l'aide pour réaliser tout ça.

La règle serais sur l'onglet "Etat 113" si la cellule de la ligne concernée en colonne C = 0 alors la ligne concernée doit être masquée.

Merci à tous pour votre aide

cordialement

Fred

Bonjour,

Je souhaiterais créer une commande automatique VBA sans MACRO pour masquer des lignes dont la valeur d'une cellule est 0.

Cependant je ne connais pas du tout le langage VBA et vous demande de l'aide pour réaliser tout ça.

Là, c'est contradictoire car VBA c'est des macros !

Hervé.

bonjour

je pense que je me suis mal exprimé alors.

ce que je ne veux pas c'est avoir besoin de cliquer sur un bouton pour cacher les lignes, mais qu'elles se cachent automatiquement (toutes les valeurs des lignes sont calculées dans un autre onglet)

cordialement

Fred

Bonjour,

En mode Développeur - Visual Basic,

Dans le woorksheet de l'ongle "Etat 113", mettre le code suivant

Dim c

For Each c In Sheets("List").Range("C1:C65000")

If c.Value = 0 Then

c.EntireRow.Hidden = True

End If

Next c

Bonsoir,

Tu mets ce code dans le module de la feuille où tu fait les modifications des valeurs (par exemple dans la feuille "Saisie" ). A chaque fois que tu modifie une valeur, les lignes seront cachées ou affichées en feuille "Etat 113" :

'à mettre dans le module de la feuille où les cellules de la feuille "Etat 113" font référence
'la feuille où sont faites les modifications
Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Plage As Range
    Dim Cel As Range

    'le masquage est fait sur la feuille "Etat 113" en colonne C
    With Worksheets("Etat 113")

        Set Plage = .Range(.Cells(1, 3), .Cells(.Rows.Count, 3).End(xlUp))

    End With

    'parcours la plage et cache ou affiche les lignes en fonction de leur valeur
    For Each Cel In Plage

        If Cel.Value = 0 Then

            Cel.EntireRow.Hidden = True

        Else

            Cel.EntireRow.Hidden = False

        End If

    Next Cel

End Sub

Hervé.

Merci pour vos propositions, mais aucune des 2 ne fonctionne.

Peut etre je ne sais pas faire la manipulation???

Que dois-je faire?

Fred

Bonjour,

voici un code que Banzai64 m'avait fourni. Ce code fonctionne à la perfection, d'ailleurs s'il lit ce message je le remercie une nouvelle fois ^^

Le code en question :

Private Sub Worksheet_Activate()
Dim J As Long

  Application.ScreenUpdating = False
  Rows.Hidden = False
  For J = 3 To 520
    If Range("C" & J) = 0 Then Rows(J).Hidden = True
  Next J
End Sub
 

Ce code fonctionne pour la feuille en question (ici Etat 113) pour les Cellule C3 à C520

Voici les étapes à respecter pour que le code fonctionne :

1) Ouvrir le document

2) Faire Alt+F11

3) Cliquer sur le "-" de VBAProject (classeur1) pour qu'il se transforme en "+"

4) Cliquer sur le "-" de Microsoft Excel Objects pour qu'il se transforme en "+"

5) Il se peut que le "+" de 3) et 4) soit déjà afficher lorsque vous faites Alt+F11

6) Vous verrez apparaître les noms de vos feuilles

7) Cliquer sur la feuille qui vous intéresse : ici Etat113

8 ) Dans la fenêtre qui vient de s'ouvrir insérer le code ci-dessus

9) et voilà

Cette feuille s'actualisera automatiquement à chaque fois que vous la visiterez.

Cordialement.

Bonjour à tous et merci pour votre participation , mais aucune proposition ne fonctionne... snif

à bientôt de vous lire pour d'autres propositions.

Fred

Bonjour,

c'est impossible... Il doit y avoir une mauvaise manipulation quelque part. As tu pensés d'enregistrer le fichier sous xlsm ? (prenant en charge les macros )

Greg.leo a écrit :

Bonjour,

c'est impossible... Il doit y avoir une mauvaise manipulation quelque part. As tu pensés d'enregistrer le fichier sous xlsm ? (prenant en charge les macros )

Merci beaucoup à tous...

Greg.leo avait raison, c'etait impossible.

le fichier était enregistré en XLSB...

du coup les macros ne fonctionnaient pas.

encore merci à tous

à bientôt

Fred

Rechercher des sujets similaires à "masquer lignes automatiquement"