GNT sans publicité, site mobile, fonctionnalitées exclusives...

Empêcher copier/coller vers un autre classeur ou une autre application

Le
renroy
Bonjour à tous,

Je fais appel à vos lumières et vos solutions parfois géniales à de=
s
problèmes pointilleux.

J'ai un classeur Excel comportant quelques onglets d'information et
que je souhaite rendre disponible à un utilisateur. Je souhaite
permettre à cet utilisateur de compléter l'information des onglets
existants s'il le souhaite mais je ne veux pas lui permettre de copier
l'information vers un autre classeur ou vers une autre application
(par exemple: Word, Bloc-Note, etc.). Est-ce possible ?

J'ai inséré une macro vba dans l'objet ThisWorkbook qui semble bien
empêcher de copier vers un autre classeur tout en permettant de copier-
coller d'un autre classeur vers le mien:

Private Sub Workbook_Deactivate()
'Pour interdire le collage suite à une copie venant du classeur vers
un autre classeur
Application.CutCopyMode = False
End Sub

Mon problème est que rien n'empêche l'utilisateur de copier vers Word
ou le Bloc-note et ensuite de copier de Word ou Bloc-note vers un
nouveau classeur Excel.

1- J'ai lu quelque part que Application.CutCopyMode=False ou
Application.CutCopyMode=True équivaut à l'appui sur la touche Echap
(annulation du mode Copier ou Coller, disparition des pointillés).
Quelle est la différence entre les deux puisque False et True ont le
même effet ?

2- Existe-t'il une façon universelle (applicable peu importe la
version d'Excel) de vider le presse-papier au moment de basculer
d'Excel vers une autre application ?

3- Workbook_Deactivate() ne semble détecter que la bascule entre
classeurs. Comment peut-on détecter la bascule entre Excel et une
autre application ?


Merci à l'avance pour vos précieuses suggestions.

René R.
Lire les 30 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 6
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #23083151
bonjour René,

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Dim oDataObject As DataObject
Set oDataObject = New DataObject
oDataObject.SetText ""
oDataObject.PutInClipboard
Set oDataObject = Nothing
End Sub


isabelle



Le 2011-02-03 10:36, renroy a écrit :
Bonjour à tous,

Je fais appel à vos lumières et vos solutions parfois géniales à des
problèmes pointilleux.

J'ai un classeur Excel comportant quelques onglets d'information et
que je souhaite rendre disponible à un utilisateur. Je souhaite
permettre à cet utilisateur de compléter l'information des onglets
existants s'il le souhaite mais je ne veux pas lui permettre de copier
l'information vers un autre classeur ou vers une autre application
(par exemple: Word, Bloc-Note, etc.). Est-ce possible ?

J'ai inséré une macro vba dans l'objet ThisWorkbook qui semble bien
empêcher de copier vers un autre classeur tout en permettant de copier-
coller d'un autre classeur vers le mien:

Private Sub Workbook_Deactivate()
'Pour interdire le collage suite à une copie venant du classeur vers
un autre classeur
Application.CutCopyMode = False
End Sub

Mon problème est que rien n'empêche l'utilisateur de copier vers Word
ou le Bloc-note et ensuite de copier de Word ou Bloc-note vers un
nouveau classeur Excel.

1- J'ai lu quelque part que Application.CutCopyModeúlse ou
Application.CutCopyMode=True équivaut à l'appui sur la touche Echap
(annulation du mode Copier ou Coller, disparition des pointillés).
Quelle est la différence entre les deux puisque False et True ont le
même effet ?

2- Existe-t'il une façon universelle (applicable peu importe la
version d'Excel) de vider le presse-papier au moment de basculer
d'Excel vers une autre application ?

3- Workbook_Deactivate() ne semble détecter que la bascule entre
classeurs. Comment peut-on détecter la bascule entre Excel et une
autre application ?


Merci à l'avance pour vos précieuses suggestions.

René R.

DanielCo
Le #23083141
Bonjour.
Et aussi, comment interdire l'impression, l'envoi par messagerie et la
copie d'écran, et comment obliger l'activation des macros... C'est
perdu d'avance.
Cordialement.
Daniel


Bonjour à tous,

Je fais appel à vos lumières et vos solutions parfois géniales à des
problèmes pointilleux.

