› Sviluppare funzionalita su Microsoft Office con VBA › combobox che restituisce dinamicamente un valore da una cella.
-
AutoreArticoli
-
Buongiorno a tutti,
ho un elenco in una combobox1 con all'interno un elenco di articoli, vorrei che quando selezioni un articolo
la textbox1 mi restituisse un colore associato a quell'articolo, (esempio: scarpe=rosse; maglia=bianca;etc.).
Non si capisce.
Prima parli di combobox e poi di textbox.
Devi spiegare meglio allegando file di esempio.
Buonasera Alfredo,
ho due Combobox (ma potrei avere anche una Combo e una Text), dove vorrei che dinamicamente, al selezionare della Combo (NUMERO) nella Combo (COL) apparisse il colore abbinato, mi spiego meglio in una tabella di riferimento (E2:F5) ho abbinato le taglie al colore.
Non mi dire di utilizzare un ciclo FOR, perchè ancora non ho capito come si implementa 🙂
Grazie.
Allegati:
You must be logged in to view attached files.Scusa ma se ad ogni taglia corrisponde un solo colore che necessità hai della seconda combobox?
Alfredo, non so come si fa ad associare ad una singola Combo più valori perciò ti chiedo aiuto.
Tu hai parlato di due combobox.
Ma se alla taglia 32 corrisponde solo il colore rosso che necessità c'è di avere la seconda combobox?
Se la taglia avesse avuto più colori allora selezionando la taglia sulla prima combo avresti avuto nella seconda i colori appunto della taglia 32.
E questo solo con un ciclo For puoi farlo.
Nel tuo caso, visto che il colore per taglia è unico, ti basterebbe un CERCA.VERT (lato VBA WorksheetFunction.VLookup) per inserire in una textbox (no combobox) il colore della taglia prescelta nella prima combo.
Un consiglio: se vuoi continuare ad usare macro, userform ecc. i cicli sono una delle cose basilari da conoscere quindi li devi imparare.
Grazie Alfredo,
mi consiglieresti qualche guida in italiano sui cicli di fore netx?
Grazie.
Massimiliano
Basta cercare con Google
http://ennius.altervista.org/vba/vba34.php
ma ripeto nel caso che hai sottoposto con il file allegato non devi usare nessun ciclo.
Confermo quanto detto da alfrimpa (che saluto), per ottenere il colore non c'è bisogno di cicli, basta sostituire la combo con una label di nome LabColore ed utilizzare questo codice
Private Sub CommandButton1_Click() Dim COLORE As String, indice As Integer indice = NUMERO.ListIndex COLORE = Range("F" & indice + 2) LabColore.Caption = COLORE End SubPiuttosto noto che il codice che hai proposto è scritto o copiato completamente a caso, non ha alcun senso. Trovi delle buone guide per imparare anche in fondo alla pagina di questo forum.
Una volta capito come funziona questo codice ti accorgerai che è inutile fare 2 tabelle, basta solo la prima e potrai ottenere anche il numero dei pezzi con lo stesso criterio.
Buongiorno Patel,
il resto del codice serviva per inserire la ricerca nella tabella,
comunque non mi funziona (vedi file allegato) per un mio errore di comprensione.
Saluti.
Massimiliano
Private Sub CommandButton1_Click() Dim COLORE As String, indice As Integer indice = NUMERO.ListIndex COLORE = Range("F" & indice + 2) LabColore.Caption = COLORE End SubAllegati:
You must be logged in to view attached files.Tu non hai fatto quanto detto da @patel che saluto.
Anzichè sostituire la combo con una label hai inserito una textbox.
Il controllo textbox non ha la proprietà Caption ed è per questo che il codice va in errore.
Stai cambiando le carte in tavola, è ovvio che non ti funzioni, dammi retta, fai una sola tabella completa, non 2 e poi utilizza il criterio che ti ho mostrato, il passo successivo potrebbe essere eliminare i pulsanti ed utilizzare l'evento NUMERO_Change() che ti consentirebbe di visualizzare tutti i dati al cambiare della selezione sulla combobox.
Grazie Pavel,
ho risolto con le tue indicazioni 🙂
Allegati:
You must be logged in to view attached files. -
AutoreArticoli
