Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fonction Masquer

4 réponses
Avatar
BHY
J'aimerai créer une fonction qui permette en fonction de la valeur d'une
cellule de masquer ou non un ensemble de lignes consécutives.
Est-ce possible avec une fonction ?
Si oui comment ?
Si non quelle est la meilleure façon pour obtenir le même résultat ?
--
BHY

4 réponses

Avatar
anonymousA
Bonjour,

Avec une fonction c'est impossible. Avec l'utilisation d'une procédure
evenementielle de feuille de type worksheet_Change , c'est possible.

A mettre dans le module de feuille

Ici, je me place dans l'hypothèse où c'est le changement de la cellule
A1 qui fait déclencher le masquage des lignes 2 à 5. Ce qui suit est un
exemple, il y a bien sur d'autres manières de faire par programmation.

Private Sub Worksheet_Change(ByVal Target As Range)

With Target
If .Item(1).Address(0, 0) = "A1" Then
Range(.Offset(1, 0), .Offset(4, 0)).EntireRow.Hidden = True
End If
End With

End Sub

A+



J'aimerai créer une fonction qui permette en fonction de la valeur d'une
cellule de masquer ou non un ensemble de lignes consécutives.
Est-ce possible avec une fonction ?
Si oui comment ?
Si non quelle est la meilleure façon pour obtenir le même résultat ?


Avatar
BHY
Merci pour l'info, effectivement les lignes sont masquées quand A1 change.
Question subsidiaire, comment je les rend à nouveau visibles ?
Est-ce possible par exemple de masquer si A1=1 et rendre visible si A1=2
Merci
--
BHY



Bonjour,

Avec une fonction c'est impossible. Avec l'utilisation d'une procédure
evenementielle de feuille de type worksheet_Change , c'est possible.

A mettre dans le module de feuille

Ici, je me place dans l'hypothèse où c'est le changement de la cellule
A1 qui fait déclencher le masquage des lignes 2 à 5. Ce qui suit est un
exemple, il y a bien sur d'autres manières de faire par programmation.

Private Sub Worksheet_Change(ByVal Target As Range)

With Target
If .Item(1).Address(0, 0) = "A1" Then
Range(.Offset(1, 0), .Offset(4, 0)).EntireRow.Hidden = True
End If
End With

End Sub

A+



J'aimerai créer une fonction qui permette en fonction de la valeur d'une
cellule de masquer ou non un ensemble de lignes consécutives.
Est-ce possible avec une fonction ?
Si oui comment ?
Si non quelle est la meilleure façon pour obtenir le même résultat ?





Avatar
anonymousA
Private Sub Worksheet_Change(ByVal Target As Range)

With Target
If .Item(1).Address(0, 0) = "A1" Then
If .value =1 then Range(.Offset(1, 0), .Offset(4,
0)).EntireRow.Hidden = True
elseif .value=2 then
Range(.Offset(1, 0), .Offset(4, 0)).EntireRow.Hidden = false
end if
End If
End With

End Sub

A+


Merci pour l'info, effectivement les lignes sont masquées quand A1 change.
Question subsidiaire, comment je les rend à nouveau visibles ?
Est-ce possible par exemple de masquer si A1=1 et rendre visible si A1=2
Merci


Avatar
BHY
Merci, Super !
--
BHY



Private Sub Worksheet_Change(ByVal Target As Range)

With Target
If .Item(1).Address(0, 0) = "A1" Then
If .value =1 then Range(.Offset(1, 0), .Offset(4,
0)).EntireRow.Hidden = True
elseif .value=2 then
Range(.Offset(1, 0), .Offset(4, 0)).EntireRow.Hidden = false
end if
End If
End With

End Sub

A+


Merci pour l'info, effectivement les lignes sont masquées quand A1 change.
Question subsidiaire, comment je les rend à nouveau visibles ?
Est-ce possible par exemple de masquer si A1=1 et rendre visible si A1=2
Merci