• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Leggi altro.

VBA - Array e listbox

reb_bl

Utente Standard
Professione: Far sì che gli altri abbiano qualcuno a cui rivolgere i propri insulti
Software: .
Regione: .
#1
Ciao,
avrei bisogno di crearmi una sorta di tabella interna al Default.ivb con una lista di macchine con relativa descrizione, per poi richiamare da combolist e usare il numero della macchina. Questo serve perchè noi progettisti conosciamo le macchine per descrizione mentre gli altri per numero. Devo quindi creare una tabella in cui nella colonna 1 ci sia scritto "macchina 1" e nella colonna 2 "macchina pippo" in maniera tale che visivamente nella listbox io legga "macchina pippo" ma vada a scrivere "macchina 1".
Ho bisogno di una tabella esterna perchè ho più funzioni in cui richiamare il valore "macchina 1".
Non voglio usare applicativi esterni a meno che non ne sia strettamente costretto.

Qualcuno mi sa aiutare?
 
Professione: Disegnatore/progettista
Software: Inventor 2016
Regione: Veneto
#2

reb_bl

Utente Standard
Professione: Far sì che gli altri abbiano qualcuno a cui rivolgere i propri insulti
Software: .
Regione: .
#3
Fretta non ne ho, nel senso che attualmente ho fatto un accrocchio.
Sono grossomodo nella stessa situazione del primo link, la tabella, in qualche modo da help di VBA l'ho fatta, e mi tocca riproporla in 4 (per adesso, in futuro forse più) occasioni.
Vorrei appunto in futuro andare a modificare un solo array, per problemi di gestione/lettura di dati.
 
Professione: Disegnatore/progettista
Software: Inventor 2016
Regione: Veneto
#4
Se ho capito il problema il mio approccio sarebbe un file esterno comune da cui attingono i vari programmi/macro che farai... In che senso devi "riproporla"? Poi una volta caricata in memoria in un array il problema diventa come fai il programma e quella è un'altra faccenda.
L'esempio postato usava excel, la stessa cosa funziona con un file .txt...
 

reb_bl

Utente Standard
Professione: Far sì che gli altri abbiano qualcuno a cui rivolgere i propri insulti
Software: .
Regione: .
#5
Se ho capito il problema il mio approccio sarebbe un file esterno comune da cui attingono i vari programmi/macro che farai... In che senso devi "riproporla"? Poi una volta caricata in memoria in un array il problema diventa come fai il programma e quella è un'altra faccenda.
L'esempio postato usava excel, la stessa cosa funziona con un file .txt...
Non vorrei ricorrere ad un file esterno, più che altro per avere un unico file da smanettare in futuro, magari a far così appesantisco notevolmente il tutto?
In buona sostanza ho 4 combobox con menù a tendina che possono assumere 4 valori differenti: da incapace ho creato 4 combobox con all'interno di ogni funziono combo una lista.
Volevo migliorare il tutto.
 
Professione: Disegnatore/progettista
Software: Inventor 2016
Regione: Veneto
#6
Come detto tutto dipende da come hai fatto il programma... Puoi anche avere un unico array compilato all'interno del programma una volta e poi usare sempre quello per riempire i tuoi listbox ogni volta, starà a te se usare l'array come variabile globale o inventarti altri artifizi più eleganti...
 

reb_bl

Utente Standard
Professione: Far sì che gli altri abbiano qualcuno a cui rivolgere i propri insulti
Software: .
Regione: .
#7
Come detto tutto dipende da come hai fatto il programma... Puoi anche avere un unico array compilato all'interno del programma una volta e poi usare sempre quello per riempire i tuoi listbox ogni volta, starà a te se usare l'array come variabile globale o inventarti altri artifizi più eleganti...
Vorrei proprio fare questo!
... ma non sono capace...:)
 
Professione: Disegnatore/progettista
Software: Inventor 2016
Regione: Veneto
#8
Spero tu sia più abile a pagare birre :p
Codice per VBA

Codice:
'Questa la metti nei vari Form che contengono la combobox, adattando i nomi di combobox e form
Private Sub Userform_Initialize()
    Call CompilaComboBox(myForm.ComboBox1)
End Sub

' Questa è una sub generale che compila sempre nello stesso modo il parametro combobox che viene passato
' da mettere in un modulo
Public Sub CompilaComboBox(myCombo As ComboBox)
    myCombo.AddItem ("Tizio")
    myCombo.AddItem ("Caio")
    myCombo.AddItem ("Sempronio")
End Sub
 
Ultima modifica: