Far apparire le finestre di dialogo modali davanti alle cartelle di lavoro (Microsoft Excel)
Don tende a lavorare su due monitor e ha più cartelle di lavoro aperte sulla stessa istanza di Excel. Inoltre massimizza le sue finestre. (Si descrive come un tipo che “vede tutto in una volta”.) Recentemente, quando Don ha fatto qualcosa che apre una finestra di dialogo modale, la finestra si apre dietro la cartella di lavoro, che gli impedisce di vedere la finestra di dialogo o di interagire con esso. Si chiede se esiste un modo per visualizzare le finestre di dialogo modali davanti alla cartella di lavoro.
Prima di rispondere, è opportuno precisare che le finestre di dialogo possono essere di due tipi: modale e non modale. Una finestra di dialogo non modale è virtualmente indipendente dal programma a cui appartiene. Un buon esempio di tale finestra di dialogo è la finestra di dialogo Trova e sostituisci. D’altra parte, una finestra di dialogo modale (quelle con cui Don ha problemi)
deve essere risposto o chiuso prima di poter continuare a lavorare con il programma a cui appartiene la finestra di dialogo.
Non è chiaro se il problema di Don sia con le finestre di dialogo modali generate da Excel stesso o se sono finestre di dialogo generate da macro su cui Don ha il controllo. Se è il primo, c’è ben poco che si possa fare; la posizione a più livelli della finestra di dialogo è controllata interamente dal programma (e dai programmatori che l’hanno creata). In altre parole, sarebbe necessaria una modifica del codice per far apparire la finestra di dialogo a strati sopra la cartella di lavoro anziché sotto di essa.
Comprendi che esiste uno scenario in cui il problema potrebbe non essere dovuto a un problema di programmazione di Excel. È possibile che sul sistema sia in esecuzione un’applicazione di terze parti che influisce sulla stratificazione delle finestre di dialogo e sulle finestre principali. I colpevoli tipici in questo scenario sono le utilità residenti in memoria che si obbligano ad apparire sempre in primo piano rispetto a qualsiasi altra cosa sia sullo schermo. L’unico modo per vedere se questo è il colpevole è disabilitare il caricamento di tali utilità e, all’interno di Excel, visualizzare una finestra di dialogo modale. Se il comportamento torna alla normalità, allora conosci la fonte del problema.
Se è il caso, tuttavia, che la finestra di dialogo sia generata da una macro sviluppata da Don, la soluzione è regolare il codice che genera la finestra di dialogo modale. (Nelle macro di Excel questi tipi di finestre di dialogo vengono in genere implementati tramite moduli utente.).
Il problema con il posizionamento del modulo utente in più scenari di schermo viene superato dal posizionamento manuale del modulo utente all’interno del suo codice di avvio. Ad esempio, puoi usare qualche variazione su questo:
Load UserForm1 UserForm1.StartUpPosition = 0 UserForm1.Top = Application.Top + 25 UserForm1.Left = Application.Left + 25 UserForm1.Show
Potrebbe essere necessario sperimentare con il posizionamento, ma è necessario impostare la proprietà StartUpPosition su 0 in modo che VBA sappia che si desidera posizionare manualmente il modulo utente.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (13349) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.