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
 

job75

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

Bonjour CISCO,

Pour éviter le collage dans un autre fichier, je ne vois qu'une solution : contrôler régulièrement qu'il n'y a rien dans le presse-papier.

Ce contrôle peut se faire par la méthode Application.OnTime (faire une recherche sur le forum) qui toutes les secondes ferait s'éxécuter le code suivant :

Application.CutCopyMode = False

ou bien encore :

Range("A1").Copy Range("A1")

Dans les 2 cas le presse-papier se vide...

A+
 

job75

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

Re,

Ah mais j'oubliais... ;)

Plutôt que Application.OnTime, il y a bien plus simple : mettre les codes de mon post précédent dans une macro Workbook_Deactivate...

A+
 

CISCO

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

Bonsoir à tous, bonsoir Job75

En cherchant avec tes mots clefs, et après plusieurs essais, j'ai trouvé une macro empêchant de coller sur n'importe quelle feuille du fichier, en utilisant :

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.CutCopyMode = False
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Range)
Application.CutCopyMode = False
End Sub

"Malheureusement", je ne désire pas empêcher le copier coller sur ces feuilles, je désire empêcher le coller sur n'importe quelle feuille de ce fichier en provenance d'un autre fichier... Ce n'est pas tout à fait pareil.

Si quelqu'un peut un peu m'aider, merci d'avance.

@ plus
 

Pièces jointes

  • essai protection.xls
    31.5 KB · Affichages: 189
  • essai protection.xls
    31.5 KB · Affichages: 204
  • essai protection.xls
    31.5 KB · Affichages: 209
Dernière édition:

job75

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

Re,

C'est certain, ce n'est pas pareil, et comme on ne peut pas savoir l'origine de ce qu'il y a dans le presse-papier...

Si l'on ne veut pas bloquer le copier-coller, je ne crois pas qu'il y ait de solution.

A+
 

CISCO

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

Re,

et comme on ne peut pas savoir l'origine de ce qu'il y a dans le presse-papier...

A+

Bonjour

N'y aurait il pas un moyen pour connaitre l'origine du contenu du presse papier...?

En fait, je suis prof et je veux trouver une astuce pour empêcher la "triche" :
Mes élèves travaillent sur un réseau, et parfois sur des fichiers très similaires. Dans ces conditions, il est assez facile d'ouvrir le fichier du copain, puis de le renommer (mais j'ai "piégé" les divers fichiers nominatifs de base, que les élèves doivent modifier, et, par conséquent, je me rend compte de cette triche), ou de faire un copier-coller (le copain passe une heure pour faire le boulot, et l'élève tricheur, en 5 secondes, clic, clic, hop, c'est fait, sans rien y comprendre)... Et là, je n'ai pas trouvé un moyen simple pour contrer cette possibilité de triche. Peut être avec des MFC particulières, très discrètes, que j'irai controlé. Pas très pratique...
Dans ces conditions, comment évaluer sérieusement leur travail ?

Si quelqu'un a une astuce, merci d'avance.

@ plus
 

job75

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

Re,

Je pense à une chose qui peut vous intéresser : empêcher le copier-coller si plus d'un fichier est ouvert :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Workbooks.Count > 1 Then Application.CutCopyMode = False
End Sub

A+
 
Dernière édition:

CISCO

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

Bonsoir

Merci Job75

Bonne idée, mais cela ne fonctionne pas à tous les coups. Je n'ai pas réussi à comprendre exactement pourquoi des fois c'est OK, pourquoi d'autres fois c'est non...

@ plus
 
Dernière édition:

JNP

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

Bonjour Cisco, le forum :),
Une solution un peu machiavélique : supprimer dans le menu les Copier/Coller avec quelque chose du style
Code:
Application.CommandBars("edit").Enabled = False
et dériver les équivalents claviers vers des macros à toi
Code:
    Application.OnKey "^c", "MonCopier"
publier une variable
Code:
Public Sécurité As String
qui dans MonCopier est rempli avec
Code:
Sécurité = ThisWorkbook.Name
à ce moment là, quand Ctrl-V va appeler "MonColler", tu fait un test si Sécurité est bien le nom du fichier où "MonCopier" a été fait. Comme Excel refuse (en principe) d'ouvrir simultanément 2 fichiers au nom identique, ça devrait fonctionner. Ne pas oublier de remettre tout en place à la fermeture...
Bon courage :cool:
 

JNP

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

Salut Cisco :),
Voici une ébauche de ma proposition. Les Ctrl-c et Ctrl-v sont shintés, donc tu peux les utiliser dans le même fichier mais pas entre 2 fichiers. J'ai déconnecté le clic-droit qui contient aussi les copier/coller, mais il est certainement possible de ne désactiver que le Copier et le Coller, il faudrait faire une recherche sur les modifications de menus contextuels. Enfin, j'ai mis les lignes de codes pour désactiver les Copier Couper Coller Collage spécial dans le menu, mais je ne les ai pas activées, chez moi, elle ne fonctionnent pas mais je suis comme toi en 2007 et la gestion du ruban est différente, pour l'école, ça devrait être bon.
Maintenant, encore faut-il que tes élèves ne désactivent pas les macros, mais il est possible de les obliger (tout au moins pour ceux qui ne sont des bêtes en craquage, mais ceux-là, je ne pense pas qu'ils ait besoin de tricher :D !), on en reparlera.
Bon dimanche :cool:
 

Pièces jointes

  • Coller interdit.xls
    37 KB · Affichages: 218

CISCO

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

Bonsoir

Merci JNP pour ce fichier

Chez moi, CTRL+C et CTRL+V ne fonctionnent pas, ni le clic droit, comme prévu. Par contre le coller à partir du bandeau fonctionne. Dès que je peux, je teste ton fichier sur excel 2003.

Salut Cisco :),
Maintenant, encore faut-il que tes élèves ne désactivent pas les macros, mais il est possible de les obliger (tout au moins pour ceux qui ne sont des bêtes en craquage, mais ceux-là, je ne pense pas qu'ils ait besoin de tricher :D !),
Bon dimanche :cool:

Vu ce que je leur demande (création d'un petit tableau d'une page permettant de réaliser un petit devis, avec uniquement des +, des *, des SOMME et quelques $), si ils savent contourner les macro, c'est qu'ils ont beaucoup plus que le niveau que je leur demande.:)

Encore merci.
@ plus
 

JNP

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

Salut Cisco :),
Pour désactiver sous 2007, il faut utiliser la programmation du ruban
Désactivation et réaffectation des commandes
Une autre opération habituellement exécutée par les compléments Office consiste à désactiver les commandes prédéfinies. RibbonX rend là encore cette opération aussi facile que d'écrire une ligne de code. Les développeurs peuvent désactiver les commandes prédéfinies en ajoutant des lignes telles que celle-ci dans la section <commands> de leur code XML :
Copier le code

<command idMso="Bold" enabled="false"/>


Cela désactive le bouton Gras indépendamment de son emplacement dans l'interface utilisateur, lequel dans la configuration par défaut inclut le groupe Police dans le ruban, ainsi que la mini barre d'outils.
Comme cela ne se produisait pas avec CommandBars, il est important de noter que cette opération désactive le bouton Gras aux deux emplacements. Des compléments étaient nécessaires pour énumérer intégralement l'interface utilisateur et désactiver manuellement chaque copie du bouton, au cas où l'utilisateur aurait personnalisé ses barres d'outils et placé une copie ailleurs. Ils devaient également rechercher les commandes par numéro de référence (43), au lieu d'utiliser des noms intelligibles comme « Gras ». Un rappel getEnabled peut également être utilisé si le complément souhaite désactiver conditionnellement la commande uniquement à certains moments.
L'élément XML <commands> représente également l'emplacement de la fonction de réaffectation de commande de RibbonX. Les compléments améliorent ou étendent souvent les fonctionnalités prédéfinies de Microsoft Office, reprennent les boutons de l'interface utilisateur existants et les réaffectent. Parfois, les responsables informatiques choisissent de restreindre leurs fonctionnalités à l'aide de la réaffectation (par exemple, en affichant une boîte de dialogue de saisie de mot de passe lorsqu'un utilisateur clique sur le bouton Imprimer).
Un bouton qui exécute une action avec un clic peut être réaffecté à l'aide de RibbonX (même si les types de contrôle les plus compliqués comme les galeries ou les boîtes de dialogue mixtes ne peuvent pas être réaffectées). Voici un exemple de code XML nécessaire à la réaffectation du bouton Enregistrer :
Copier le code

<command idMso="Save" onAction="MySaveFunction"/>


Lorsque l'utilisateur clique sur Enregistrer, l'élément MySaveFunction du bouton est exécuté, ce qui permet au complément d'effectuer ses propres actions et de choisir d'autoriser l'exécution de la fonction prédéfinie Enregistrer.
Là encore, toutes les copies du bouton Enregistrer sont réaffectées par cette seule ligne de code XML (dans le menu Office et dans la barre d'outils Accès rapide), et si un document effectue la réaffectation, celle-ci ne s'applique pas à d'autres documents qui sont également ouverts (sauf si ce document est chargé comme modèle ou complément global).
Je regarderai pour le fun ;).
Bonne journée :cool:
 

mromain

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

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+
 

Discussions similaires

Réponses
5
Affichages
419
Compte Supprimé 979
C