Forcer Copier Valeur uniquement

gr12sable

XLDnaute Nouveau
Bonjour,

Je souhaiterai réinventer la roue, en VBA ....
Enfin plus exactement je souhaiterai, pour proteger certaines cellules, n'autoriser que le copier valeur aux utilisateurs et celà de manière transparente.

En résumé lorsque l'utilisateurs utilise les raccourci ctl+C et ctl+v, celà fasse un copier / Coller Valeur.

Es-ce possible ?

Merci
 

stefan373

XLDnaute Occasionnel
Bonsoir gr12sable et le forum.
Trouvé ceci sur le net.
A coller dans un module et affecter la macro au raccourci clavier CTRL + V. :)

Code:
Sub Collage_Special_Valeur()
' Raccourci clavier: Ctrl+v à définir

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End Sub

A +
 

job75

XLDnaute Barbatruc
Re : Forcer Copier Valeur uniquement

Re,

Si l'on veut que le collage spécial/Valeur ait lieu quelle que soit la commande utilisée pour Coller, placer cette macro dans ThisWorkbook :

Code:
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 Sub

A+
 

David

XLDnaute Occasionnel
Re : Forcer Copier Valeur uniquement

Salut

Je viens de tester la solution de job75, ça marche, j'ai juste un petit soucis de temps, le copier coller mets plusieurs secondes à la place d'être instantané, y a moyen d'améliorer ça ?

Merci
 

job75

XLDnaute Barbatruc
Re : Forcer Copier Valeur uniquement

Bonjour David,

Peut-être des formules lourdes et nombreuses qui se recalculent...

A tout hasard essayez :

Code:
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
    .Calculation = xlManual
    .Undo
    Selection.PasteSpecial xlPasteValues
    .OnUndo "", ""
    .OnRepeat "", ""
    .Calculation = xlAutomatic
    .EnableEvents = True
  End If
End With
End Sub
A+
 

David

XLDnaute Occasionnel
Re : Forcer Copier Valeur uniquement

Merci job75

Pas mieux en enlevant le calcul automatique. Je verrai demain matin, bizarre que si je le fais manuellement ça soit instantané et pas avec la macro.

Je te tiens au courant demain.

Merci
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 896
Membres
103 404
dernier inscrit
sultan87