Masquer automatiquement des lignes excel

Résolu/Fermé
toopey77 - 26 juil. 2012 à 18:35
 toopey77 - 26 juil. 2012 à 19:40
Bonjour,

Pourriez vous m'indiquez comment procéder pour cacher automatiquement des lignes en fonction de la valeur d'une cellule?

Ici : Si D4 = 1 => Ligne 9 à 88 maqués
Si D4 = 2 => Ligne 11 à 88 masqués
Si D4 = 3 => Ligne 13 à 88 maqués
Si D4 = 4 => Ligne 15 à 88 masqués etc...

Merci d'avance pour l'aide précieuse que vous pourrez me fournir ;)



1 réponse

Raymond PENTIER Messages postés 56688 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 28 septembre 2022 17 183
26 juil. 2012 à 19:13
Tu as déjà écrit ou utilisé des macros ?
0
Oui un peu;):
voici celle que j'ai mis en place pour faire un essais:


Sub VBA()
If Range("d4") = "1" Then
Rows("9:88").Select
Selection.EntireRow.Hidden = True
End If
If Range("d4") = "2" Then
Rows("11:88").Select
Selection.EntireRow.Hidden = True
End If
If Range("d4") = "3" Then
Rows("13:88").Select
Selection.EntireRow.Hidden = True
End If
If Range("d4") = "4" Then
Rows("15:88").Select
Selection.EntireRow.Hidden = True
End If

If Range("d4") = "0" Then
Rows("9:88").Select
Selection.EntireRow.Hidden = False
End If
End Sub



S'agissant d'un test, je n'ai fais que jusqu'à 4.
Mon problème dans l'immédiat (ou la seule solution que j'ai trouvée)
C'est si je met 1 en D4 toute mes lignes se masquent bien...

seulement si je met 4 derrière rien ne se passe...

Il faut que je réinitialise en mettant 0

et ensuite mettre 4 pour que mes lignes se masquent bien...

Ce n'est pas très grave mais j'aimerais savoir si il est possible de faire autrement?

Merci à vous
0
C'est bon j'ai trouvé tout seul en faite ;))
C'est logique:

il suffis de sélectionner les cellules à remettre en place et de programmer leur retour ;))

Pour ceux qui serait dans le même cas que moi voici la réponse ;)

Sub VBA()
If Range("d4") = "1" Then
Rows("9:88").Select
Selection.EntireRow.Hidden = True
End If

If Range("d4") = "2" Then
Rows("11:88").Select
Selection.EntireRow.Hidden = True
Rows("9:10").Select
Selection.EntireRow.Hidden = False
End If

If Range("d4") = "3" Then
Rows("13:88").Select
Selection.EntireRow.Hidden = True
Rows("9:12").Select
Selection.EntireRow.Hidden = False
End If
If Range("d4") = "4" Then
Rows("15:88").Select
Selection.EntireRow.Hidden = True
Rows("9:14").Select
Selection.EntireRow.Hidden = False
End If

Allez merci et bonne soirée.

cordialement
0