Interdire le collage d'un fichier vers un autre

CISCO

XLDnaute Barbatruc
Bonjour

Besoin d'un petit coup de main.

Ma question est simple, sa mise en pratique beaucoup moins pour quelqu'un comme moi qui n'y comprend presque rien en VBA (Je m'y mettrai, mais, pour le moment, je n'ai pas vraiment le temps...) :

Est-il possible d'empêcher le collage d'une partie d'un fichier quelconque dans un autre ?

Merci d'avance.

@ plus
 

CISCO

XLDnaute Barbatruc
Re : Interdire le collage d'un fichier vers un autre

Bonjour

"Merci" mromain pour cette remarque. :eek:

En fait ce cas m'inquiète moins car je peux pièger les feuilles avec du texte caché, différent d'une feuille à l'autre (le nom écrit en blanc par exemple, sur des cellules protégée, hors du champ normal de travail). Si l'élève copie la feuille complète, il "transportera avec lui" le nom du propriétaire initial. Bon, après, il peut encore faire un copier coller d'une feuille vers une autre, tout en restant dans son fichier, puis supprimer la feuille intermédiaire...

@ plus
 

JNP

XLDnaute Barbatruc
Re : Interdire le collage d'un fichier vers un autre

Bonjour le forum :)
bonjour CISCO, JNP, job75

la problématique est intéressante.

Il y a un autre cas de "copier-coller" qui a mon avis ne sera pas facile à bloquer :
si on a 2 fichiers cote à cote, et qu'on fait glisser une cellule d'un fichier à l'autre avec la touche "Ctrl" appuyée.

a+
Très bonne remarque, mais qui nous fait trouver une solution complète, un peu bourrin, mais efficace :
Code:
Private Sub Workbook_Activate()
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
    WS.Unprotect
Next
End Sub
Private Sub Workbook_Deactivate()
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
    WS.Protect
Next
End Sub
Bonne journée :cool:
 

Pièces jointes

  • Coller interdit V2.xls
    29 KB · Affichages: 111
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Interdire le collage d'un fichier vers un autre

Re :),
Réflexion faite, pour tenir compte de la copie de feuille :
Code:
Private Sub Workbook_Activate()
ThisWorkbook.Unprotect
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
    WS.Unprotect
Next
End Sub
 
Private Sub Workbook_Deactivate()
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
    WS.Protect
Next
ThisWorkbook.Protect
End Sub
Bonne journée :cool:
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Interdire le collage d'un fichier vers un autre

Bonjour

Ce coup ci, JNP, je crois que c'est le top. J'ai fait des tests et tout semble OK.

Merci JNP, mRomain et Job75.

Il ni a pas à dire, va falloir que je mette au VBA.

@ plus
 

JNP

XLDnaute Barbatruc
Re : Interdire le collage d'un fichier vers un autre

Re :),
Y en a toujours plus dans 2 têtes que dans une :D.
J'avais dit que pour le fun, je jetterais un oeil au ruban. En pièce jointe, un fichier test avec comme XML
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<
commands>
<
command idMso="Copy"onAction="MonCopierR"/>
<
command idMso="Cut"onAction="MonCouperR"/>
<
command idMso="Paste"onAction="MonCollerR"/>
</
commands>
</
customUI>
J'ai mis des MsgBox, pour que tu puisse voir quelle est l'action déclencheuse. Ce qui est interressant, c'est que le clic-droit est affecté en même temps que le ruban, ce qui fait que c'est beaucoup plus subtil et moins bourrin.
Bonne journée :cool:
 

Pièces jointes

  • Coller interdit.xlsm
    17.8 KB · Affichages: 104
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Interdire le collage d'un fichier vers un autre

Re :),
...Y en a toujours plus dans 2 têtes que dans une :D.
... c'est beaucoup plus subtil et moins bourrin.
Bonne journée :cool:

J'aime bien cette philosophie, mais je n'en suis pas encore là, ni en VBA (je n'y connais rien), et pas toujours avec les formules (cf les formules longuettes que je trouve ou les colonnes intermédiaires que je suis parfois obligé d'utiliser, et les propositions d'autres (abcd, Roger'Pataphysique;), Monique, Brigitte... par ex), beaucoup plus astucieuses...).

Encore Merci.

@ plus
 

job75

XLDnaute Barbatruc
Re : Interdire le collage d'un fichier vers un autre

Bonjour à tous,

Je reviens sur ce fil.

Cette macro doit aussi vider à tout coup le presse-papier rempli par un autre fichier :

Code:
Private Sub Workbook_Activate()
Dim S As Worksheet
On Error Resume Next
For Each S In ThisWorkbook.[COLOR="Red"]Sheets[/COLOR]
S.Range("A1").Copy S.Range("A1")
Next
End Sub

On Error Resume Next au cas où la feuille étudiée est protégée.

Edit : peut-être faut-il se préoccuper aussi des feuilles qui ne sont pas des Worksheets (graphique, feuille macro XL4...) ? Donc remplacé Worksheets par Sheets.

A+
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 450
Messages
2 109 726
Membres
110 552
dernier inscrit
jasson