Originariamente inviato da ilsanto18
@ gibra

Ciao, esiste quindi, oltre ad itemdata, un modo per associare ai valori pippo,topolino,minni dei numeri da inserire nella list2?
i valori della lista sono molti e volevo trovare una procedura veloce per l'inserimento dei dati.
Permettimi qualche annotazione, non so che applicazione tu stia creando, quindi quanto segue potrebbe non essere applicabile, ma:
1)
Già il fatto di scrivere valori relativi alla stessa entità (nome) in due file diversi, mi da l'impressione di correre un rischio inutile e percoloso: infatti se perdi anche un solo valore in uno dei 2 file, sballano tutte le accoppiate.
Sarebbe meglio una tabella di un database. Se non usi un database, preferirei un file strutturato in formato XLM oppure INI.
2)
Quando scrivi che i valori della lista sono molti ho l'impressione che il ListBox non sia la strada giusta, ma questo dipende da quanto lunga è la lista e da cosa devi farci.
Di norma una lista serve all'utente per selezionare un valore, se la lista è troppo lunga, si è costretti a scorrere molti elementi prima di trovare quello desiderato e ne soffrono gli occhi dell'utente che si spazientisce (a ragione).

A parte queste considerazioni, questa potrebbe essere una soluzione:
usare un array in parallelo al ListBox.
Quando aggiungi un Nome al ListBox, carichi il valore in un array che avrà lo stesso indice dell'elemento aggiunto. Ovvero (ho scritto al volo per cui VERIFICA!!!!)

codice:
    Rem Inserire nella sezione Dichiarazioni del Form:
    Dim Valori() As Long
    Dim idx as long 

    Rem 
    Rem Tuo codice
    Rem ..........

    With List1 
        .AddItem listname

        idx = .NewIndex
        Redim Preserve Valori(idx)
        Valori(idx) = densità
    End With

    Rem ..........
    Rem restante Tuo codice
In tal modo avrai che con lo stesso indice potrai leggere sia il nome nel ListBox che la densità nell'array

Nome = List1.List(3)
Densita = valori(3)