Cargar combobox con dos columnas

Tengo una hoja de excel que se llama tabulador_volqueta, donde se encuentran dos columnas que me interesan cargar a un combo box, la columna origen y la columna destino, y cuando seleccione algún item del combo box cargue su respectivo monto, dejo una imagen adjunta para que vean donde están los datos

Cualquier ayuda sugerencia o pregunta sera bienvenida.

3 Respuestas

Respuesta
1

Un par de preguntas:

¿Los datos de monto son los que aparecen en la columna Tabulador?

¿El Origen A puede tener como Destino ÚNICAMENTE a CA?

Exactamente, cada origen esta asociado exactamente a ese destino, y tabulador es el monto asociado a ese origen y ese destino. Es decir las comunas A, B, C están asociadas entre si.

Siga estos pasos para crear su Combobox.

http://www.excel-easy.com/vba/examples/combo-box.html 

Cuando llegue a la parte de añadir Items (AddItems), escriba lo que le parezca, algo así como:

With Sheet1.ComboBox1
    . AddItem "A >>> CA >>> 100"
    . AddItem "B >>> CB >>> 100"
    . AddItem "C >>> CC >>> 100"
End With

Así hasta que tenga todos los destinos convertidos en Items. No hace falta que continúe con el tutorial más allá de ese paso.

Si quiere acceder al monto en una celda separada, después debe crear una macro para el evento CHANGE del ComboBox, y seguir de este modo:

if ComboBox1.Value = "A >>> CA >>> 100" then Range("A1").Value = "100"
if ComboBox1.Value = "B >>> CB >>> 100" then Range("A1").Value = "100"
if ComboBox1.Value = "C >>> CB >>> 100" then Range("A1").Value = "100"

En principio creo que puede seguir usted mismo y completar el código, que como ve es muy simple.

Hola, de esta manera no puedo hacerlo, ya que este tabulador cambia en el tiempo, puede añadirse un nuevo destino como desaparecer, y no cambiare el código cada vez que esto suceda, gracias por la respuesta, pero no me es útil para mi caso actual...

Ponga un Botón y un ComboBox ActiveX, y esta macro:

Private Sub CommandButton1_Click()
ComboBox1.Clear
For Each cell In Range("a1:a25")
 If cell <> "" Then
    With ComboBox1
    .AddItem "Origen " & cell.Value & " Destino " & cell.Offset(0, 1) & " Monto " & cell.Offset(0, 2)
    End With
 End If
Next cell
End Sub

Así se incluirán los datos de forma dinámica al presionar el botón.

Tendrá que modificar el rango para que se empiece a incluir desde donde usted quiera... según su imagen, el rango debería ser "a24:a500". Si tuviese una cantidad de destinos mayor, simplemente ajuste el rango.

Respuesta
2

Si te interesa cargar 2 columnas al combobox, luego de dibujarlo modificá esta 2 propiedades desde el panel a tu izquierda:

 - ColumnCount en 2 y

- RowSource con algo como esto, por supuesto con nombre de tu hoja y hasta tu última fila: =Hoja6! A23:B30

Al abrir el combo se verá así:

El código para este control envía el valor de la 3er col en un textbox:

Private Sub ComboBox1_Click()
'x Elsamatilde
'la ubicación del elemento en la hoja es =
'al índice del elemento + 23 filas
TextBox1 = Sheets("Hoja6").Range("C" & ComboBox1.ListIndex + 23)
End Sub

Otro modo sería tener un combo de 3 columnas  y mostrar la 3er col en el textbox con un código así:

Private Sub ComboBox1_Click()
TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 2)
End Sub

El argumento es 2 porque las col de un combo se numeran a partir de 0.

Para utilizar esta 2da opción debes modificar el nro de col a 3 y en la propiedad RowSource incluir la col C.

Sdos y no olvides valorar la respuesta.

Respuesta
1

Creo que con este video se puede solucionar, no es mio. Lo encontre por acaso

https://www.youtube.com/watch?v=8KX2szMUl8I 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas