bloccare ridimensionamento foglio



  • 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?