Re : [RESOLU (ou presque] Macro : Set + .Close fait planter Excel
Bonjour
Merci pour vos aides :
Le but de ma question était d'empêcher le cliquer déplacer, action tellement destructrice de formules innocentes.
C'est une adaptation d'un code trouvé par une collègue, dont je n'ai pas la source.
Je l'ai modifier pour supprimer le "set".
Le but ici est de pouvoir étirer les cases, mais pas les déplacer.
L'option existante (sous 2003) permet de désactiver le déplacement, mais désactive aussi l'étirement (pourtant très utile pour éviter les courbatures).
Le code, à mettre dans une feuille :
Dim A As String
Dim B As Integer
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> A And Target.Count = B Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
A = Target.Address
B = Target.Count
End Sub
Le programme marche car lorsque l'on étire ou déplace, le "Worksheet_Change" renvoie un range avant que le Worksheet_SelectionChange n'intervienne. Les plages sont donc différentes, ce qui permet d'appeler l'annuler.
J'ai ajouter au programme un '.count' :
lors d'un étiré, la plage change et je ne souhaite par l'annulation. Avec le '.count', je vérifie que la plage reste de même taille pour l'annuler. Car on ne peux pas étirer et déplacer en même temps.
Cordialement
Olivier