J'ai un classeur Excel comportant quelques onglets d'information et
que je souhaite rendre disponible à un utilisateur. Je souhaite
permettre à cet utilisateur de compléter l'information des onglets
existants s'il le souhaite mais je ne veux pas lui permettre de copier
l'information vers un autre classeur ou vers une autre application
(par exemple: Word, Bloc-Note, etc.). Est-ce possible ?

J'ai inséré une macro vba dans l'objet ThisWorkbook qui semble bien
empêcher de copier vers un autre classeur tout en permettant de copier-
coller d'un autre classeur vers le mien:

Private Sub Workbook_Deactivate()
'Pour interdire le collage suite à une copie venant du classeur vers
un autre classeur
Application.CutCopyMode = False
End Sub

Mon problème est que rien n'empêche l'utilisateur de copier vers Word
ou le Bloc-note et ensuite de copier de Word ou Bloc-note vers un
nouveau classeur Excel.

1- J'ai lu quelque part que Application.CutCopyModeúlse ou
Application.CutCopyMode=True équivaut à l'appui sur la touche Echap
(annulation du mode Copier ou Coller, disparition des pointillés).
Quelle est la différence entre les deux puisque False et True ont le
même effet ?

2- Existe-t'il une façon universelle (applicable peu importe la
version d'Excel) de vider le presse-papier au moment de basculer
d'Excel vers une autre application ?

3- Workbook_Deactivate() ne semble détecter que la bascule entre
classeurs. Comment peut-on détecter la bascule entre Excel et une
autre application ?


Merci à l'avance pour vos précieuses suggestions.

René R.
news.free.fr
Le #23083131
Bonjour Isabelle,
Je crois que ça ne fonctionne plus depuis XL2007.
Daniel
news.free.fr
Le #23083121
Bonjour Isabelle,
Je crois que ça ne fonctionne plus depuis XL2007.
Daniel


bonjour René,

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Dim oDataObject As DataObject
Set oDataObject = New DataObject
oDataObject.SetText ""
oDataObject.PutInClipboard
Set oDataObject = Nothing
End Sub


isabelle



Le 2011-02-03 10:36, renroy a écrit :
Bonjour à tous,

Je fais appel à vos lumières et vos solutions parfois géniales à des
problèmes pointilleux.

J'ai un classeur Excel comportant quelques onglets d'information et
que je souhaite rendre disponible à un utilisateur. Je souhaite
permettre à cet utilisateur de compléter l'information des onglets
existants s'il le souhaite mais je ne veux pas lui permettre de copier
l'information vers un autre classeur ou vers une autre application
(par exemple: Word, Bloc-Note, etc.). Est-ce possible ?

J'ai inséré une macro vba dans l'objet ThisWorkbook qui semble bien
empêcher de copier vers un autre classeur tout en permettant de copier-
coller d'un autre classeur vers le mien:

Private Sub Workbook_Deactivate()
'Pour interdire le collage suite à une copie venant du classeur vers
un autre classeur
Application.CutCopyMode = False
End Sub

Mon problème est que rien n'empêche l'utilisateur de copier vers Word
ou le Bloc-note et ensuite de copier de Word ou Bloc-note vers un
nouveau classeur Excel.

1- J'ai lu quelque part que Application.CutCopyModeúlse ou
Application.CutCopyMode=True équivaut à l'appui sur la touche Echap
(annulation du mode Copier ou Coller, disparition des pointillés).
Quelle est la différence entre les deux puisque False et True ont le
même effet ?

2- Existe-t'il une façon universelle (applicable peu importe la
version d'Excel) de vider le presse-papier au moment de basculer
d'Excel vers une autre application ?

3- Workbook_Deactivate() ne semble détecter que la bascule entre
classeurs. Comment peut-on détecter la bascule entre Excel et une
autre application ?


Merci à l'avance pour vos précieuses suggestions.

René R.

isabelle
Le #23083211
bonjour Daniel,

peut tu essayer celle-ci,

Private Declare Function OpenClipboard Lib "user32" _
(ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard Lib "user32" () As Long

Sub Vider_Presse_Papier()
OpenClipboard 0
EmptyClipboard
CloseClipboard
End Sub

isabelle






Le 2011-02-03 10:58, news.free.fr a écrit :
Bonjour Isabelle,
Je crois que ça ne fonctionne plus depuis XL2007.
Daniel


Publicité
Suivre les réponses
Poster une réponse
Anonyme