Inibire Ctrl/Pause

Anonimo
2015-02-01T11:49:18+00:00

Caro Norman, ho preso in prestito il listato che hai mandato a Massimo, in relazione su come inibire il salvataggio automatico.

Il listato che tu hai scritto , a me è servito solo la parte inerente "Private Sub Workbook_BeforeClose(Cancel As Boolean),

in quanto il mio problema è leggermente diverso, e cioè:

voglio evitare che chiudano il file.xlsm dalla barra del menù di Windows, dove si posizionano tutti i programmi che si aprono, per questo ho scritto questa routine in   Workbook_BeforeClose(Cancel As Boolean)  :

____________________________________________________

Qeston = MsgBox(Chr$(13) & "Si Vuole Salvare Prima di Uscire?" & Chr$(13) _

         , 4132, "Uscita Forzata Utente")

If Qeston = 7 Then   '==Non Salva ed Esce==

   Dim Nme As Name

   EvitaChiusuraForzata = 1

   On Error Resume Next

   Set Nme = Me.Names("SaveMeNot")

   On Error GoTo 0

   If Not Nme Is Nothing Then

      Me.Saved = True

      Exit Sub

   End If

Else

   Dim Nme2 As Name  '==Salva ed Esce==

   On Error Resume Next

   EvitaChiusuraForzata = 1

   Set Nme2 = Me.Names("ArkNostro3")

   On Error GoTo 0

   Me.Saved = True

   Me.Save

   Me.Close

End If

__________________________________________________

Tutto funziona alla grande! L'utente è sempre fra le Form del progetto e non ha possibilità di andare sulle tabelle dei worksheets della cartella "ArkNostro3.xlsm", quindi evito che combini guai!

Ma se l'utente tenta di chiuderlo in maniera anomala dalla barra di Windows, gli compare MSGBOX sopra descritto in "Workbook_BeforeClose(Cancel As Boolean)" .

Interrompendo il codice con Ctrl/Pause, compare il messaggio di Visual Basic:

con due pulsanti: Contiua  o  Fine,

se l'utente clikka su Fine, compare quel maledetto messaggio di excel con tre pulsanti:

Salva  -  Non Salvare  -  Annulla.

Basti che l'utente clika su Annulla per ritrovarsi sulle tabelle e quindi ripeto combinare guai!

Insomma caro Norman, come fare per evitare di interrompere il codice (inibire anche questo), tenendo sempre il tuo listato nella sub Workbook_BeforeClose(Cancel As Boolean)  ?

Spero di essere stato chiaro

Grazie sempre per quello che fai per noi.

Un abbraccio

Carlo Raffaele

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2015-02-01T15:05:45+00:00

Ciao Carlo,

Penso che sia meglio non indirizzare le tue domande ad un individuo, perché ci sono molti altri in questo forum che potrebbero  assisterti e, possibilmente, fornire consigli migliori di quelli suggeriti da me.

Ciò nonostante, se ho ben compreso il tuo requisito, prova qualcosa del genere:

'=========>>

Option Explicit

'--------->>

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Dim Res As VbMsgBoxResult

    If Not Me.Saved Then

        Me.Saved = True

        Res = MsgBox(Prompt:=vbNewLine & "Si Vuole Salvare Prima di Uscire?", _

                     Buttons:=vbSystemModal + vbQuestion + vbYesNo, _

                     Title:="Uscita Forzata Utente")

        If Res = vbYes Then

            Me.Save

        End If

    End If

End Sub

'<<=========

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

5 risposte aggiuntive

Ordina per: Più utili
  1. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni