LLenar un combobox por 2 campos

Tengo una gran duda de como llenar una combobox donde recorro una base de datos por código en la primera columna y si existe coincidencia necesito llenar por dos campos que están en la columna 3 y 4, bueno todo este proceso se ejecute mientras no exista del da vacia.

1 respuesta

Respuesta
1

¿Quieres juntar lo que hay en la columna 3 y la 4?

Así es juntar los datos de la columna 3 y 4 a un combobox

En la primera columna busco por código y si hay coincidencia llenar el combobox con rut y nombre.La base tiene 30 o 50 registros

Private Sub CommandButton1_Click()
    Call combo("c") 'La c es por un ejemplo que me he hecho
End Sub

'--------------------------------------------------------------------

Sub combo(codigo As String)
    Dim i As Integer
    i = 2 'Es un 2 si la columna tiene cabecera
    With Hoja1 'Suponiendo que esté en la hoja1
        While (.Range("A" + CStr(i)) <> "")
            If (.Range("A" + CStr(i)) = codigo) Then
                'No se si lo de la columna C ya tiene el "\" de la ruta
                .ComboBox1.AddItem (.Range("C" + CStr(i)) + "\" + .Range("D" + CStr(i)))
            End If
            i = i + 1
        Wend
    End With
End Sub

i = 2 'Es un 2 si la columna tiene cabecera
With Sheets("nuevos") 
While (.Range("A" + CStr(i)) <> "")
If (.Range("A" + CStr(i)) = Me.cmbcurso) Then
'No se si lo de la columna C ya tiene el "\" de la ruta
Me.cmbrut_alu.AddItem (.Range("D" + CStr(i)) + "\" + .Range("e" + CStr(i)))
End If
i = i + 1
Wend
End With

Tengo una duda que no me reconoce la hoja nuevos?????

Has de escribir la palabra nuevos tal cual está en el nombre de la pestaña.

Si te sigue sin funcionar prueba a poner Hoja1, Hoja2, etc

¿

Probé con el nombre de la hoja pero al entrar al while me dice no coincide los tipos?.

Que podrá ser.

Saludos

Gracias.

No, no has de poner sheets("Hoja14") si no Hoja14 a secas. Así

With Hoja14

    while...

cuando pasa el with se cae en la sentencia 

 While (.Range("A" & Str(i)) <> "") con el error segun la imagen, porque hice el cambio colocando el nombre de la hoja sin el sheetss quedando

i = 2 'Es un 2 si la columna tiene cabecera
With Hoja14 'Suponiendo que esté en la hoja1
While (.Range("A" & Str(i)) <> "")
If (.Range("A" & Str(i)) = Me.cmbcurso) Then
'No se si lo de la columna C ya tiene el "\" de la ruta
Me.cmbrut_alu.AddItem (.Range("D" + CStr(i)) + "\" + .Range("e" + CStr(i)))
End If
i = i + 1
Wend
End With

A lo mejor es una tontería, prueba a poner en vez de

While (.Range("A" & Str(i)) <> "")

pon esto

While (.Range("A" + CStr(i)) <> "")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas