Worksheet_change / Calcul automatique ?

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$B$19" Then
    Select Case Target.Value

        Case "": Sheets("GAIA").Rows("4:153").Hidden = False

        Case "1":
                  Sheets("GAIA").Rows("4:13").Hidden = False
                  Sheets("GAIA").Rows("14:153").Hidden = True

        Case "2": Sheets("GAIA").Rows("4:23").Hidden = False
                 Sheets("GAIA").Rows("24:153").Hidden = True

                 End Select
End If
End Sub

Hello, j'ai un souci avec ce code. En effet, la valeur B19 est calculé selon une formule. Donc dès que la formule tourne et que la valeur se met à jour le "worksheet change" ne marche pas. (Alors qu'il marche si je rentre la valeur à la main, mais c'est pas le but). J'ai cru voir qu'il fallait utiliser "Calculate"... mais je ne sais pas comment écrire le code du coup avec cela...

Un petit coup de main ?

Merci d'avance

Julien

Bonjour Djulito

En effet, la valeur B19 est calculé selon une formule. Donc dès que la formule tourne et que la valeur se met à jour le "worksheet change" ne marche pas.

C'est donc absolument logique, puisque un événement est exécuté seulement lorsque celui-ci se produit (heureusement )

Donc perso, ce que je ferais

Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case Range("$B$19").Value
        Case "": Sheets("GAIA").Rows("4:153").Hidden = False

        Case 1:
                  Sheets("GAIA").Rows("4:13").Hidden = False
                  Sheets("GAIA").Rows("14:153").Hidden = True

        Case 2: Sheets("GAIA").Rows("4:23").Hidden = False
                 Sheets("GAIA").Rows("24:153").Hidden = True

      End Select
End Sub

@+

Merveilleux ! Ca marche merci beaucoup.

J'avais construit ca avec des bout de code par ci par là...

Bonjour

Si c'est bien au changement du résultat de la formule, on peut tester aussi comme ceci :

Private Sub Worksheet_calculate()

With Sheets("GAIA")
    Select Case .Range("B19")

        Case "": .Rows("4:153").Hidden = False

        Case "1"
            .Rows("4:13").Hidden = False
            .Rows("14:153").Hidden = True

        Case "2"
            .Rows("4:23").Hidden = False
            .Rows("24:153").Hidden = True
    End Select
End With
End Sub

J'ai supposé que B19 est bien sur la feuille GAIA

Cordialement

Salut Dan,

Tu as du faire un petit oubli ! Grace à l'utilisation du With Sheets("GAIA"), les Sheets("GAIA") dans le reste du code peuvent être supprimés.

A+

Re

@Pedro : exact... voilà c'est corrigé

A+

Rechercher des sujets similaires à "worksheet change calcul automatique"