Problème sous Excel 2021 avec bouton effacer et code

Bonjour à tous,

Je rencontre un souci avec avec mon bouton effacer dans mes documents Excel. J'utilise ce code :

Sub Efface2()
 If MsgBox("Etes-vous certain de vouloir effacer le formulaire ? Cette action ne peut pas être annulée !", vbYesNo, "Demande de confirmation") = vbYes Then
 Dim plage As Range, cel As Range, c As Range
  Set plage = Sheets("Pro - Flexible").Range("A1:X400")
   For Each cel In plage
     If Not cel.MergeArea.Locked Then cel.MergeArea.ClearContents
   Next cel

   End If
   End Sub

Cette commande fonctionne parfaitement bien sauf dans mes pages qui ont ce code là :

Private Sub Worksheet_Change(ByVal Target As Range)
   Select Case Target.Address
        Case Me.Range("selection_1").Address:
            Select Case Target.Value
                Case "Non":
                     Me.Rows("101:102").EntireRow.Hidden = False
                     Me.Rows("103:106").EntireRow.Hidden = True
                Case "Oui":
                     Me.Rows("101:102").EntireRow.Hidden = True
                     Me.Rows("103:106").EntireRow.Hidden = False
            End Select
   Case Me.Range("selection_2").Address
            Select Case Target.Value
                Case "FV411 F":
                    Me.Rows("259:260").EntireRow.Hidden = False
                    Case "FV412 F":
                    Me.Rows("259:260").EntireRow.Hidden = False
                    Case "FV413 F":
                    Me.Rows("259:260").EntireRow.Hidden = False
                    Case "FV421 I":
                    Me.Rows("259:260").EntireRow.Hidden = False
                Case Else:
                    Me.Rows("259:260").EntireRow.Hidden = True
            End Select
    End Select
End Sub

Je n'avais aucun souci avec Excel 2010 ni Excel 2019 mais impossible sous Excel 2021. Quand je clique sur le bouton, le CPU part à 100%, et soit Excel finit par planter, soit la commande s’exécute mais très très lentement.

Avez vous une idée?

Je vous en remercie par avance.

Salutations

bonjour ludo88, bloquer les events un moment avec

Sub Efface2()
 If MsgBox("Etes-vous certain de vouloir effacer le formulaire ? Cette action ne peut pas être annulée !", vbYesNo, "Demande de confirmation") = vbYes Then
 Dim plage As Range, cel As Range, c As Range
  Set plage = Sheets("Pro - Flexible").Range("A1:X400")
application.enableevents=false   '***********************************
For Each cel In plage
     If Not cel.MergeArea.Locked Then cel.MergeArea.ClearContents
   Next cel
application.enableevents=true '***************************************
   End If
   End Sub

et après faire le nécessaire pour montrer/cacher vos lignes

Bonjour,

Merci infiniment pour votre retour rapide.

Ma feuille Excel fonctionne à nouveau correctement.

Je vous souhaite une excellente soirée

Rechercher des sujets similaires à "probleme 2021 bouton effacer code"