Microsoft 365 Masquer ligne-macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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:
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
 
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
 
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 🙄
Néanmoins, "Me.Rows("17:18")" est sur une autre feuille que [c12], alors
Shetts("Projection").Rows("17:18")……...
 
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?
🙄

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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
703
Réponses
7
Affichages
316
Réponses
4
Affichages
579
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour