Buscar en la columna C de la Hoja seleccionada, un alfa-num desde el TextBox5, y retorne su contenido de las columnas a los TxBx

PARA DANTE

Trato de modificar una macro, de origen tuyo, en un libro que contiene 10 hojas.

La primera parte de la macro es buscar la hoja señalada (en un combobox1) que retorna datos de identificación de la hoja a TxBx.

La segunda parte de la macro es exactamente lo mismo, solo que ahora es buscar en esa misma hoja y en la col “C” un código (alfanumérico, ejem CM21523 y que éste proviene de un TextBox1) y debe retornar la información de las celdas-columnas siguientes a los TextBox.

El cambio que hice en la macro es el siguiente: el “Combobox1” lo cambié por “TextBox1” porque ahora el dato se integra manualmente ó directo en el TextBox1. Pero no funcionó. Mi petición ahora es corregirle algún detalle en esta parte de la macro o en su defecto, cambio total. Como en otras ocasiones Agradezco infinitamente tu Atención. Muchas gracias.

Originalmente es la siguiente:

Set b = h1.Columns("c:d").Find(wat:=ComboBox1, lookat:=xlwole, LookIn:=xlValues)

   If b Is Nothing Then

     MsgBox "El Dato no fue encontrado.", vbOKOnly + vbInformation, "Aviso"

     TextBox5 = ""

     TextBox5.SetFocus

   Exit Sub

   Else

Set b = h1.Range("c:d").Find(wat:=TextBox5, lookat:=xlwole, LookIn:=xlValues)

   TextBox6 = h1.Range("D" & b.Row)

   TextBox7 = h1.Range("E" & b.Row) 'TxBx8("f"), 9("g") y 10("H")

'en la col "i", poner la sumatoria (las que tengan cantidad) de las col "k, m, o y q"

'Y EN LA COL "J", PONER LA SUMATORIA (LAS QUE TENGAN CANTIDAD) DE LAS COL "L, N, P Y R"

   End If

‘--------------------------------------

1 respuesta

Respuesta
2

H o l a:

Disculpa, pero ya no entendí, si vas a buscar lo que tengas en el textbox1 o en el textbox5.

Te dejo el ejemplo para el textbox1:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    If TextBox1 = "" Then
        MsgBox "Captura el dato en el textbox1"
        Exit Sub
    End If
    '
    Set b = h1.Columns("C:D").Find(what:=TextBox1, lookat:=xlWhole, LookIn:=xlValues)
    If Not b Is Nothing Then
        TextBox6 = h1.Range("D" & b.Row)
        TextBox7 = h1.Range("E" & b.Row)
    Else
        MsgBox "El Dato no fue encontrado.", vbOKOnly + vbInformation, "Aviso"
        TextBox1 = ""
        TextBox1.SetFocus
    End If
End Sub

Si falta algo, entonces me explicas qué quieres buscar, en dónde lo quieres buscar y qué datos quieres en cuáles textbox.


':)
S a l u d o s . D a n t e A m o r
':) Si es lo que necesitas. Recuerda valorar la respuesta. G r a c i a s.

Disculpa Dante... creo que debí enviarte la macro completa. La primera parte de la macro funciona bien retomando los datos completos para los TextBox al encontrar la hoja seleccionada del combobox1.

La segunda parte es la que se atora, pues debe buscar en esta misma hoja seleccionada, pero en la en la columna "C" el numero que se asigna de forma  manual en el TextBox5 para que me regrese de esa linea encontrada  los datos de las columnas D.F.G.H.I.J a los TxBx6,7,8,9,10, y 15 

Por tu atención y rapidez... Muchisimas gracias...

Private Sub CommandButton1_Click() 'BUSCAR IDENTIFICACION
'call arrancar reloj
Application.ScreenUpdating = False
For Each h In Sheets
n = h.Name
If UCase(h.Name) = UCase(ComboBox1) Then
existe = True
Exit For
End If
Next
If existe = False Then
MsgBox "la hoja seleccionada no existe", vbCritical, "SELECIONAR HOJA"
Exit Sub
ComboBox1.SetFocus
End If
'ENCUENTRA LA HOJA SEÑALADA EN EL CBBX1,IDENTIFICA DATOS GENERALES Y LOS TRASPASA A LOS TxBx
Set h1 = Sheets(ComboBox1.Value)
TextBox1 = h1.Range("D3")
TextBox2 = h1.Range("D4")
TextBox3 = h1.Range("D5")
TextBox4 = h1.Range("D6")
'--------------------------------------------------
'Por.Dante Amor
Set h1 = Sheets(TextBox5.Value)
'Set h1 = Sheets("Obra5")
If TextBox5 = "" Then
MsgBox "Captura el dato en el textbox5"
Exit Sub
End If

Set b = h1.Columns("C:D").Find(what:=TextBox5, lookat:=xlWhole, LookIn:=xlValues)
If Not b Is Nothing Then
TextBox6 = h1.Range("D" & b.Row)
TextBox7 = h1.Range("E" & b.Row)
TextBox8 = h1.Range("F" & b.Row)
TextBox9 = h1.Range("G" & b.Row)
TextBox10 = h1.Range("H" & b.Row)
TextBox15 = h1.Range("J" & b.Row)
Else
MsgBox "El Dato no fue encontrado.", vbOKOnly + vbInformation, "Aviso"
TextBox1 = ""
TextBox1.SetFocus
End If


'----------------------------------
Application.ScreenUpdating = True
'h1.protect

End Sub

Quita esta línea:

Set h1 = Sheets(TextBox5.Value)

Cambia esta línea 

Set b = h1.Columns("C:D").Find(what:=TextBox5, lookat:=xlWhole, LookIn:=xlValues)

Por esta:

Set b = h1.Columns("C").Find(what:=TextBox5, lookat:=xlWhole, LookIn:=xlValues)

Prueba y me comentas.

':)
S a l u d o s . D a n t e A m o r
':) Si es lo que necesitas. Recuerda valorar la respuesta. G r a c i a s.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas