Una scorciatoia per due macro (Microsoft Excel)
William ha due cartelle di lavoro, ciascuna contenente macro. Anche se le macro sono diverse, vengono richiamate utilizzando la stessa scorciatoia da tastiera. Quando solo una delle cartelle di lavoro è aperta, il collegamento funziona alla grande. Quando entrambe le cartelle di lavoro sono aperte contemporaneamente, William non sa mai esattamente cosa verrà eseguito. Si chiede se esiste un modo per Excel di trattare le scorciatoie in modo indipendente in modo che se entrambe le cartelle di lavoro sono aperte le scorciatoie da tastiera funzioneranno in modo armonioso.
La risposta breve è che non c’è modo di farlo accadere senza apportare alcune modifiche alle macro stesse. I tasti di scelta rapida sono “globali”
all’istanza dell’applicazione in esecuzione (in questo caso, Excel). Quando le cartelle di lavoro vengono aperte, i relativi collegamenti vengono aggiunti a una tabella interna che funge da indice di tutti i collegamenti e della macro per cui sono designati per l’esecuzione.
Questo indice sembra essere ordinato alfabeticamente, in base al nome della cartella di lavoro. Quando si utilizza un tasto di scelta rapida, Excel esamina l’indice e seleziona il primo collegamento corrispondente nell’indice. Inoltre, se si dispone di un collegamento che utilizza uno dei collegamenti incorporati, la macro creata verrà sempre eseguita prima di quella incorporata. Se le macro hanno lo stesso nome, viene eseguita la prima aperta.
Poiché la tabella indice gestita da Excel viene creata dall’istanza dell’applicazione, è possibile aggirare il conflitto assicurandosi di aprire ciascuna cartella di lavoro nella propria istanza di Excel. Non utilizzare la finestra di dialogo Apri per caricare la seconda cartella di lavoro; invece fare doppio clic sull’icona della cartella di lavoro in Windows.
Se ti stanchi di ricordarti di aprire le cartelle di lavoro in questo modo, l’unica altra opzione è iniziare ad apportare modifiche alle macro. La modifica più semplice sarebbe modificare i tasti di scelta rapida in modo che non siano gli stessi. È possibile mantenere gli stessi tasti di scelta rapida aggiungendo del codice all’inizio di ogni macro. Chiedi a ogni macro di controllare il nome della cartella di lavoro attiva. Se il nome corrisponde al nome previsto per quella macro, il codice può continuare a essere eseguito. Se non corrisponde, il codice può attivare l’altra cartella di lavoro ed eseguire direttamente la macro in quella.
_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 (2872) si applica a Microsoft Excel 97, 2000, 2002 e 2003.