Creare un elenco per Excel

di il
5 risposte

Creare un elenco per Excel

Salve a tutti, devo risolvere questo problema, e mi scuso in anticipo se la soluzione verrà fuori con le possibilità standard di Excel, ma io veramente le ho provate tutte.
Dunque, su un foglio excel devo avere la possibilità di inserire in qualunque cella in qualunque parte del foglio o dei fogli, una voce (es. Nome di una macchina) preso da un elenco fatto a parte nello stesso foglio o in un altro foglio, non è determinante.
Dovrebbe essere esattamente come la funzione fruibile selezionando la cella e facendo tasto destro del mouse " Seleziona da elenco" (infatti potevo usare questa mettendo le voci dell'elenco tutte all'inizio della colonna, ma appena si salta una cella non viene più visualizzato l'elenco).
Forse devo fare qualche routine in VB ?
Sono sicuro che troverò la soluzione grazie a voi.
Grazie in anticipo
Jarod

5 Risposte

  • Re: Creare un elenco per Excel

    Ciao jarod,

    Il tuo quesito è fattibile,

    La soluzione sta nell'esempio

    listArray = Application.GetCustomListContents(1)
    For i = LBound(listArray, 1) To UBound(listArray, 1)
    Worksheets("sheet1").Cells(i, 1).Value = listArray(i)
    Next i

    La funzione getcustomlsitContents ti permette di prelevare valori dall'elenco creato dal menu opzioni di Excel

    Ciao

    Francesco Spalluzzi
  • Re: Creare un elenco per Excel

    Grazie Francesco, avevo perso le speranze.........ma scusami se allargo il problema in quanto ho provato a creare questa funzione ma non sono riuscito a farla girare.
    Puoi gentilmente mostrarmi anche come si fà ? Es. Le mie voci sono nelle celle da A1 a A10.
    Ti ringrazio in anticipo.
    Jarod
  • Re: Creare un elenco per Excel

    Ciao jarod,

    sulla base dell'esempio di codice che ti ho postato cerco di sviluppartelo meglio in base alle tue esigenze, e scusami se prima ho dato per scontato che te lo sapevi sviluppare da solo.

    Prima di tutto gli elenchi in Excel si creano dal pannello opzioni scheda elenco

    Una volta creato l'elenco si recupera la lista di voci con la riga di codice

    listArray = Application.GetCustomListContents(indice)

    dove indice rappresenta la posizione del tuo elenco in quella di tutti gli elenchi

    Dopo questa premessa devi aggiungere nell'editor di Visual basic un modulo vuoto di codice, tasto destro su vbaproject e seleziona aggiungi modulo di codice e poi devi creare la seguente funzione

    function prelevadaelenco(indice)
    listarray = Application.GetCustomListContents(indice)
    For i = LBound(listarray, 1) To UBound(listarray, 1)
    scelta = scelta & i & " " & listarray(i) & Chr(10) & Chr(13)
    Next i
    immetti = InputBox(scelta)
    valore = listarray(immetti)
    prelevadaelenco = valore
    end function

    Una volta creata questa funzione, ritorna sul foglio di lavoro e ad esempio nella cella A1 scrivi

    =prelevadaelenco(indice) dove al posto di indice devi vedere la poszione che occupa il tuo elenco tra tutti gli elenchi creati

    verrà eseguita la funzione e mosterà un elenco di voci di quell'elenco in una finestra di dialogo Inputbox

    memorizzando nella variabile immetti un numero che corrisponderà per venir al tuo problema al nome della macchina

    tale valore immetti sarà assegnato al nome della funzione

    Nella cella a1 verrà visualizzato il nome della macchina corrispondente

    Tale funzione è operativa su tutti i fogli della cartella di lavoro e su qualsiasi cella tu voglia eseguire tale funzione

    ciao a presto!!


    Francesco Spalluzzi
  • Re: Creare un elenco per Excel

    Ciao Francesco, volevo ringraziarti non vedo l'ora di impostare il codice e provare.
    Spero di non avreti fatto perdere del tempo (una cosa l'ho capita:Sei un mago di VBA,e quindi sono sicuro che lo hai fatto in 5 minuti).
    A presto
    Jarod
  • Re: Creare un elenco per Excel

    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>
    Ciao jarod,

    Il tuo quesito è fattibile,

    La soluzione sta nell'esempio

    listArray = Application.GetCustomListContents(1)
    For i = LBound(listArray, 1) To UBound(listArray, 1)
    Worksheets("sheet1").Cells(i, 1).Value = listArray(i)
    Next i

    La funzione getcustomlsitContents ti permette di prelevare valori dall'elenco creato dal menu opzioni di Excel

    Ciao

    Francesco Spalluzzi
    <hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>-->

    eloisa
Devi accedere o registrarti per scrivere nel forum
5 risposte