Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Disabilitare tasto di chiusura "X"

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Disabilitare tasto di chiusura "X"

Postdi blunotte13 » 11/03/11 19:32

Ciao a tutti, con questo codice disabilito il tasto di chiusura di excel
Codice: Seleziona tutto
Public blnexit As Boolean
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel = Not blnexit
End Sub

con questo
Codice: Seleziona tutto
Application.DisplayAlerts = False
ActiveWorkbook.Save
bln = False
ThisWorkbook.Close
Application.Quit

salvare salva, ma quando deve chiudere il file restituisce questo errore:
Errore di run-time'-2147418113 (800ffff)':
Errore di automazione
Errore irreparabile

che il debug indica nella riga ThisWorkbook.Close l'errore.
Qualche idea ?
Ah dimenticavo, mi sono trovato sia ThisWorkbook che ThisWorkbook1, il primo codice l'ho incollato in ThisWorkbook.

Grazie a tutti.
Alla prossima, ciao ciao !!


Excel 2007
blunotte13
Utente Senior
 
Post: 116
Iscritto il: 13/01/10 19:35

Sponsor
 

Re: Disabilitare tasto di chiusura "X"

Postdi PcBase » 11/03/11 22:47

Ciao

In: ThisWorkbook inserisci il seguente codice

Codice: Seleziona tutto
Public blnexit As Boolean
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Cancel = Not blnexit
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    ActiveWorkbook.Save
    bln = False
    If Workbooks.Count = 1 Then
        Application.Quit
    Else
        ThisWorkbook.Close
        Application.EnableEvents = True
    End If
End Sub

Controlla se sono presenti altri fogli aperti.
Windows xp + Office 2003 Ita
Windows8 Office 2013
PcBase
Utente Senior
 
Post: 129
Iscritto il: 24/02/11 23:26

Re: Disabilitare tasto di chiusura "X"

Postdi blunotte13 » 12/03/11 00:22

Adesso funziona, grazie mille !
Alla prossima, ciao ciao !!


Excel 2007
blunotte13
Utente Senior
 
Post: 116
Iscritto il: 13/01/10 19:35

Re: Disabilitare tasto di chiusura "X"

Postdi marte1503 » 05/07/11 22:21

Ciao a tutti!

Son di nuovo qui a chiedere il vostro prezioso aiuto.

Spulciando nel forum ho trovato questa macro fornita da PcBase e l’ho inserita nel mio programmino.
Come risultato ottengo l’esclusione del pulsante “X” come previsto, e il pulsante salva prende la funzione di salva e chiudi.

In un modulo ho inserito questa macro:

Codice: Seleziona tutto
ActiveWorkbook.Save
 ActiveWindow.Close
Application.Quit
End Sub


e l’ho abbinata al pulsante SALVA & CHIUDI creato da me. (con questa macro salvo il lavoro e chiudo il programma)

La modifica che vi chiedo sarebbe questa:
Visto che il pulsante SALVA & CHIUDI l’ho inserito in foglio2 vorrei che premendo il pulsante “X” (piuttosto che rimanere inattivo) potesse portarmi su foglio2 (questa operazione dovrebbe farla da un qualunque foglio mi trovi in quel momento).
In foglio2 poi terminerei l’operazione.

E’ fattibile?

Grazie
Marte1503
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como

Re: Disabilitare tasto di chiusura "X"

Postdi Avatar3 » 05/07/11 23:40

Puoi semplicemente aggiungere una riga di codice alla macro che disabilità la chiusura con la X
Codice: Seleziona tutto
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Cancel = Not blnexit
    Worksheets("Foglio2").Select   '<<<< aggiungere
End Sub
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: Disabilitare tasto di chiusura "X"

Postdi marte1503 » 06/07/11 21:09

Ciao Avatar03
Grazie per la dritta
Alla prossima.
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como

Re: Disabilitare tasto di chiusura "X"

Postdi Avatar3 » 07/07/11 07:25

:)
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: Disabilitare tasto di chiusura "X"

Postdi marte1503 » 09/07/11 10:44

Ciao a tutti.

Ho ancora una domanda per voi..

Vorrei applicare la stessa disattivazione utilizzata per il pulsante di chiusura “X” al pulsante a fianco (quello che permette di passare dalla modalità Tuttoschermo alla modalità interfaccia utente), infatti ormai ho finito di inserire le formule; il programma può funzionare senza modifiche e l’interfaccia utente non mi serve più.

C’è qualche volontario che gentilmente mi scrive il codice?
Grazie
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como

Re: Disabilitare tasto di chiusura "X"

Postdi Anthony47 » 09/07/11 23:58

Non ho capito molto bene cosa vuoi fare, comunque vedi se questa macro fa e disfa quello che cerchi di fare:
Codice: Seleziona tutto
Sub Macro1()
'
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
MsgBox ("Cosi'??")
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
'
End Sub

Se NO, allora allega uno screenshot e descrivi nuovamente per farci capire meglio; per come fare guarda qui: viewtopic.php?f=26&t=80395#p466013

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Disabilitare tasto di chiusura "X"

Postdi marte1503 » 10/07/11 01:52

Ciao Anthony, grazie per l’interessamento!

Provo a rispiegarti meglio l’intenzione, se ancora non si capisce domani allego il file.

Prendendo spunto dalla macro di PcBase e con l'aiuto di Avatar3 ho disattivato il pulsante “x” normalmente utilizzato per la chiusura del file (adesso cliccandoci sopra al (pulsantino “X” appunto) mi porta a foglio2.)

Come dicevo prima vorrei disattivare anche il pulsantino di fianco a “X”

In ThisWorkBook ho inserito una macro che all’apertura del programma mi configura l’attivazione full screen

Codice: Seleziona tutto
Private Sub Workbook_Open()
Sheets("Foglio10").Select
Application.DisplayFullScreen = True


Essendo ormai finito il programma vorrei utilizzare sempre e solo la modalità fullscreen . Il problema nasce quando dalla modalità fullscreen clicco sul pulsantino a fianco di “X”, che come risultato disattiva la visione fullscreen rimpicciolendo lo schermo e rendendo nuovamente visibile la barra della formula e dei comandi.
Ho notato che la tua macro va abbinata a un pulsante che devo creare io, invece la macro che vorrei penso vada inserita in thisworkbook e deve attivarsi automaticamente proprio come quella che porta il foglio a tutto schermo.

Stringendo: premendo il pulsante vicino a “X” non deve accadere assolutamente nulla (il foglio deve rimanere fullscreen)

Spero di aver spiegato bene
Attendo risposta
Grazie 1000 ancora!
marte1503
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como

Re: Disabilitare tasto di chiusura "X"

Postdi Avatar3 » 10/07/11 03:36

Puoi usare la funzione più idonea in this workbook
credo WindowsResize vada bene
Codice: Seleziona tutto
Private Sub Workbook_WindowResize(ByVal Wn As Window)
Application.WindowState = xlMaximized
Application.DisplayFullScreen = True
End Sub

Ma all'uscita, chiusura foglio dovrai ripristinare con
Codice: Seleziona tutto
Application.DisplayFullScreen = False
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: Disabilitare tasto di chiusura "X"

Postdi marte1503 » 11/07/11 21:52

Ciao Avatar3 e grazie per il nuovo sostegno!

Ho provato ad applicare la tua modifica, ho seguito le tue istruzioni ma non ha funzionato.

Generalmente evito di postare il mio lavoro, dà un po' l'impressione si aver poca voglia di tribolare, ma questa volta credo sia necessario per far capire la cosa.

Il file postato contiene le mie macro, e dà una piccola spiegazione di quello che intendo fare.

Se non capisci qualcosa provo a spiegare ancora

Per ora inizio a ringraziarti.


http://www.filedropper.com/fileprovaxforum_1
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como

Re: Disabilitare tasto di chiusura "X"

Postdi Anthony47 » 11/07/11 23:10

Allora, potresti disabilitare il tasto Esc con l' istruzione
Application.OnKey "{ESC}", ""
e riabilitarlo quando esci dalla cartella di lavoro con
Application.OnKey "{ESC}"
Metterei il disable nelle macro di Workbook_Activate e Workbook_Open, e il riabilita in Workbook_Deactivate e Workbook_BeforeClose (se la chiusura avviene; dovrebbe essere If blnexit then Application.OnKey "{ESC}")

Inoltre potresti inserire Application.DisplayFullScreen = True nelle macro di Workbook_WindowResize(ByVal Wn As Excel.Window), di Workbook_Activate() e di Open.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Disabilitare tasto di chiusura "X"

Postdi marte1503 » 12/07/11 22:29

Ciao Anthony, ho provato ad applicare i tuoi consigli ma sono riuscito solo al 50%....

Ora ti spiego, ma intanto grazie per l’attenzione!

- L’esclusione del pulsante ESC funziona perfettamente
- Il pulsantino da parte a x non ha subito nessuna esclusione

La situazione macro ora è questa:
In thisworkbook ho modificato le macro

Codice: Seleziona tutto
Private Sub Workbook_Open()
Sheets("Foglio10").Select
Application.DisplayFullScreen = True
Application.OnKey "{ESC}", ""             <----------- aggiunto
End Sub


Codice: Seleziona tutto
Private Sub Workbook_WindowResize(ByVal Wn As Window)
Application.WindowState = xlMaximized
Application.DisplayFullScreen = True    <-----------come dicevi
End Sub


Codice: Seleziona tutto
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Cancel = Not blnexit
    Worksheets("Foglio2").Select
     If blnexit Then Application.OnKey "{ESC}"           <-------------aggiunto
    Application.DisplayFullScreen = True
End Sub


Codice: Seleziona tutto
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    ActiveWorkbook.Save
    Application.Quit
    bln = False
    If Workbooks.Count = 1 Then
    Else
        ThisWorkbook.Close
        Application.EnableEvents = True
    End If



E nel modulo ho inserito questa

Codice: Seleziona tutto
Sub Chiusura()

 ActiveWorkbook.Save
 MsgBox "Salvataggio dati EFFETTUATO chiusura programma in corso"
 ActiveWindow.Close
 Application.DisplayFullScreen = True
Application.Quit
End Sub


Per escludere il pulsantino da parte a x cosa devo fare?
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como

Re: Disabilitare tasto di chiusura "X"

Postdi Anthony47 » 13/07/11 00:20

Perdona, perche' possa capire finalmente quale e' "il pulsantino da parte a x" mi alleghi uno screenshot? per come fare guarda qui: viewtopic.php?f=26&t=80395#p466013

A presto, ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Disabilitare tasto di chiusura "X"

Postdi marte1503 » 13/07/11 06:12

Ecco l'immagine..
Pensavo che nel file precedentemente allegato si vedesse la freccia.

http://www.filedropper.com/immaginepulsantinovicinoax

Grazie per la pazienza
Ciao
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como

Re: Disabilitare tasto di chiusura "X"

Postdi Anthony47 » 13/07/11 14:31

Nel "file" precedentemente allegato la freccia puntava a caso, a seconda della risoluzione dello schermo e dello zoom impostato.
Allora stiamo parlando del tasto che modifica la dimensione della finestra dell' applicazione excel tra pieno schermo /dimensione variabile; cioe' vorresti che "l' applicazione" sia sempre "maximized".
Personalmente non conosco come disabilitare questi comandi, che sono di sistema e non di workbook, anche se i immagino che ci siano delle API per far colloquiare il vb col sistema.
Non ho nemmeno capito quanto e' grave che la finestra venga ridotta da qualche utente masochista; magari fai il punto della situazione della tua applicazione, spiegando quali prestazioni ti servono obbligatoriamente e quali sono dei "sarebbe bello se".

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Disabilitare tasto di chiusura "X"

Postdi marte1503 » 13/07/11 20:41

Ciao!
Ah capito…
In effetti non è una cosa indispensabile, era solo l’idea di togliere una funzione a questo punto diventata inutile..
Grazie per la spiegazione
Ci risentiamo
Marte1503
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como

Re: Disabilitare tasto di chiusura "X"

Postdi Francesco53 » 18/08/11 17:59

Buona sera a tutti, ho applicato quanto scritto in questo post, ma ho la seguente difficoltà:
in un pulsante denominato Chiudi, vorrei poter chiudere il foglio senza salvare, il problema è
che non ha effetto la macro, anche dal menù file non si riesce a chiudere il file, devo sempre
usare il pulsante Esci e Salva altrimenti non chiude il file.

Allego codice inserito in This WorkBook
Codice: Seleziona tutto
Public blnexit As Boolean
    Private Sub Workbook_Open()
    Sheets("Foglio1").Select
    Application.OnKey "{ESC}", ""
    End Sub
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Cancel = Not blnexit
        Worksheets("Foglio1").Select
        If blnexit Then Application.OnKey "{ESC}"
    End Sub
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        Application.DisplayAlerts = False
        Application.EnableEvents = False
        ActiveWorkbook.Save
        bln = False
        If Workbooks.Count = 1 Then
            Application.Quit
        Else
            ThisWorkbook.Close
            Application.EnableEvents = True
        End If
    End Sub


Questa è la macro del Pulsante Salva e Chiudi:
Codice: Seleziona tutto
Sub SalvaChiudi()
ActiveWorkbook.Save
ActiveWindow.Close
Application.Quit
End Sub


Questa è la macro del Pulsante Chiudi (senza salvare)
Codice: Seleziona tutto
Sub Chiudi()
ActiveWindow.Close
Application.Quit
End Sub


Purtroppo come detto non chiude il file se non con il pulsante Salva e Chiudi.
Grazie se qualcuno può indicarmi dove è l'errore.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 647
Iscritto il: 20/02/10 18:45

Re: Disabilitare tasto di chiusura "X"

Postdi Anthony47 » 18/08/11 22:29

Ma hai avuto la sensazione che la macro serviva per poter chiudere un file senza salvarlo e non, grossomodo, all' opposto?
A te serve una macro grosso modo di questo tipo, da associare al pulsante Chiudi:
Codice: Seleziona tutto
Sub ChiudiNS()
Thisorkbook.Close SaveChanges:=False
End Sub
(chiude il file in cui e' contenuta la macro).

Ciao, fai sapere
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Disabilitare tasto di chiusura "X"":


Chi c’è in linea

Visitano il forum: Marius44 e 6 ospiti