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. Anonimo
    2015-02-28T22:33:01+00:00

    Ciao Carlo.

    l'ho già aperto un nuovo thread, dal titolo "Importare i nomi dei file in una ListBox da un percorso conosciuto (Path)."

    ma non ho ricevuto risposte....

    per questo mi ero rivolto a te personalmente......

    Grazie sempre

    Carlo Raffaele

    Infatti, e io non so perché, il tuo nuovo thread non è visibile a me, se non attraverso il link che hai ora fornito!

    Pertanto, ti chiedo scusa e ho postato il mio codice suggerito sia al di sotto, sia al link.

    Nel modulo di codice della tua Userform, prova:

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

    Option Explicit

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

    Private Sub UserForm_Initialize()

        Dim arrFile() As Variant

        Dim i As Long

        Dim sPath As String, sStr As String

        Dim sFileName As String

        Const sPercorso As String = "C:\Carlo"                         '<<==== Modifica

        Const sExt As String = "*.pdf"

        sStr = Application.PathSeparator

        If Right(sPercorso, 1) <> sStr Then

            sPath = sPercorso & sStr

        Else

            sPath = sPercorso

        End If

        sFileName = Dir(sPath & sExt)

        Do While sFileName <> ""

            i = i + 1

            ReDim Preserve arrFile(1 To i)

            arrFile(i) = sFileName

            sFileName = Dir

        Loop

        If CBool(i) Then

            Me.ListBox1.List = arrFile

        End If

    End Sub

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

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-02-28T21:12:51+00:00

    l'ho già aperto un nuovo thread, dal titolo "Importare i nomi dei file in una ListBox da un percorso conosciuto (Path)."

    ma non ho ricevuto risposte....

    per questo mi ero rivolto a te personalmente......

    Grazie sempre

    Carlo Raffaele

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-02-28T17:31:59+00:00

    Ciao Carlo,

    Norman per favore mi aiuti a risolvere questo problema?

    In un percorso definito (Path), come faccio a visualizzare in una listbox tutti i nomi dei file PDF contenenti una determinata cartella, esempio:

    percorso  "C:\Prova\Contatti" , in questo percorso vorrei visualizzare in una listbox tutti i nomi dei file pdf contenuti nel citato percorso.....

    Ti aiuterò molto volentieri, ma penso sia meglio aprire un nuovo thread per questa nuova domanda.

    In questo modo tu aiuterai  altri che potrebbero  cercare gli archivi del forum per una soluzione ad un problema simile e tu aumenterai la possibilità di ricevere risposte utili, sia da me che da altri in questo forum. 

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-02-28T16:26:49+00:00

    Norman per favore mi aiuti a risolvere questo problema?

    In un percorso definito (Path), come faccio a visualizzare in una listbox tutti i nomi dei file PDF contenenti una determinata cartella, esempio:

    percorso  "C:\Prova\Contatti" , in questo percorso vorrei visualizzare in una listbox tutti i nomi dei file pdf contenuti nel citato percorso.....

    Grazie sempre, aspetto le tue preziosi suluzioni...

    Un abbraccio e buon sabato

    Carlo Raffaele

    La risposta è stata utile?

    0 commenti Nessun commento