Mi e' stato chiesto via messaggio privato se e' possibile inserire una "Convalida" da un elenco appartenente pero' a una diversa cartella di lavoro (un diverso file.xls).
La teoria
Sappiamo (vero?) che la "Convalida" e' un meccanismo con cui excel puo' controllare se nella cella sottoposta a convalida viene inserito un dato che rispecchi le regole della convalida; es un testo, un numero compreso tra X e Y, una voce di un elenco, e altri.
Per impostare una Convalida: si seleziona la cella (o le celle) da sottoporre a Convalida, Menu /Dati /Convalida; tab Impostazioni, Consenti=scegliere l' opzione (che determina quali altri dati dovranno essere inseriti); si compila eventualmente il Messaggio di input (se presente verra' visualizzato come "suggerimento" quando si seleziona la cella), il Messaggio di errore (cosa visualizzare quando non si rispetta la convalida) e lo "stile" dell' errore (Bloccante, Non bloccante, solo Informazione); si completa con Ok.
Se la scelta di "Consenti" viene posizionata su Elenco, verra' presentato un campo "Origine" in cui va scritto dove reperire l' elenco dei dati validi.
Qui le opzioni per definire l' elenco sono:
a) si scrive direttamente l' elenco nello spazio (se e' un elenco statico); es "Pippo;Pluto;Paperino" (senza apici); personalmente non raccomando questa tecnica, a favore delle successive.
b) si prepara un elenco in alcune celle del foglio corrente di lavoro e si scrivono le coordinate di quest' area; es "=H1:H10" (senza apici).
c) dopo aver preparato l' elenco, gli si assegna un nome (tramite Menu /Inserisci /Nome /Definisci) e si usa questo nome; es "=elenconomi" (senza ..); in questo modo l' elenco puo' essere sia sul foglio di lavoro corrente sia in qualsiasi altro foglio del file corrente (o "cartella di lavoro corrente")
Questo e' quello che offre excel, e questo possiamo usare.
Tutto questo preambolo per dire che "no, non si può fare?" (la domanda era: si puo' Convalidare con un elenco inserito su un file diverso). Assolutamente no, nel senso che si puo' fare.
Ecco come:
-supponiamo di avere un "elenco" su Foglio1 del file Anagrafe.xls
-supponiamo di voler convalidare la cella A1 di Foglio1 del file Nuovafattura.xls
-su Anagrafe.xls, assegniamo un Nome alle celle che contengono l' elenco che ci interessa; es Elenco1
-su Nuovafattura.xls definiamo il nome MioElenco: Menu /Inserisci /Nome /Definisci; come nome scriviamo MioElenco, nell' area "Riferito a" cancellare quello che si legge e scrivere =Anagrafe.xls!Elenco1, chiudere con Ok
-selezioniamo la cella da convalidare, scegliere Consenti=Elenco, nell' area Origine scrivere "=MioElenco" (senza apici, ovviamente).
Questo e' tutto; provate adesso la convalida...
C' e' una piccola (?) limitazione: il file Anagrafe deve essere aperto quando vogliamo usarlo anche solo come origine della convalida.
E se questo vincolo e' invece grosso, non disperiamoci, c' e' una soluzione altrettanto semplice:
-apriamo il file Anagrafe.xls
-copiamo le celle che contengono l' elenco
-andiamo su un' area libera del file Nuovafattura.xls, Menu /Modifica /Incolla speciale, premere Incolla collegamento; Nota 1.
-assegniamo a questo elenco il nome MioElenco1 e usiamo =MioElenco1 come origine della convalida.
-infine: Menu /Modifica /Collegamenti; controllare che Aggiornamento sia impostato su "Automatico"; premere Prompt di avvio e impostare "Non visualizzare l' avviso e aggiorna i collegamenti"; Ok, Chiudi.
In questo modo, quindi, sul file Nuovafattura.xls viene creata una copia "locale" dell' elenco, che si aggiorna tutte le volte che si apre il Nuovafattura.xls, e che puo' essere usato per la convalida.
C' e' anche qui un pero': se su Anagrafe.xls modifico qualche voce gia' presente in elenco va tutto bene, ma se ne aggiungo allora c' e' il rischio che la mia immagine locale sia ferma agli elementi che avevo incollato (Nota 1 sopra).
Per gestire questa situazione:
-fare in modo su Anagrafe che il nostro elenco sia in una colonna a se' (cioe' che alla fine dell' elenco non ci siano altre informazioni).
-dopo che avete incollato i collegamenti su Nuovafattura.xls, andate sul primo valore: vedrete una formula del tipo =[Anagrafe.xls]Foglio1!A2
-Modificate la formula in =SE([Anagrafe.xls]Foglio1!A2<>"";[Anagrafe.xls]Foglio1!A2;"")
-copiatela verso il basso, per molte piu' celle di quanto il vostro elenco attuale occupi; esempio fino ad A100: partendo da A1 sono 100 celle; se l' elenco attuale occupa 20 voci c' e' spazio per altre 80 voci; se vi sembra poco arrivate fino ad A1000, o A10000 (ma non esagerate)
-infine invece di assegnare il nome MioElenco1 all' elenco attuale, inseriamo il nome MioElenco2 con questa tecnica:
>Menu /Inserisci /Nome /Definisci; come nome scriviamo MioElenco2, e nell' area Riferito a scriviamo
=SCARTO(Foglio1!$A$1;0;0;100-CONTA.VUOTE(Foglio1!$A$1:$A$100))
Ho immaginato che l' elenco "locale" sia su Foglio1, da A1, e che le formule siano state inserite fino ad A100; adattate la formula alla vostra situazione, ma rispettate la sintassi che vi ho dato anche se vi sembra che qualcosa sia superfluo...
-usiamo =MioElenco2 come origine della convalida.
Direi che per stasera puo' bastare.
TEMO pero' di avervi fatto una testa cosi', anche se questo e' oltre la mia intenzione; spero che l' argomento sia almeno di vostro interesse. E se avete domande o osservazioni sono qua.
Ciao.