Condividi:        

[Excel] Convalida da elenco su altro file

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] Convalida da elenco su altro file

Postdi Anthony47 » 25/09/08 21:56

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.
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Sponsor
 

Re: [Excel] Convalida da elenco su altro file

Postdi $Jenny$ » 10/11/08 10:13

Ciao,
Ho provato la soluzione, per la convalida da elenco su altro file,
ma proprio non va.
Condizioni. (office 2003 ita)
Il file origine ha solo un eleco.
Nel secondo file, l'elenco riferito al primo, non fornisce errori,
anche se il primo file non si trova nello stesso percorso, questo viene
aggiornato e inserito automaticamente ..
es. scrivo "=LISTA!UNITA" (senza apici)
poi mi trovo scritto "='C:\LISTA.XLS'!UNITA" (senza apici)
ma poi se vado a fare una convalida dati su una cella, appena do
conferma con OK alla scrittura del riferimento origine (elenco riferito all'elenco altro file),
mi appare questo errore
" l'origine fornisce come risultato corrente un errore. Continure? "

Perchè ??
$Jenny$
Newbie
 
Post: 1
Iscritto il: 10/11/08 09:53

Re: [Excel] Convalida da elenco su altro file

Postdi Anthony47 » 10/11/08 11:50

Ciao Jenny e benvenuta/o nel forum.
Non lo dici apertamente, ma e' evidente che stai cercando di usare il primo dei 2 metodi descritti nel mio post.
E' possibile che ti sia fermata prima di leggere questo warning?
C' e' una piccola (?) limitazione: il file Anagrafe deve essere aperto quando vogliamo usarlo anche solo come origine della convalida.


Quindi: non chiudere il file a cui fai riferimento (riaprilo) e non ti apparira' nessuna domanda; oppure rispondi Si alla domanda e puoi impostare lo stesso la convalida, che pero' funzionera' solo col file aperto.
Oppure usa il metodo 2.

Ciao, fai sapere.
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Convalida da elenco su altro file":


Chi c’è in linea

Visitano il forum: Nessuno e 61 ospiti