Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Désactiver imprime écran

  • Initiateur de la discussion Initiateur de la discussion aredo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

aredo

XLDnaute Occasionnel
Bonjour,

J'ai un projet de gestion de stock en vba excel 2000, qui fonctionne très bien depuis plusieurs années. Le programme a été réalisé dans ce forum.
J'aurai voulu que les intervenants ne puissent accéder à la copie d'écran, pour éviter les dérives dans les stocks.
J'ai trouvé sur le net un bout de code, comment l'intégrer? qu'en pensez-vous?
Ou alors existe-t' il une méthode plus simple pour contourner une copie d'écran?

Merci au fofo
fred
 
Dernière édition:
Re : Désactiver imprime écran

Bonjour,

Visiblement, ton code n'est pas du VBA !
En VBA, il faut regarder du coté de OnKey, mais dans l'aide je ne trouve pas le code pour la touche Impr Ecran !

Caillou
 
Re : Désactiver imprime écran

Bonjour,

On peut penser à OnKey, mais j'ai peur qu'avec un Alt ou un Shift en plus, l'utilisateur puisse le court-circuiter ...
Du coup, il faut probablement aller creuser dans la doc et se lancer dans les API ...

A +
🙂
 
Re : Désactiver imprime écran

Bonjour le fil, le forum,

Une méthode qui ne désactive pas la touche Impr Ecran mais empêche de coller toute image.

Dans ThisWorkbook :

Code:
Private Sub Workbook_Open()
ControleImage
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime t, "ControleImage", , False
Me.Save
If Workbooks.Count = 1 Then Application.Quit Else Me.Close
End Sub

Dans Module1 :

Code:
Public t As Date

Sub ControleImage()
Dim a As String
On Error Resume Next
a = Selection.Address
If Err Then Selection.Delete
t = Now + 1 / 86400
Application.OnTime t, "ControleImage"
End Sub

Je reconnais qu'il s'agit d'artillerie lourde.

Fichier joint.

A+
 

Pièces jointes

Re : Désactiver imprime écran

Re,

Dans ThisWorkbook ceci est mieux :

Code:
Private Sub Workbook_Activate()
ControleImage
End Sub

Private Sub Workbook_Deactivate()
Application.OnTime t, "ControleImage", , False
Me.Worksheets(1).[A1].Copy 'vide le presse-papier
Application.CutCopyMode = False
End Sub

Fichier (2) joint, [Edit] téléchargez-le d'abord sur le bureau.

A+
 

Pièces jointes

Dernière édition:
Re : Désactiver imprime écran

Bonjour à tous,

@ Job,

je connaissais cette manière d'opérer mais elle n'empêche pas de copier l'écran à partir d'Excel et de coller le presse papier dans un autre programme (Word, Publisher, ............... et même un logiciel de retouche images )

Décidément, Excel n'offre aucune possibilité de protection 🙁😡


à+
Philippe
 
Re : Désactiver imprime écran

Bonjour Philippe, et bonne année,

Tu as tout à fait raison, j'allais d'ailleurs le signaler.

Je ne connais pas d'évènement qui se crée en VBA quand on change d'application.

A+
 
Re : Désactiver imprime écran

Bonjour à tous,

Quelqu'un aura-t-il l'énergie de creuser dans le site Microsoft, pour extraire de la gigantesque documentation la dll adéquate, et l'API qui pourra intercepter l'instruction de la touche PrtSc ... ?

Dur, dur ...

A +
🙂
 
Re : Désactiver imprime écran

Re,

si les utilisateurs sont intelligents, ils vont tout simplement utiliser une partie du programme de capture d'écran, comme IrfanView, MWSnap, Photoshop, Corel, ........... pour n'en nommer que quelques-uns.

et dès lors toute tentative d' annuler la touche PrintScreen.............................. c'est comme vouloir manger de la farine en sifflant la Marseillaise 😀

@ James,
de l'énergie, Oui beaucoup d'entre nous en ont mais pas pour quelque chose qui ne servira à rien

à+
Philippe
 
Re : Désactiver imprime écran

Re,

On va dire que je suis têtu 🙂

Je vide maintenant le presse-papier dans Module1, plus rien ne peut se coller :

Code:
Public t As Date

Sub ControleImage()
Dim a As String
ThisWorkbook.Worksheets(1).[IV1].Copy 'vide le presse-papier
Application.CutCopyMode = False
On Error Resume Next
a = Selection.Address
If Err Then Selection.Delete
t = Now + 1 / 86400
Application.OnTime t, "ControleImage"
End Sub

Fichier (3) à télécharger.

Même en activant très vite Word, je n'ai pas pu coller la capture d'écran.

Et vous ???

A+
 

Pièces jointes

Dernière édition:
Re : Désactiver imprime écran

Re Philippe,

Bien d'accord, mais faut bien s'amuser un peu.

D'ailleurs pourquoi un logiciel de capture ?

Pas besoin d'être bien fort en VBA pour créer et lancer cette macro :

Code:
Sub CopieFeuille()
Workbooks.Add
Workbooks("ImprEcran(3).xls").Worksheets(1).Cells.Copy Cells
End Sub

Après on fait tout ce qu'on veut...

Edit : bon d'accord, on peut protéger le VBA du classeur et mettre dans la macro Workbook_Deactivate :

Code:
If Workbooks.Count > 1 Then
  Application.DisplayAlerts = False
  Application.Quit
End If

A+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…