Problème sur code n'autorisant que la copie de valeur
Bonjour au forum,
J'essaie d'écrire un code pour n'autoriser que le copier/coller de valeur, quelque soit la méthode utilisée, pour un fichier que je dois partager avec beaucoup de collaborateurs.
Ceux-ci utilisent régulièrement le copier/coller ainsi que le glisser/déposer pour renseigner le fichier, qui comporte beaucoup de bordures différentes, et vu que celles-ci sont aussi copiées, le fichier ne ressemble plus à rien en quelques jours d'utilisation...
Ce code fonctionne très bien pour un copier/coller via clique droit et raccourci clavier :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
On Error Resume Next 'sécurité
With Application
If .CutCopyMode Then
.EnableEvents = False
.Undo
Selection.PasteSpecial xlPasteValues
.OnUndo "", ""
.OnRepeat "", ""
.EnableEvents = True
End If
End With
End SubMais ce code là efface automatiquement le contenu de la cellule juste après la frappe (et est censé limiter le copier/coller aux valeurs, avec méthode clique droit, clavier et glisser/déposer) :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
On Error Resume Next 'sécurité
With Application
If .CutCopyMode Then
.EnableEvents = False
.Undo
Selection.PasteSpecial xlPasteValues
.OnUndo "", ""
.OnRepeat "", ""
.EnableEvents = True
ElseIf .CellDragAndDrop Then
.EnableEvents = False
.Undo
Selection.PasteSpecial xlPasteValues
.OnUndo "", ""
.OnRepeat "", ""
.EnableEvents = True
End If
End With
End SubJ'ai un peu du mal à voir mon erreur...
Auriez-vous une idée ?
Merci !
Nico.