Empêcher copier/coller vers un autre classeur ou une autre application
30 réponses
renroy
Bonjour =E0 tous,
Je fais appel =E0 vos lumi=E8res et vos solutions parfois g=E9niales =E0 de=
s
probl=E8mes pointilleux.
J'ai un classeur Excel comportant quelques onglets d'information et
que je souhaite rendre disponible =E0 un utilisateur. Je souhaite
permettre =E0 cet utilisateur de compl=E9ter 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=E9r=E9 une macro vba dans l'objet ThisWorkbook qui semble bien
emp=EAcher 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 =E0 une copie venant du classeur vers
un autre classeur
Application.CutCopyMode =3D False
End Sub
Mon probl=E8me est que rien n'emp=EAche 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=3DFalse ou
Application.CutCopyMode=3DTrue =E9quivaut =E0 l'appui sur la touche Echap
(annulation du mode Copier ou Coller, disparition des pointill=E9s).
Quelle est la diff=E9rence entre les deux puisque False et True ont le
m=EAme effet ?
2- Existe-t'il une fa=E7on 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=E9tecter que la bascule entre
classeurs. Comment peut-on d=E9tecter la bascule entre Excel et une
autre application ?
Merci =E0 l'avance pour vos pr=E9cieuses suggestions.
Je comprend et je suis conscient que ma solution n'est pas à toute épreuve. Disons que je me contente d'une solution à l'épreuve des utilisateurs "ordinaires" ayant peu ou pas de connaissance VBA.
René
On 3 fév, 12:18, DanielCo wrote:
C'est un vieux débat, ici. Depuis un classeur externe, avec une macro, je peux afficher toutes les feuilles du classeur principal, sans activer les macros sur celui-ci. Daniel
Alors OK, il ne faut en attendre plus.
Daniel
Daniel,
Je comprend et je suis conscient que ma solution n'est pas à toute
épreuve. Disons que je me contente d'une solution à l'épreuve des
utilisateurs "ordinaires" ayant peu ou pas de connaissance VBA.
René
On 3 fév, 12:18, DanielCo <dcolardelle...@free.fr> wrote:
C'est un vieux débat, ici. Depuis un classeur externe, avec une macro,
je peux afficher toutes les feuilles du classeur principal, sans
activer les macros sur celui-ci.
Daniel
Je comprend et je suis conscient que ma solution n'est pas à toute épreuve. Disons que je me contente d'une solution à l'épreuve des utilisateurs "ordinaires" ayant peu ou pas de connaissance VBA.
René
On 3 fév, 12:18, DanielCo wrote:
C'est un vieux débat, ici. Depuis un classeur externe, avec une macro, je peux afficher toutes les feuilles du classeur principal, sans activer les macros sur celui-ci. Daniel
michdenis
Bonjour,
| 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
Pourquoi ne pas utiliser un formulaire (userform) pour permettre d'insérer dans la feuille de ton choix toute l'information dont tu as besoin. Cette feuille peut demeurer masquée (Worksheets("feuil1").Visible =xlSheetVeryHidden, donc impossible à l'usager de connaître l'existence de la feuille et de la visualiser sans avoir accès à VBA. Comme la feuille n'est jamais affichée, impossible aussi d'en faire une copie.
Afin que quelqu'un ne puisse pas afficher la feuille masquée à partir d'un autre classeur (vba), tu protèges le classeur (pas les feuilles) (structure et fenêtres)
Tu ajoutes ceci dans le ThisWorkbook au cas où en déprotégerait le classeur
'--------------------- Private Sub Workbook_SheetActivate(ByVal Sh As Object) On Error Resume Next Worksheets(Array("sheet2", "sheet4")).Visible = xlVeryHidden ThisWorkbook.Protect "MotDepasse", Structure:=True, Windows:=True End Sub
'--------------------- Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) ThisWorkbook.Protect "MotDepasse", Structure:=True, Windows:=True End Sub '---------------------
| 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
Pourquoi ne pas utiliser un formulaire (userform) pour permettre
d'insérer dans la feuille de ton choix toute l'information dont tu as
besoin. Cette feuille peut demeurer masquée
(Worksheets("feuil1").Visible =xlSheetVeryHidden, donc impossible à l'usager
de connaître l'existence de la feuille et de la visualiser sans avoir accès
à VBA. Comme la feuille n'est jamais affichée, impossible aussi d'en faire
une copie.
Afin que quelqu'un ne puisse pas afficher la feuille masquée à partir
d'un autre classeur (vba), tu protèges le classeur (pas les feuilles)
(structure et fenêtres)
Tu ajoutes ceci dans le ThisWorkbook au cas où en déprotégerait le classeur
'---------------------
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next
Worksheets(Array("sheet2", "sheet4")).Visible = xlVeryHidden
ThisWorkbook.Protect "MotDepasse", Structure:=True, Windows:=True
End Sub
'---------------------
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
ThisWorkbook.Protect "MotDepasse", Structure:=True, Windows:=True
End Sub
'---------------------
| 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
Pourquoi ne pas utiliser un formulaire (userform) pour permettre d'insérer dans la feuille de ton choix toute l'information dont tu as besoin. Cette feuille peut demeurer masquée (Worksheets("feuil1").Visible =xlSheetVeryHidden, donc impossible à l'usager de connaître l'existence de la feuille et de la visualiser sans avoir accès à VBA. Comme la feuille n'est jamais affichée, impossible aussi d'en faire une copie.
Afin que quelqu'un ne puisse pas afficher la feuille masquée à partir d'un autre classeur (vba), tu protèges le classeur (pas les feuilles) (structure et fenêtres)
Tu ajoutes ceci dans le ThisWorkbook au cas où en déprotégerait le classeur
'--------------------- Private Sub Workbook_SheetActivate(ByVal Sh As Object) On Error Resume Next Worksheets(Array("sheet2", "sheet4")).Visible = xlVeryHidden ThisWorkbook.Protect "MotDepasse", Structure:=True, Windows:=True End Sub
'--------------------- Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) ThisWorkbook.Protect "MotDepasse", Structure:=True, Windows:=True End Sub '---------------------
Merci Daniel et Isabelle pour votre précieuse collaboration.
René
isabelle
bonjour Daniel,
il y a une discution ici : http://social.answers.microsoft.com/Forums/fr-FR/w7filesfr/thread/241a362d-6ade-4579-af1a-9fcbaa3ab6f7 les réponses de Jean-Claude BELLAMY et de Pierre TORRIS donne une solution pour pallier à la commande "Effacer le Clipboard" pour les versions 2007 et +
isabelle
Le 2011-02-03 11:49, DanielCo a écrit :
Non plus (je ne la connaissais pas, celle là !) On dirait que c'est "by design"; pas possible qIls ne l'aient pas fait exprès. Daniel
et avec la commande xl4 ?
Sub vide_Clipboard() On Error Resume Next Application.CommandBars("Clipboard").Controls(4).Execute End Sub
isabelle
Le 2011-02-03 11:31, DanielCo a écrit :
Pas mieux, apparemment. Daniel
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
bonjour Daniel,
il y a une discution ici :
http://social.answers.microsoft.com/Forums/fr-FR/w7filesfr/thread/241a362d-6ade-4579-af1a-9fcbaa3ab6f7
les réponses de Jean-Claude BELLAMY et de Pierre TORRIS donne une
solution pour pallier à la commande "Effacer le Clipboard" pour les
versions 2007 et +
isabelle
Le 2011-02-03 11:49, DanielCo a écrit :
Non plus (je ne la connaissais pas, celle là !)
On dirait que c'est "by design"; pas possible qIls ne l'aient pas fait
exprès.
Daniel
et avec la commande xl4 ?
Sub vide_Clipboard()
On Error Resume Next
Application.CommandBars("Clipboard").Controls(4).Execute
End Sub
isabelle
Le 2011-02-03 11:31, DanielCo a écrit :
Pas mieux, apparemment.
Daniel
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
il y a une discution ici : http://social.answers.microsoft.com/Forums/fr-FR/w7filesfr/thread/241a362d-6ade-4579-af1a-9fcbaa3ab6f7 les réponses de Jean-Claude BELLAMY et de Pierre TORRIS donne une solution pour pallier à la commande "Effacer le Clipboard" pour les versions 2007 et +
isabelle
Le 2011-02-03 11:49, DanielCo a écrit :
Non plus (je ne la connaissais pas, celle là !) On dirait que c'est "by design"; pas possible qIls ne l'aient pas fait exprès. Daniel
et avec la commande xl4 ?
Sub vide_Clipboard() On Error Resume Next Application.CommandBars("Clipboard").Controls(4).Execute End Sub
isabelle
Le 2011-02-03 11:31, DanielCo a écrit :
Pas mieux, apparemment. Daniel
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
DanielCo
J'ai lu en diagonale et je n'ai pas compris. Je suis sous XP et Office 2010. Mon problème est avec VBA. J'ai essayé le script de Pierre Torris qui n' a rien vidé. Daniel
bonjour Daniel,
il y a une discution ici : http://social.answers.microsoft.com/Forums/fr-FR/w7filesfr/thread/241a362d-6ade-4579-af1a-9fcbaa3ab6f7 les réponses de Jean-Claude BELLAMY et de Pierre TORRIS donne une solution pour pallier à la commande "Effacer le Clipboard" pour les versions 2007 et +
isabelle
Le 2011-02-03 11:49, DanielCo a écrit :
Non plus (je ne la connaissais pas, celle là !) On dirait que c'est "by design"; pas possible qIls ne l'aient pas fait exprès. Daniel
et avec la commande xl4 ?
Sub vide_Clipboard() On Error Resume Next Application.CommandBars("Clipboard").Controls(4).Execute End Sub
isabelle
Le 2011-02-03 11:31, DanielCo a écrit :
Pas mieux, apparemment. Daniel
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
J'ai lu en diagonale et je n'ai pas compris. Je suis sous XP et Office
2010. Mon problème est avec VBA. J'ai essayé le script de Pierre Torris
qui n' a rien vidé.
Daniel
bonjour Daniel,
il y a une discution ici :
http://social.answers.microsoft.com/Forums/fr-FR/w7filesfr/thread/241a362d-6ade-4579-af1a-9fcbaa3ab6f7
les réponses de Jean-Claude BELLAMY et de Pierre TORRIS donne une solution
pour pallier à la commande "Effacer le Clipboard" pour les versions 2007 et
+
isabelle
Le 2011-02-03 11:49, DanielCo a écrit :
Non plus (je ne la connaissais pas, celle là !)
On dirait que c'est "by design"; pas possible qIls ne l'aient pas fait
exprès.
Daniel
et avec la commande xl4 ?
Sub vide_Clipboard()
On Error Resume Next
Application.CommandBars("Clipboard").Controls(4).Execute
End Sub
isabelle
Le 2011-02-03 11:31, DanielCo a écrit :
Pas mieux, apparemment.
Daniel
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
J'ai lu en diagonale et je n'ai pas compris. Je suis sous XP et Office 2010. Mon problème est avec VBA. J'ai essayé le script de Pierre Torris qui n' a rien vidé. Daniel
bonjour Daniel,
il y a une discution ici : http://social.answers.microsoft.com/Forums/fr-FR/w7filesfr/thread/241a362d-6ade-4579-af1a-9fcbaa3ab6f7 les réponses de Jean-Claude BELLAMY et de Pierre TORRIS donne une solution pour pallier à la commande "Effacer le Clipboard" pour les versions 2007 et +
isabelle
Le 2011-02-03 11:49, DanielCo a écrit :
Non plus (je ne la connaissais pas, celle là !) On dirait que c'est "by design"; pas possible qIls ne l'aient pas fait exprès. Daniel
et avec la commande xl4 ?
Sub vide_Clipboard() On Error Resume Next Application.CommandBars("Clipboard").Controls(4).Execute End Sub
isabelle
Le 2011-02-03 11:31, DanielCo a écrit :
Pas mieux, apparemment. Daniel
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
news.free.fr
J'ai lu en diagonale et je n'ai pas compris. En fait, tes trois macros fonctionnent et vident le presse-papiers Windows, mais pas le presse-papiers Office. Daniel
bonjour Daniel,
il y a une discution ici : http://social.answers.microsoft.com/Forums/fr-FR/w7filesfr/thread/241a362d-6ade-4579-af1a-9fcbaa3ab6f7 les réponses de Jean-Claude BELLAMY et de Pierre TORRIS donne une solution pour pallier à la commande "Effacer le Clipboard" pour les versions 2007 et +
isabelle
J'ai lu en diagonale et je n'ai pas compris. En fait, tes trois macros
fonctionnent et vident le presse-papiers Windows, mais pas le
presse-papiers Office.
Daniel
bonjour Daniel,
il y a une discution ici :
http://social.answers.microsoft.com/Forums/fr-FR/w7filesfr/thread/241a362d-6ade-4579-af1a-9fcbaa3ab6f7
les réponses de Jean-Claude BELLAMY et de Pierre TORRIS donne une solution
pour pallier à la commande "Effacer le Clipboard" pour les versions 2007 et
+
J'ai lu en diagonale et je n'ai pas compris. En fait, tes trois macros fonctionnent et vident le presse-papiers Windows, mais pas le presse-papiers Office. Daniel
bonjour Daniel,
il y a une discution ici : http://social.answers.microsoft.com/Forums/fr-FR/w7filesfr/thread/241a362d-6ade-4579-af1a-9fcbaa3ab6f7 les réponses de Jean-Claude BELLAMY et de Pierre TORRIS donne une solution pour pallier à la commande "Effacer le Clipboard" pour les versions 2007 et +
J'ai lu en diagonale et je n'ai pas compris. Je suis sous XP et Office 2010. Mon problème est avec VBA. J'ai essayé le script de Pierre Torris qui n' a rien vidé. Daniel
bonjour Daniel,
il y a une discution ici : http://social.answers.microsoft.com/Forums/fr-FR/w7filesfr/thread/241a362d-6ade-4579-af1a-9fcbaa3ab6f7
les réponses de Jean-Claude BELLAMY et de Pierre TORRIS donne une solution pour pallier à la commande "Effacer le Clipboard" pour les versions 2007 et +
J'ai lu en diagonale et je n'ai pas compris. Je suis sous XP et Office
2010. Mon problème est avec VBA. J'ai essayé le script de Pierre
Torris qui n' a rien vidé.
Daniel
bonjour Daniel,
il y a une discution ici :
http://social.answers.microsoft.com/Forums/fr-FR/w7filesfr/thread/241a362d-6ade-4579-af1a-9fcbaa3ab6f7
les réponses de Jean-Claude BELLAMY et de Pierre TORRIS donne une
solution pour pallier à la commande "Effacer le Clipboard" pour les
versions 2007 et +
J'ai lu en diagonale et je n'ai pas compris. Je suis sous XP et Office 2010. Mon problème est avec VBA. J'ai essayé le script de Pierre Torris qui n' a rien vidé. Daniel
bonjour Daniel,
il y a une discution ici : http://social.answers.microsoft.com/Forums/fr-FR/w7filesfr/thread/241a362d-6ade-4579-af1a-9fcbaa3ab6f7
les réponses de Jean-Claude BELLAMY et de Pierre TORRIS donne une solution pour pallier à la commande "Effacer le Clipboard" pour les versions 2007 et +
isabelle
DanielCo
Oui, lui ne vide rien, ni le clipboard Windows, ni celui d'Office, mais bon, je suis sous XP. Daniel
J'ai lu en diagonale et je n'ai pas compris. Je suis sous XP et Office 2010. Mon problème est avec VBA. J'ai essayé le script de Pierre Torris qui n' a rien vidé. Daniel
bonjour Daniel,
il y a une discution ici : http://social.answers.microsoft.com/Forums/fr-FR/w7filesfr/thread/241a362d-6ade-4579-af1a-9fcbaa3ab6f7
les réponses de Jean-Claude BELLAMY et de Pierre TORRIS donne une solution pour pallier à la commande "Effacer le Clipboard" pour les versions 2007 et +
isabelle
Oui, lui ne vide rien, ni le clipboard Windows, ni celui d'Office, mais
bon, je suis sous XP.
Daniel
J'ai lu en diagonale et je n'ai pas compris. Je suis sous XP et Office
2010. Mon problème est avec VBA. J'ai essayé le script de Pierre Torris qui
n' a rien vidé.
Daniel
bonjour Daniel,
il y a une discution ici :
http://social.answers.microsoft.com/Forums/fr-FR/w7filesfr/thread/241a362d-6ade-4579-af1a-9fcbaa3ab6f7
les réponses de Jean-Claude BELLAMY et de Pierre TORRIS donne une solution
pour pallier à la commande "Effacer le Clipboard" pour les versions 2007
et +
J'ai lu en diagonale et je n'ai pas compris. Je suis sous XP et Office 2010. Mon problème est avec VBA. J'ai essayé le script de Pierre Torris qui n' a rien vidé. Daniel
bonjour Daniel,
il y a une discution ici : http://social.answers.microsoft.com/Forums/fr-FR/w7filesfr/thread/241a362d-6ade-4579-af1a-9fcbaa3ab6f7
les réponses de Jean-Claude BELLAMY et de Pierre TORRIS donne une solution pour pallier à la commande "Effacer le Clipboard" pour les versions 2007 et +
isabelle
LSteph
Bonjour à tous,
Tout cela est bien trop facilement déjouable vous le savez bien Isa et Daniel c'est pour souscrire à une réponse gentillement mais il faut le dire quand même:
Application.enableventsúlse
ou les désactiver à l'ouverture
On ne pourra pas empêcher d'empêcher...
Une autre façon, certes contournable aussi, serait de protèger les feuilles en empêchant la sélection des cellules verrouillées et mettre masquer et déverrouillées sur celles ou l'on saisit.
Cordialement.
-- LSteph
"DanielCo" a écrit dans le message de news:iiel7s$ps2$
Pas mieux, apparemment. Daniel
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
Bonjour à tous,
Tout cela est bien trop facilement déjouable vous le savez bien Isa et
Daniel c'est pour souscrire à une réponse gentillement mais il faut le dire
quand même:
Application.enableventsúlse
ou les désactiver à l'ouverture
On ne pourra pas empêcher d'empêcher...
Une autre façon, certes contournable aussi, serait de protèger les feuilles
en empêchant la sélection des cellules verrouillées et mettre masquer et
déverrouillées sur celles ou l'on saisit.
Cordialement.
--
LSteph
"DanielCo" <dcolardelleZZZ@free.fr> a écrit dans le message de
news:iiel7s$ps2$1@speranza.aioe.org...
Pas mieux, apparemment.
Daniel
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
Tout cela est bien trop facilement déjouable vous le savez bien Isa et Daniel c'est pour souscrire à une réponse gentillement mais il faut le dire quand même:
Application.enableventsúlse
ou les désactiver à l'ouverture
On ne pourra pas empêcher d'empêcher...
Une autre façon, certes contournable aussi, serait de protèger les feuilles en empêchant la sélection des cellules verrouillées et mettre masquer et déverrouillées sur celles ou l'on saisit.
Cordialement.
-- LSteph
"DanielCo" a écrit dans le message de news:iiel7s$ps2$
Pas mieux, apparemment. Daniel
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
LSteph
Bonjour,
Tu ne l'empêchera pas complètement.
déjà ton premier code n'y fera rien:
Application.enableventsúlse on désactve les évennements et le déactivate passe à la trappe.
ou même ne pas activer les macros à l'ouverture.
Reste la protection de feuille par mot de passe et empêcher la sélection des cellules vérouillées qui est déjà plus efficace avec ses limites là aussi.
Cordialement.
__ LSteph
"renroy" a écrit dans le message de news: 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.
Bonjour,
Tu ne l'empêchera pas complètement.
déjà ton premier code n'y fera rien:
Application.enableventsúlse
on désactve les évennements et le déactivate passe à la trappe.
ou même ne pas activer les macros à l'ouverture.
Reste la protection de feuille par mot de passe et empêcher la sélection des
cellules vérouillées
qui est déjà plus efficace avec ses limites là aussi.
Cordialement.
__
LSteph
"renroy" <renroy@gmail.com> a écrit dans le message de
news:1722e23f-11f8-4eaa-8f4b-7b5ce9a22756@v7g2000yqh.googlegroups.com...
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 ?
Application.enableventsúlse on désactve les évennements et le déactivate passe à la trappe.
ou même ne pas activer les macros à l'ouverture.
Reste la protection de feuille par mot de passe et empêcher la sélection des cellules vérouillées qui est déjà plus efficace avec ses limites là aussi.
Cordialement.
__ LSteph
"renroy" a écrit dans le message de news: 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 ?