Necesito por vba traer a excel un rango de datos de una base de datos asociado a un código en un excel

Tengo una base de datos en excel y necesito straer para un código específico por vba un rango de datos asociado a ese código pero por visual basic

1 respuesta

Respuesta
1

H o l a:

Podrías enviarme tu archivo y me explicas cuál es tu base de dato, en dónde vas a capturar el código, en dónde se tiene que buscar el código, y en dónde quieres el resultado, procura explicar todo con ejemplos reales.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “osvaldo smith” y el título de esta pregunta.

Te anexo la macro, para que la pongas en los eventos de la hoja de salida:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Target.Address(False, False) <> "C4" Then Exit Sub
    '
    Set h1 = Sheets("hoja salida")
    Set h2 = Sheets("datos")
    '
    u = h1.UsedRange.Rows(h1.UsedRange.Rows.Count).Row
    If u < 11 Then u = 11
    h1.Range("A11:K" & u).ClearContents
    j = 11
    Set r = h2.Columns("D")
    Set b = r.Find(Target, lookat:=xlWhole)
    If Not b Is Nothing Then
        ncell = b.Address
        Do
            'detalle
            h1.Cells(j, "C") = h2.Cells(b.Row, "G")
            h1.Cells(j, "D") = h2.Cells(b.Row, "H")
            h1.Cells(j, "E") = h2.Cells(b.Row, "I")
            h1.Cells(j, "F") = h2.Cells(b.Row, "K")
            j = j + 1
            Set b = r.FindNext(b)
        Loop While Not b Is Nothing And b.Address <> ncell
    Else
        MsgBox "No se encontraron datos"
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro


Dante, te acabo de enviar un correo ya que me genera un problema adicional, nada que ver con lo que enviaste que estaba excelente, me comentas.

Saludos.

Entra a VBA con ALT + F11 para ver la macro que te envié.

Cambia esta línea:

    h1.Range("A11:K" & u). ClearContents

Por esta:

    h1.Range("A11:F" & u). ClearContents

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas