Problème sous Excel 2021 avec bouton effacer et code
l
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 SubCette 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 SubJe 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 Subet après faire le nécessaire pour montrer/cacher vos lignes
l
Bonjour,
Merci infiniment pour votre retour rapide.
Ma feuille Excel fonctionne à nouveau correctement.
Je vous souhaite une excellente soirée