Pregunta

No puedo encontrar esta información: ¿Es posible mostrar las etiquetas de estos dos tipos de listas en lugar de los valores reales? Por supuesto, cuando se selecciona una etiqueta, el valor de la celda o el cuadro combinado (como control Form) obtiene el valor real.

Ejemplo: * datos Un producto <------> 10 Producto B <------> 11 Producto C <------> 22

shows Combobox: Producto A, Producto B y el producto C Si selecciono Un consigo el valor 10, el valor B 11 y C del valor 22

Gracias de antemano

Miloud B.

¿Fue útil?

Solución

La forma típica de hacer esto es tener una tabla de consulta. Hay una función llamada algo así como BUSCARV (que es un nombre parcial) que se puede utilizar en las fórmulas para recuperar el valor. Hice algo como esto en mi trabajo, y he creado una tabla de búsqueda en una hoja de cálculo por separado, y luego llama a la función de búsqueda en mi principal.

También puede utilizar las macros, pero que es demasiado molesto en mi opinión para el problema actual.

Otros consejos

Validación de datos : No se puede tener dos valores por fila. Se puede utilizar una tabla de búsqueda para convertir un valor a otro. O puede combinar los valores como "ProductA_10" y utilizar una fórmula para extraer el "10" donde lo necesite.

Formulario Cuadro combinado :. Esto también ha limitado las opciones y en realidad no ofrecen nada más que DV lo hace por lo que quieres

Herramientas Combobox : Esto se puede hacer casi cualquier cosa que desee. Se podría establecer la propiedad ColumnCount a 2, la propiedad BoundColumn a 2, y la propiedad ColumnWidths a algo parecido a "1; 0" para ocultar la segunda columna. Si tuviera PRODUCTA-C en A1: A3 y 10-12 en B1: B3, a continuación, me gustaría utilizar un código como éste en un módulo estándar para llenar el cuadro combinado

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

Y código como este en el módulo de la hoja para poner un valor en una celda (F1 en este ejemplo)

Private Sub ComboBox1_Change()

    Me.Range("F1").Value = Me.ComboBox1.Value

End Sub

Cada vez que se selecciona un nuevo valor en el cuadro combinado, F1 se actualiza. Podemos utilizar la propiedad Value del cuadro combinado porque establecemos la propiedad BoundColumn en la columna con el valor que queremos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top