Masquer lignes en fonction d'une condition sur cellule dynamique

Bonjour,

(Je suis débute en VBA)

Je souhaite masquer des lignes en fonction d'une condition sur une cellule qui est amenée à changer car la valeur sera entrée par un utilisateur. En effet, si la valeur de cette cellule est supérieure à la valeur de la ligne alors la ligne doit être masquée.

J'ai essayé les codes ci-dessous mais cela ne fonctionne pas...

Sub Essai()

Dim x As Variant
Dim y As Integer
x = Range("A1").Value
y = Range("A4").Value
   For y = 5 To 80

If x > y Then

 ActiveSheet.Rows(y).EntireRow.Hidden = True
Else
  ActiveSheet.Rows(y).EntireRow.Hidden = False
End If
   Next y

End Sub
Sub Macro4()
 For Each c In Worksheets("Sheet1").Range("A3:A80").Cells
 If Abs(c.Value) < Cells.Value(1, 1) Then
 Rows(NoLig).EntireRow.Hidden = True
Else
  Rows(NoLig).EntireRow.Hidden = False
End If
 Next
End Sub
Sub Macro5()

Dim FL1 As Worksheet, Cell As Range, Plage As Range
Dim Var1

    Set FL1 = Worksheets("Feuil3")
    With FL1

        Set Plage = .Range("A3:A80")
        For Each Cell In Plage

            Var1 = Range("A1").Value
If Var1 > Cell.Value Then
Rows(Var1).EntireRow.Hidden = True

End If

        Next
    End With
    Set FL1 = Nothing
    Set Plage = Nothing
End Sub

Voici mon fichier joint,

Merci par avance pour votre aide et votre temps,

Bonjour,

Pourquoi as-tu 3 macros pour faire une seul chose? Ce sont tous 3 des essais qui ne fonctionnent pas?

Oui ce sont trois essais qui ne fonctionnent pas...

Je galère depuis un bon moment déjà

Je suis ouverte à tout autre type de code !

bonjour

salut Ausecours au passage.

un exemple sans VBA

avec une colonne de pointage (grise)

bonne journée à tous

11classeur3.xlsx (12.76 Ko)

Bonjour jmd,

Pour une raison compliquée à expliquer, je ne peux pas utiliser de filtres (ni avancés/élaborés)

Rebonjour,

Ah d'accord!

Je te propose le code suivant qui n'est peut-être pas le plus optimisé au monde mais bon...

Sub Plafond()
Dim cel As Range
Application.ScreenUpdating = False

'Affichage de toutes les lignes et colonnes
Call ToutAfficher

'Parcours des cellules pour les masquer
For Each cel In Range("a3", Range("a" & Rows.Count).End(xlUp)).Cells
    If cel.Value < Cells(1, 1).Value Then
        cel.EntireRow.Hidden = True
    End If
Next cel

Application.ScreenUpdating = True
End Sub
Sub ToutAfficher()
'Affichage de toutes les lignes et colonnes
ActiveSheet.Rows.Hidden = False
ActiveSheet.Columns.Hidden = False
End Sub

Voici le fichier:

On aurait aussi pu faire un filtre par VBA prenant en critère la cellule A1, mais je n'avais pas envie de faire cette solution, si toutefois elle t'intéresse on peut se pencher dessus aussi

bonjour

salut Ausecours au passage.

un exemple sans VBA

avec une colonne de pointage (grise)

bonne journée à tous

Bonjour jmd,

Pas mal aussi comme solution, simple, efficace

re

les colonnes de pointage sont d'une puissance que tu n'imagines pas

on résout de multiples "problèmes" de manière hyper-simple, visuelle, sans formules complexes ni VBA

parfois il faut plusieurs colonnes de pointage pour décomposer le problème

parfois on crée des colonnes ET des lignes de pointage (pour imiter INDEX/EQUIV )

permet aux débutants et novices et maladroits (j'en suis ) de travailler vite et bien.

amitiés

re

les colonnes de pointage sont d'une puissance que tu n'imagines pas

on résout de multiples "problèmes" de manière hyper-simple, visuelle, sans formules complexes ni VBA

parfois il faut plusieurs colonnes de pointage pour décomposer le problème

parfois on crée des colonnes ET des lignes de pointage (pour imiter INDEX/EQUIV, avec conditions ! )

permet aux débutants et novices et maladroits (j'en suis ) de travailler vite et bien.

amitiés

Merci à tous, je suis sauvée

Rechercher des sujets similaires à "masquer lignes fonction condition dynamique"