› Sviluppare funzionalita su Microsoft Office con VBA › caricare elementi in una combobox da array.
-
AutoreArticoli
-
buongiorno, sto tentando di caricare degli elementi all'interno di una combo, e nel primo caso, dove gli elementi sono specificati nel codice , tutto funziona. Codice :
nel secondo caso vorrei caricarli da un elenco contenuto in un range di celle ma ni genera un errore di incompatibilità "tra tipi" . Credo che qualcosa sia sicuramente errato sia nella scrittura del codice che nella dichiarazione delle variabili (forse). Da un paio di giorni che sto provando ma nulla di positivo . . .
grazie anticipatamente, saluti.
secondo caso
Private Sub CommandButton2_Click() Rem range da M2 a M13 Dim elementi As Variant Dim i As Long Dim elenco As Range Set elenco = Range("M2:M13") elementi = Array(elenco) For i = LBound(elementi) To UBound(elementi) cmb01.AddItem elementi(i) Next i End Subprimo caso
Private Sub CommandButton1_Click() Dim elementi As Variant Dim i As Long elementi = Array("gennaio", "febbraio", "marzo") For i = LBound(elementi) To UBound(elementi) cmb01.AddItem elementi(i) Next i End SubProva cosi':
Private Sub CommandButton2_Click() Rem range da M2 a M13 Dim elementi As Variant Dim i As Long Dim elenco As Range For Each elenco In Range("M1:M13") cmb01.AddItem elenco.value next End SubCiao,
non alleghi il file e non specifichi che controllo è cmb01 ... se la combobox è un controllo ActiveX sostituisci
elementi = Array(elenco) For i = LBound(elementi) To UBound(elementi) cmb01.AddItem elementi(i) Next icon
elementi = Application.Transpose(elenco) Cmb01.List = elementiProva cosi':
ottima la tua soluzione, ti ringrazio !!
non alleghi il file e non specifichi che controllo è cmb01 ... se la combobox è un controllo ActiveX sostituisci
grazie Scossa , da te è possibile sempre imparare cose nuove !
nb : il pulsante 2 non funziona .
Allegati:
You must be logged in to view attached files.Ciao
ottima la tua soluzione, ti ringrazio !!
ok, ma togli la riga
elementi = Array(elenco)come ti avevo indicato (non serve a nulla).Set elenco = Range("M2:M13") elementi = Array(elenco) elementi = Application.Transpose(elenco) cmb01.List = elementiIl pulsante 2 non funziona perchè quel codice non ha senso. Se vuoi ciclare le celle segui il suggerimento di Aldo (ciao).
ok, ma togli la riga
elementi = Array(elenco)come ti avevo indicato (non serve a nulla).ciao Scossa, fatto !
grazie.
Private Sub CommandButton5_Click() Dim elementi As Variant Dim elenco As Range Set elenco = Range("M2:M13") elementi = Application.Transpose(elenco) cmb01.List = elementi End SubProva cosi':
Aldo ho aggiunto qualcosa per rendere la routine dinamica . . . grazie.
Private Sub CommandButton4_Click() Dim ur As Long Dim elementi As Range Dim Elenco As Range ur = Cells(Rows.Count, "m").End(xlUp).Row Set Elenco = Range("m2:m" & ur) For Each elementi In Elenco cmb01.AddItem elementi.Value Next End Sub -
AutoreArticoli
