Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Progetto non stampabile

Ultimo Aggiornamento: 26/08/2020 19:03
Post: 6.058
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
26/08/2020 15:46

Ciao, metto questa richiesta, per riferimento al progetto di "daco-daco" Protezione Civile.

ma anche per una mia curiosità, io credo che sia impossibile, ma domandare o lanciare una sfida, non fa male.

credete sia possibile non far stampare o esportare un immagine di un file Excel?

io non conosco nessun metodo, in quanto anche con il semplice "Cattura schermo" o pulsante di stampa si possa riprodurre quello che si vede a schermo.

in effetti vorrei rendere vano riprodurre i dati sensibili che si vedono a schermo.

io ho pensato ad una specie di filigrana da sovrapporre, oppure rilevare che è stato premuto il Cattura schermo o tasto stampa, e quindi nascondere lo schermo, insomma una specie di protezione dati.

Ciao By Sal [SM=x423051]
[Modificato da by sal 26/08/2020 15:47]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 4.449
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
26/08/2020 16:40

Scusa Salvatore ma (e sicuramente ci avrai pensato) ma non puoi usare l’evento BeforePrint mettendo un If che valuti il nome del foglio che se è quello che non vogliamo stampare imposti il Cancel uguale a True?
[Modificato da alfrimpa 26/08/2020 16:41]

Alfredo
Post: 2.974
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
26/08/2020 16:50

ciao Sal

ovviamente con tutti i problemi sulla protezione di excel, le stampe le puoi disabilitare con:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Cancel = True
End Sub



il copia/incolla con:

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

(entrambe in thisWorkbook)

Per il copia/sposta foglio (anche sull'open):

Application.CommandBars("Ply").Enabled = false


(ovviamente da ripristinare sul before close)

Per l'hard copy è un problema, in quanto è inutile bloccare la funzionalità da excel.
(si può fare, vedi pe:
https://www.mrexcel.com/board/threads/excel-vba-disable-print-screen.1032074/)

Ma ci sono programmi esterni (cattura immagini) e per ultimo una bella fotografia con il cellulare, che rendono vano qualsiasi blocco.

saluti




[Modificato da dodo47 26/08/2020 16:51]
Domenico
Win 10 - Excel 2016
Post: 2.975
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
26/08/2020 17:23

ciao
rettifico:

fermo restando:
- l'evento before print

per il copia/incolla (oppure copia/sposta foglio) , conviene disabilitare in prima battuta il "copia" e poi il resto, in quanto si potrebbero aprire 2 file, copiare da uno e incollare sull'altro.

Pertanto:

Private Sub Workbook_Open()
With Application
.CellDragAndDrop = False
.ExtendList = False
End With
Application.CommandBars("Cell").Enabled = False
Application.CommandBars("Ply").Enabled = False
Application.OnKey "^x", ""
Application.OnKey "^c", ""
Application.OnKey "^v", ""
Dim Ctrl As Office.CommandBarControl
For Each Ctrl In Application.CommandBars.FindControls(ID:=19)
Ctrl.Enabled = False
Next Ctrl
For Each Ctrl In Application.CommandBars.FindControls(ID:=21)
Ctrl.Enabled = False
Next Ctrl
For Each Ctrl In Application.CommandBars.FindControls(ID:=22)
Ctrl.Enabled = False
Next Ctrl

End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Application
.CellDragAndDrop = True
.ExtendList = True
End With
Application.CommandBars("Cell").Enabled = True
Application.CommandBars("Ply").Enabled = True
Application.OnKey "^x"
Application.OnKey "^c"
Application.OnKey "^v"
Dim Ctrl As Office.CommandBarControl
For Each Ctrl In Application.CommandBars.FindControls(ID:=19)
Ctrl.Enabled = True
Next Ctrl
For Each Ctrl In Application.CommandBars.FindControls(ID:=21)
Ctrl.Enabled = True
Next Ctrl
For Each Ctrl In Application.CommandBars.FindControls(ID:=22)
Ctrl.Enabled = True
Next Ctrl

End Sub



Resta immutato il problema del print screen.




[Modificato da dodo47 26/08/2020 17:28]
Domenico
Win 10 - Excel 2016
Post: 6.058
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
26/08/2020 17:44

Ciao Domenico, però e vero quello che hai detto ed a questo punto è inutile cercare di prevedere qualcosa.

in quanto come hai detto tu una semplice foto da cellulare rende vano qualsiasi artificio uno gli venga in mente di attuare.

per la verità alla foto con il cellulare non ci avevo pensato proprio altrimenti non avrei fatto la richiesta, perche è talmente ovvio che non esiste protezione in tal senso.

quindi credo che dobbiamo lasciare di intraprendere qualcosa in tal senso, risparmiando tempo ed impegno.

Comunque buoni i tuoi blocchi su "Application" ne terrò conto nel caso mi servissero.

Ciao Salvatore [SM=x423051]
[Modificato da by sal 26/08/2020 17:47]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
26/08/2020 19:03

Scusate se intervengo
Volevo aprire un post a riguardo "Protezione Civile", approfitto di questo

By Sal aveva un codice complesso, Public Function xrFiCop(Fp, Rp, Cop, ecc ecc), che duplicava da un DB determinate colonne. Intendo apro un Files con solo il VBA, tramite codice si collega al DB e per ex si visualizzano solo le colonne A+B.
Il link dovrebbe essere questo (io non riesco entrare)
http://archi.forumup.it/viewtopic.php?t=240&mforum=archi

La mia domanda e questa... Sul files che apro ci metto un'userform che dice d'immettere la password (basso-livello), il VBA chiede al DB se è giusta. Si, OK ottiene i dati delle due colonne. Secondo Voi è una procedura fattibile Online? Sapete dove posso inserire un files online per condividerlo?
[Modificato da ABCDEF@Excel 27/08/2020 04:28]
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 09:01. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com