collegamento tra due file excel



  • collegamento tra due file excel
    di NIKO (utente non iscritto) data: 31/03/2016 10:19:07

    Ciao a tutti,
    vorrei sapere se è possibile fare questo collegamento:
    Ho due file excel, il primo si chiama Commesse.xlsx ed il secondo Clienti.xlsx. Nel foglio del file Clienti.xlsx ho l'eneco di tutte le ragioni sociali nella Colonna A. Vorrei avere in una colonna (a partire da una determinata riga) del file Commesse.xlsx un menù a tendina che riprende l'elenco delle ragioni sociali dei Clienti.



  • di patel data: 31/03/2016 10:32:20

    allega i due file e metti anche il risultato che vuoi ottenere




  • Allegati file
    di NIKO (utente non iscritto) data: 31/03/2016 13:39:02

    Ho allegato i file come richiesto.
    Il file Inserimento CLienti.xlsx è quello che dovrà contenere l'elenco Clienti. Il campo che interessa è quello deonominato "Ragione Sociale"
    MyLIBRA.xlsx è il file excel all'interno del quale devo creare in alcune celle (quelle evidenziate in rosso) un menu a tendina che si va a prendere le "Ragione Sociali" dei Clienti presenti nel precedente file excel.

    Grazie mille

    Nicola



  • di alfrimpa data: 31/03/2016 16:11:27

    Ciao Nicola

    Excel non consente di basare una convalida dati su un altro file comunque con un escamotage credo di essere riuscito.

    Sul foglio 2 da A1 in poi ci sono i riferimenti all'altro file.

    Nel definire il nome come elenco ho usato la prima formula che vedi sotto che lo rende dinamico; in tale formula c'è una UDF scritta in VBA che mi conta le celle che hanno una stringa e le passa come parametro alla funzione SCARTO.

    Ho dovuto usare questo sistema perché altrimenti avresti avuto una "tendina" lunga un kilometro

    Prova i due file e fai sapere.

    Dimenticavo di dire che sul foglio2 devi cambiare i riferimenti (directory)

    Alfredo 
     
    =SCARTO(Foglio1!$A$1;0;0;contalettere(Foglio1!$A$1:$A$1000);1)
    
    Function contalettere(rng As Range)
    Dim cel As Range
    Application.Volatile
    For Each cel In rng
        If cel.Value <> "" Then
            contalettere = contalettere + 1
        End If
    Next cel
    End Function
    





  • risposta
    di NIKO (utente non iscritto) data: 31/03/2016 18:09:48

    Funzionano.
    Ma non ho assolutamnente capito come hai fatto a creare quell'elenco dinamico !!!!
    Una domanda:
    la formula
    =SE('E:1[INSERIMENTOCLIENTI-rev01.xlsm]Foglio1'!A6=0;"";'E:1[INSERIMENTOCLIENTI-rev01.xlsm]Foglio1'!A6)
    che hai inserito nel foglio 1 in pratica va a prendere il contenuto delle celle che contengono la Ragione Sociale del file "inserimentoclienti"?
    E' una formula che posso copiare in qualsiasi altro file?

    Ciao

    Grazie



  • di patel data: 31/03/2016 19:43:25

    puoi copiare la struttura della formula, ma dovrai cambiare il percorso, il nome del file, il foglio, la cella ...
    insomma quasi tutto




  • risposta
    di NIKO (utente non iscritto) data: 01/04/2016 09:30:20

    Ok, provo e verifico se riesco.
    Intanto che ci sono ti chiederei anche altre due cose, se è fattibile.
    1) attivare una macro quando il valore di una cella è uguale ad un determinato valore o stringa (ex. valore = 1 - stringa = "compila")
    2) aprire in automatico un file excel esterno quando il valore di una cella è uguale ad un determinato valore o stringa (ex. valore = 1 - stringa = "compila")

    Non ti allego un file perchè possono variare e quindi avrei bisogno di un qualcosa che all'occorrenza posso io inserire nel file che uso.

    Grazie mille

    Ciao

    Nicola



  • INFO
    di NIKO (utente non iscritto) data: 01/04/2016 11:10:59

    scusate, ma devo aprire un'altra discussione per l'ultima richiesta?



  • di alfrimpa data: 01/04/2016 11:43:52

    Nicola forse è meglio

    Alfredo