Una scorciatoia per due macro

Giovanni ha due cartelle di lavoro, ciascuna contenente delle macro. Anche se le macro sono diverse, vengono richiamate utilizzando la stessa scorciatoia da tastiera. Quando è aperta solo una delle cartelle di lavoro, il collegamento funziona alla grande. Quando entrambe le cartelle di lavoro sono aperte contemporaneamente, Giovanni 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 funzionino armoniosamente.

La risposta breve è che non c’è modo di farlo accadere senza apportare alcune modifiche alle macro stesse. I tasti di scelta rapida sono “globali” per l’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 che sono designati ad eseguire.

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 del collegamento incorporato. 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 fai doppio clic sull’icona della cartella di lavoro in Windows.

Se ti stanchi di doverti ricordare 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 uguali. È 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 presente in quella.

Ti è stato utile?