Désactiver imprime écran

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:

James007

XLDnaute Barbatruc
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 +
:)
 

job75

XLDnaute Barbatruc
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

  • ImprEcran(1).xls
    38 KB · Affichages: 95

job75

XLDnaute Barbatruc
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

  • ImprEcran(2).xls
    35.5 KB · Affichages: 95
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
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 :(:mad:


à+
Philippe
 

James007

XLDnaute Barbatruc
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 +
:)
 

phlaurent55

Nous a quittés en 2020
Repose en paix
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 :D

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

à+
Philippe
 

job75

XLDnaute Barbatruc
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

  • ImprEcran(3).xls
    35.5 KB · Affichages: 121
Dernière édition:

job75

XLDnaute Barbatruc
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:

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom