Excel 2003 Combobox / convalida elenco di dati Valori ed etichette
-
12-10-2019 - |
Domanda
Sono in grado di trovare queste informazioni: E 'possibile visualizzare le etichette in questi due tipi di liste, piuttosto che i valori reali? naturalmente quando si seleziona un'etichetta, il valore della cella o del combobox (come controllo Form) ottiene il valore reale.
Esempio: * I dati Prodotto A <------> 10 Prodotto B <------> 11 Prodotto C <------> 22
spettacoli ComboBox: Prodotto A, B del prodotto e del prodotto C Se seleziono A ottengo il valore di 10, B, il valore 11 e C 22 Valore
Grazie in anticipo
Miloud B.
Soluzione
Il modo tipico di fare questo è quello di avere una tabella di ricerca. C'è una funzione denominata qualcosa come VLOOKUP (che è un nome parziale) che è possibile utilizzare nelle formule per recuperare il valore. Ho fatto qualcosa di simile al mio lavoro, e ho creato una tabella di ricerca in un foglio di calcolo separato, e quindi chiamata la funzione di ricerca nel mio principale.
È inoltre possibile utilizzare le macro, ma che è troppo fastidio a mio parere per l'attuale problema.
Altri suggerimenti
Data Validation : Non è possibile avere due valori per riga. È possibile utilizzare una tabella di ricerca per convertire un valore all'altro. Oppure è possibile combinare i valori come "ProductA_10" e utilizzare una formula per estrarre il "10" dove ne avete bisogno.
Modulo Combobox :. Anche questo ha limitato le opzioni e non davvero offrire qualcosa di più di DV fa per quello che vuoi
Toolbox Combobox : Questo può fare praticamente tutto quello che vuoi. Si potrebbe impostare la proprietà ColumnCount a 2, la proprietà BoundColumn a 2, e la proprietà ColumnWidths a qualcosa come "1; 0" per nascondere la seconda colonna. Se avessi ProductA-C in A1: A3 e 10-12 in B1: B3, quindi vorrei usare il codice come questo in un modulo standard per riempire la casella combinata ??p>
Sub LoadCombobox()
Dim rCell As Range
For Each rCell In Sheet1.Range("A1:A3").Cells
Sheet1.ComboBox1.AddItem rCell.Value
Sheet1.ComboBox1.List(Sheet1.ComboBox1.ListCount - 1, 1) = rCell.Offset(0, 1).Value
Next rCell
End Sub
E il codice come questo nel modulo del foglio per mettere un valore in una cella (F1 in questo esempio)
Private Sub ComboBox1_Change()
Me.Range("F1").Value = Me.ComboBox1.Value
End Sub
Ogni volta che viene selezionato un nuovo valore nella casella combinata, F1 viene aggiornato. Siamo in grado di utilizzare la proprietà Value della casella combinata perché abbiamo impostato la proprietà BoundColumn alla colonna con il valore che vogliamo.