Afficher/Masquer ligne selon résultat dans cellules référence
Bonjour à tous,
Le problème auquel je suis confronté actuellement sera, j'en suis sûr, réglé par un coup de baguette magique. (surtout grace à la compétence de l'un d'entre vous.
Situation:
J'ai un formulaire où des résultat doivent être inscrits dans différentes cellules. Selon le résultat choisi (0;1;2;3), je souhaite que mon formulaire s'adapte selon l'indication inscrite par l'utilisateur en affichant ou masquant des lignes.
Mon code actuel (essai non probant) - partie en gras:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Range("AU16") = Now
Range("BJ16").Value = Format(ActiveWorkbook.BuiltinDocumentProperties("Last Author"))
'------------------------------------------------------------------------------------------------------------------
'Afficher ou masquer les lignes selon résultats dans cellules
'------------------------------------------------------------------------------------------------------------------ Résultat 1
'Afficher ou masquer premier ?l?ment
If BP20 = "3" Then
Rows("24:36").EntireRow.Hidden = True
If BP20 = "0" Then
Rows("24:36").EntireRow.Hidden = True
If BP20 = "2" Then
Rows("24:36").EntireRow.Hidden = True
If BP20 = "1" Then
Rows("24:36").EntireRow.Hidden = True
'------------------------------------------------------------------------------------------------------------------ Résultat 2
[b] 'Afficher ou masquer premier ?l?ment
If BU20 = "3" Then
Rows("38:50").EntireRow.Hidden = True
If BU20 = "0" Then
Rows("38:50").EntireRow.Hidden = True
If BU20 = "2" Then
Rows("38:50").EntireRow.Hidden = True
If BP20 = "1" Then
Rows("38:50").EntireRow.Hidden = True[/b]
'------------------------------------------------------------------------------------------------------------------
End If
Application.EnableEvents = True
End Sub
Résultat attendu:
Je souhaite un code évidemment plus simple (et qui fonctionne) pour pouvoir mettre plusieurs cellules de résultats en correspondances à plusieurs lignes à afficher/masquer selon le résultat choisi.
Merci d'avance pour vos lumières.
Cordialement
Willau
Bonjour,
'Afficher ou masquer premier ?l?ment
If Range("BP20") >= 0 And Range("BP20") <= 3 Then
Rows("24:36").EntireRow.Hidden = True
End If
'------------------------------------------------------------------------------------------------------------------ Résultat 2
'Afficher ou masquer premier ?l?ment
If Range("BU20") >= 0 And Range("BU20") <= 3 Then
Rows("38:50").EntireRow.Hidden = True
End If
Super ! Voilà de quoi avancer
J'ai une petite question pour le coup supplémentaire:
Est-il possible de lancer la macro au changement du résultat de la cellule sans passer par un
"Private Sub Worksheet_Change(ByVal Target As Range)"
mais en inscrivant la macro dans un module ?
Je m'explique, en inscrivant le code dans "Worksheet_Change" la macro est activée à chaque inscription dans ma feuille.
Je souhaite intégrer d'autres options qui ne sont pas activées si je rentre un date dans une autre cellule par exemple…
Cordialement
Willau
Re,
Ajoute après la ligne du Sub Change...
If Not Application.Intersect(Target, Range("La plage ou tu places les 0,1,2,3")) Is Nothing Then
Sans oublier le
End if
avant le
End Sub