|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Feb 2006
Messaggi: 14
|
[VBA] Combobox tra excel e VB
Ciao a tutti, un problema che per voi sarà banale, mentre per me è in questo momento irrisolvibile da solo.
devo, da un foglio di excel inserire una combo che si riempi con dei dati del foglio di excel che si presentano in colonna. e questo è il primo problema!!! il secondo è che una volta che seleziono una voce della combo,mi restituisca solo alcuni valori in celle che gli dico io(sempre in colonne). purtroppo ho bisogno della spiegazione passo passo perchè sono un neofita di VB e di macro. spero di essermi spiegato bene grazie ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
1. Rinominare Thread con [VBA] iniziale...
2. Primo quesito : > Ad esempio : Codice:
ComboBox1.ListFillRange = "A1:A5" ![]() Per il resto spiega più precisamente cosa vuoi ottenere... |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Feb 2006
Messaggi: 14
|
[VBA] combobox tra excel e VBA
ok ho capito, ma non so rinominare ll tread iniziale.
un volta creato l'elenco nella combobox, vorrei che ad ogni voce della combobox selezionata, in alcune celle venissero cambiati dei valori. naturalmente dovrò indicargli io quali valori mettere e dove metterli!!! è possibile?? grazie ciao |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Semplice. Basta usare l'evento Change() della ComboBox :
Private Sub ComboBox1_Change() Prendi il valore selezionato ( ComboBox1.Text ) e ci fai quello che vuoi... |
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Feb 2006
Messaggi: 14
|
perfetto grazie, ho scritto questo codice ma non so come indicargli le celle in cui deve andare a scrivere il valore
esempio del codice che stò facendo ComboBox1.ListFillRange = "AF1:AF5" If ComboBox1.Text = "ARCA" Then cella AG6 = D2 "cioè la cella d2 deve diventare uguale ad AG6" End If grazie ciao |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Quel codice non può stare tutto assieme nella stessa routine. ComboBox1.ListFillRange = "AF1:AF5" va messo da solo ( evento a scelta : apertura del WorkBook, selezione del Foglio, Pulsante, ecc... ) Poi sotto il Change della Combo...: Codice:
Private Sub ComboBox1_Change() If ComboBox1.Text = "ARCA" Then Range("AG6").FormulaR1C1 = Range("D2").Text End If End Sub ![]() |
|
![]() |
![]() |
![]() |
#7 |
Junior Member
Iscritto dal: Feb 2006
Messaggi: 14
|
sono riuscito....
mi manca solo una cosa, come faccio ogni volta che apro il file excel a far tornare una voce della combo sempre uguale. cioè tra cinque valori ipotizziamo (rete-campo-linee- selezionare la voce), io vorrei che ad ogni apertura del file excel tornasse sempre la voce "selezionare la voce" è fattibile?? grazie |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Se mantieni la Combo in modalità "DropDownCombo" ( proprietà "Style" ), te la cavi con 2 righe di codice. Esempio ( nel Modulo "ThisWorkbook" ) :
Codice:
Private Sub Workbook_Open() Sheets("Foglio1").ComboBox1.ListFillRange = "Foglio1!A1:A5" Sheets("Foglio1").ComboBox1.Text = "Selezionare la voce" End Sub ![]() |
![]() |
![]() |
![]() |
#9 |
Junior Member
Iscritto dal: Feb 2006
Messaggi: 14
|
GRZIE HO PROVATO CON LE DUE RIGHE DI CODICE MA MI RESTITUISCE QUESTO ERRORE
ERRORE DI RUNTIME 9 INDICE NON INCLUSO NELL'INTERVALLO..... CIOè???? |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quelle 2 righe sono corrette ( crea un file Excel di prova con una Combo, e mettici quel codice, vedrai che non solleva mai eccezioni ).
Il problema sta nel codice che hai legato al .Change della Combo, e forse ad altri eventi... Evidentemente cerca di impostare una cella con un indice non valido... Cmq, ti ripeto che per usare quelle 2 righe la Combo deve tassativamente avere la proprietà Style = fmStyleDropDownCombo. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:56.