bloccare ridimensionamento foglio
Hai un problema con Excel? 
bloccare ridimensionamento foglio
di GiancaG data: 30/05/2013 14:07:38
Ciao a tutti
volevo chiedere se era possibile bloccare le dimensioni di un solo foglio in modo che appaia
solo in quelle dimensioni senza la possibilità dell'utente di ridimensionarlo, e senza le icone in alto a "sinistra riduci/ridimesiona/chiudi"
anzi la crocetta rossa mi piacerebbe che chiudesse solo il foglio in questione e non tutto il file
altrimenti aggiungerei un pulsante se non fosse possibile.
Grazie a tutti
di Vecchio Frac data: 31/05/2013 10:46:28
Non è mica semplicissimo, per disabilitare i pulsanti di sistema serve ricorrere alle API.
L'interfaccia di Excel non ha la flessibilità di un form di VB, è un contenitore predefinito con cui puoi fare alcune cose ma altre sono gestite dal sistema.
Per impedire la chiusura dalla X di sistema puoi intercettare l'evento BeforeClose a livello di ThisWorkbook e inibirlo.
Per le dimensioni di un foglio puoi intercettare l'evento WindowResize del foglio ma è un accrocchio e rischia di mandare in crash Excel (fermo restando che Ctrl-Interr può fermare l'esecuzione e quindi vanificare l'evento).
Consiglio: un bel form modale a pieno schermo da gestire come vuoi, e poi quando l'utente ha finito metti i dati nelle celle che ti iteressano..
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel = True
End Sub
Private Sub Workbook_WindowResize(ByVal Wn As Window)
Wn.Height = 685.5
Wn.Width = 964.5
End Sub |
di Gianca (utente non iscritto) data: 31/05/2013 14:57:22
grazie Vecchio Frac seguirò il tuo consiglio...
di Gianca (utente non iscritto) data: 18/06/2013 15:13:04
Ciao Vecchio Frac
mi spiegheresti meglio questa form modale...
grazie mille
di Gianca (utente non iscritto) data: 27/06/2013 03:32:43
ok....ho capito ora mi è tutto più chiaro.....
di Vecchio Frac data: 27/06/2013 08:37:42
Mi era scappato questo messaggio.
I form si dice "modale" quando l'utente è obbligato a chiuderlo prima di poter tornare a lavorare sul foglio (un form obbligatorio insomma).
Per rendere modale un form basta chiamarlo così:
UserForm1.Show vbModal
(il suo contrario è vbModeless, in questa modalità l'utente può andare a spasso nel foglio rendendo inattivo il form che però continua a rimanere vigile e disponibile all'utente).
Sei riuscito a risolvere?
Vuoi Approfondire?