Forum di Excel e VBA, per condividere esperienze e risolvere problemi su: Excel, Word, Access, Power Point, Microsoft Office, macro, Visual Basic e Visual Studio.
impedire stampa e salva di Chefmaxim (utente non iscritto) data: 27/08/2014 10:00:36
Ho fatto un foglio Excel per gli ordini in cui è inserito un pulsante "salva e stampa" che prevede di salvare l'ordine (in un formato preciso del nome/directory) e di stamparlo.
Purtroppo capita che gli utenti anziché usare il pulsante utilizzino i comandi "tradizionali" salva e stampa, creando copie ridondanti del medesimo file e con nomi diversi, in posizioni diverse.
Mi chiedevo se esiste una macro per impedire ciò e che generasse il messaggio "utilizzare il pulsante" o similare.
Grazie per ogni suggerimento.
di nichicanta (utente non iscritto) data: 27/08/2014 11:03:11
Puoi utilizzare la funzione MsgBox in questo modo e che ti chiede se stamaper oppure no:
Option Explicit
Sub prova()
Dim Risp As Integer
Risp=MsgBox("Vuoi salvare e stampare?",vbYesNo+vbDefaultButton2+vbInformation,"PROVA")
If Risp=vbYes then
'qui ci metti la macro (tua) che ti permette di stampare e salvare
Else
Exit sub
End if
End sub
di Luca73 data: 27/08/2014 11:53:14
Ciao
potresti usare l'evento Workbook_BeforeSave (questo evento si attiva quando cerchi di salvare) e l'evento Workbook_BeforePrint (chesi attiva quando cerci di stampare) per il cui uso ti rimando all'help di VBA.
Usandoli opportunamente quando un utente cercerà di salvare o stampare un file potrà comparirgli un messaggio (in cui ricordi di usare il bottone) e impedirgli di salvare/stampare.
Se per entrambi scrivi l'istruzione "Cancel = true" nel codice annulli il comando e quindi il file non viene stampato/salvato.
Ricordati poi di modificare le tue macro originali aggiungendo il codice sotto riportato per evitare di far attivare il BeforeSave o il BeforePrint quando salvi o stampi a partire dalla macro lanciata dal pulsante.
Ciao
Sub TuaMacro()
Application.EnableEvents = False
...
[ tuo Codice ]
...
Application.EnableEvents = True
End Sub