impedire stampa e salva



  • 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