ComboBox dependiente de un textbox, no funciona

Tengo un textbox que según el valor, el combobox se alimenta

La sentencia

d1 = Me.TBMuestraSocio
d2 = Me.CB_ProductoPpal
If d1 = d2 Then

Me entrega error porque no coinciden los tipos, al comentarla, el combo se alimenta pero de todas los valores

En la Columna N está en nombre de los laboratorios y en la O están los nombres de los productos, entonces en Me. TBMuestraSocio se muestra el nombre del laboratorio que ya viene de la base de datos, así que no es editable. ¿Cómo puedo resolverlo?

Private Sub TBMuestraSocio_Change() 
Dim fila As Integer 
Dim uf As Integer 'Ultima Fila 
Dim d1, d2 As Integer 
fila = 2 'la uno tiene los rótulos 
uf = Sheets("Base de datos").Range("N" & Rows.Count).End(xlUp).Row 
CB_ProductoPpal.Clear 
While Sheets("Base de Datos").Cells(fila, 1) <> Empty 
d1 = Me.TBMuestraSocio 
d2 = Me.CB_ProductoPpal 
If d1 = d2 Then 
CB_ProductoPpal.AddItem Sheets("Base de datos").Cells(fila, 15) 
'End If 
fila = fila + 1 
Wend 
End Sub 

1 respuesta

Respuesta
1

[Hola 

prueba así

Private Sub TBMuestraSocio_Change()
    '
    fila = 2 'la uno tiene los rótulos
    '
    uf = Sheets("Base de datos").Range("N" & Rows.Count).End(xlUp).Row
    '
    CB_ProductoPpal.Clear
    '
        d1 = Me.TBMuestraSocio
        d2 = Me.CB_ProductoPpal.Text
        '
        While Sheets("Base de Datos").Cells(fila, 1) <> Empty
        If Trim(d1) = Trim(d2) Then
            CB_ProductoPpal.AddItem Sheets("Base de datos").Cells(fila, 15)
            fila = fila + 1
        End If
    Wend
End Sub

Hola! Gracias, lo probé pero me pega el formulario y me bota el Excel,.

Lo intentaré en un formulario nuevo, quizás sea algo de las conexiones a access lo que hace que tu código falle.

Sube un ejemplo a la nube y entender lo que necesitas

Porque observo que haces la comparación de datos del combobox con un textbox y al mismo tiempo quieres agregar en el mismo combobox y eso genera error.

Explica detalladamente lo que necesitas

Gracias!

Puse un ejemplo acá, debe ser dinámico porque tengo 8 socios y 100 productos

https://drive.google.com/file/d/0B9InACNR9PI-MzhNTi1tSlhsTFZoSnoyVWZ0Z2VoenBPZnBj/view?usp=sharing 

Valora la respuesta para finalizar


Va la macro

Private Sub TBMuestraSocio_Change()
    Set h = ActiveSheet
    ComboBox1.Clear
    u = h.Range("N" & Rows.Count).End(xlUp).Row
        For i = 2 To u
            If UCase(TBMuestraSocio) = UCase(h.Cells(i, "N")) Then
            ComboBox1.AddItem h.Cells(i, "O")
            End If
        Next
End Sub

Activesheet lo cambias por

Sheets("Base de Datos")

Gracias!! Funciona súper bien! 

Que bien que amigo saludos..!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas