Microsoft 365 Masquer ligne-macro

DJARNAUD

XLDnaute Occasionnel
Bonjour à tous,

j'ai créé la macro ci-dessous, elle fonctionnait trés bien mais à présent j'ai le message d'erreur suivant:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = 0

Rows("17:18").EntireRow.Hidden = False
If Range("C12").Value = "PLT" Then Worksheets("Projection").Rows("17:18").EntireRow.Hidden = True
If Range("C12").Value = "CBI" Then Worksheets("Projection").Rows("17:18").EntireRow.Hidden = False

Application.ScreenUpdating = -1
End Sub

"Impossible de définir la propriété Hidden de la classe Range.

Pourriez vous m'aider?

Merci
 

Jacky67

XLDnaute Barbatruc
Bonjour à tous,

j'ai créé la macro ci-dessous, elle fonctionnait trés bien mais à présent j'ai le message d'erreur suivant:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = 0

Rows("17:18").EntireRow.Hidden = False
If Range("C12").Value = "PLT" Then Worksheets("Projection").Rows("17:18").EntireRow.Hidden = True
If Range("C12").Value = "CBI" Then Worksheets("Projection").Rows("17:18").EntireRow.Hidden = False

Application.ScreenUpdating = -1
End Sub

"Impossible de définir la propriété Hidden de la classe Range.

Pourriez vous m'aider?

Merci
Bonjour,
Est-ce que C12 est dans la feuille "Projection" ?
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Re..
Tester ceci
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False: Application.EnableEvents = False
    With Worksheets("Projection")
        .Rows("17:18").Hidden = False
        If UCase(Range("C12").Value) = "PLT" Then .Rows("17:18").Hidden = True
    End With
    Application.ScreenUpdating = True: Application.EnableEvents = True
End Sub
Si cela ne devait pas fonctionner, mettre le classeur en ligne
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, DJARNAUD, Jacky67

Si j'ai bien compris, est-ce le bout de code ci-dessous fait ce qu'il est censé faire?
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Me.Rows("17:18").EntireRow.Hidden = Switch([C12] = "PLT", True, [C12] = "CBI", False)
End Sub
 

Jacky67

XLDnaute Barbatruc
Bonsoir le fil, DJARNAUD, Jacky67

Si j'ai bien compris, est-ce le bout de code ci-dessous fait ce qu'il est censé faire?
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Me.Rows("17:18").EntireRow.Hidden = Switch([C12] = "PLT", True, [C12] = "CBI", False)
End Sub
Hello JM
Switch, j'avoue que je n'utilise pas beaucoup, à tort certainement :rolleyes:
Néanmoins, "Me.Rows("17:18")" est sur une autre feuille que [c12], alors
Shetts("Projection").Rows("17:18")……...
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

DJARNAUD
Pourquoi n'y a-t-il aucune procédure Private Sub Worksheet_Change(ByVal Target As Range)
Ni aucune feuille nommée Projection?
:rolleyes:

Si le code est disposé au bon endroit (donc dans le code de la feuille idoine)
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Me.Rows("17:18").EntireRow.Hidden = Switch([C12] = "PLT", True, [C12] = "CBI", False)
End Sub
Il se passe des choses sur la feuille quand on change la valeur de la cellule C12
(avec la liste déroulante)
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 609
Messages
2 090 194
Membres
104 449
dernier inscrit
Miguel937