Ingresar Nombre de Calle y Numero, y que me arroje el numero telefónico!

Sigo poniendo a punto mi formulario y he vuelto a quedar estancado, ahora lo que requiero es que al ingresar en mi formulario los campos de Calle y No. Me arroje el numero de conmutador en la casilla correspondiente envío imagen para aclarar un poco.

La información de calle numero y conmutador la tengo en una hoja llamada Conmutador . De antemano le agradezco la atención prestada.

2 Respuestas

Respuesta
1

¿Podrías dejar una imagen de tu hoja Conmutador? Porque veo que utilizas desplegables en tu userform y no se si los tenés dependientes o no (de paso te invito a ver mis 2 últimos videos acerca de listas relacionadas o dependientes, podés acceder desde mi blog que dejo al pie.)

Sdos, quedo a la espera de tus aclaraciones.

Elsa

https://elsamatilde.blogspot.com/ 

Ok, estoy revisando su blog muchas gracias, le envío imagen de la hoja conmutador, quedo pendiente de su propuesta, de antemano gracias por su atención.

Bien, esto se puede resolver recorriendo la tabla o filtrándola.

Me decanté por este último método viendo que la hoja puede llegar a tener un número considerable de filas.

Entonces, en el Userform coloca al inicio estas 3 declaraciones de variables y las macros de los 2 desplegables. Ajusta los nombres según tu modelo.

Dim dato1 As String
Dim dato2 As Integer
Dim dato3 As String
Private Sub ComboBox1_Change()
If ComboBox1 = "" Or ComboBox2 = "" Then TextBox1 = "": Exit Sub
dato1 = ComboBox1.Text
dato2 = ComboBox2.Value
Call macroFiltro
TextBox1 = dato3
End Sub
Private Sub ComboBox2_Change()
If ComboBox1 = "" Or ComboBox2 = "" Then TextBox1 = "":Exit Sub
dato1 = ComboBox1.Text
dato2 = ComboBox2.Value
Call macroFiltro
TextBox1 = dato3
End Sub

 Y dentro del mismo Userform coloca esta macro que filtrará la hoja ante cada cambio en alguno de los 2 combos y te devolverá el contenido de la col D.... ajusta aquí la letra de la col a devolver:

Sub macroFiltro()
'x Elsamatilde
'se trabaja con hoja Conmutador
Set hoc = Sheets("Conmutador")
'si la hoja no tiene colocados los filtros los coloca. y si está filtrada muestra todos.
If hoc.AutoFilterMode = False Then
    hoc.Range("A1:F1").AutoFilter
ElseIf hoc.FilterMode = True Then
    hoc.ShowAllData
End If
'se filtra el rango de datos por col A y B
finx = hoc.Range("A" & Rows.Count).End(xlUp).Row
hoc.Range("$A$1:$F$" & finx).AutoFilter Field:=1, Criteria1:=dato1
hoc.Range("$A$1:$F$" & finx).AutoFilter Field:=2, Criteria1:=dato2
'se busca la fila filtrada
finy = hoc.Range("A" & Rows.Count).End(xlUp).Row
'si hay registros coincidentes, guarda el dato de la col D
If finy = 1 Then
    'no se encuentra registro coincidente
    dato3 = ""
Else
    dato3 = hoc.Range("D" & finy)
End If
End Sub

PD) podés solicitarme el libro con el ejemplo si algo no se comprendió.

Nuevamente gracias por su pronta atención, ya estuve realizando pruebas con mi formulario y no me arroja la información de la columna D al formulario en el espacio de conmutador, ¿a qué se deberá?

Ingrese el código que me envío y no pasa la información al formulario solo la hoja de conmutador oculta las filas y muestra la primer fila, nada más.

¿Me puede enviar el libro que tiene de prueba para revisarlo? ¿O prefiere que le envíe el proyecto?

Si solo se observa la fila de títulos es q no está encontrando coincidencias .Puede deberse a que tus controles combos tengan otro nombre o mal declaradas las variables.

Si está devolviendo una fila filtrada y no la muestra en el control es q el técnico tiene otro nombre o la columna D no tiene datos.

Revisa todo bien y si el problema persiste envíame tu libro. Los correos están en mi sitio.

Sdos!

¡Gracias! 

Debes leer nuevamente mis instrucciones. Las variables se colocan al inicio del Userform y no dentro de la subrutina. Te envié muestra a tu correo.

Sdos!

Respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas