Macro pegar datos obtenidos desde otra hoja

Necesito generar un documento donde en la Hoja1 coloco un dato en B2 y vaya a buscar los valores
Contenidos en la Hoja2 y pegue esos valores en Hoja1.
Donde Hoja1 B2=Hoja2 A:A
Agrego imágenes de Hoja1; Hoja2, Hoja1(resultado)
Muchas gracias por su ayuda.

Hoja1:

Hoja2:

Hoja1 (Resultado)

1 Respuesta

Respuesta
3

Pon el siguiente código en los eventos de la hoja1

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address(0, 0) = "B1" Then
    If Target.CountLarge > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    '
    Dim f As Range
    Dim lr As Long
    '
    Rows("7:" & Rows.Count).ClearContents
    '
    With Sheets("Hoja2")
      If .AutoFilterMode Then .AutoFilterMode = False
      lr = .Range("A" & Rows.Count).End(3).Row
      Set f = .Range("A:A").Find(Target.Value, , xlValues, xlWhole, , , False)
      If Not f Is Nothing Then
        .Range("A1").CurrentRegion.AutoFilter 1, Target.Value
        .AutoFilter.Range.Range("D2:E" & lr & ",G2:G" & lr & ",J2:J" & lr & ",L2:M" & lr).Copy Range("A7")
        .ShowAllData
      Else
        MsgBox "No existe"
      End If
    End With
    '
  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. En el panel del lado derecho copia la macro

Hola Dante, antes que todo muchas gracias por tu ayuda.

Agregue la macro que me pasaste pero no logro hacerla funcionar.

Mi idea era tener una macro y pegar un botón en la Hoja1 que se relacione con la macro, y que al presionar dicho botón, se capture la información según el dato ingresado en Hoja1 B1.

Por favor tu ayuda si es posible una macro condicionada a un botón (Sub YYY ())

Agrego un imágen de como pegue la instrucción que me enviaste para que si es posible, me indiques que estoy haciendo mal. Muchas gracias nuevamente.

Asi quiero condicionarla a un botón:

Para que funcione el código que te envié debes modificar la celda B1 y presionar enter. En automático el código se activa y presenta el reporte. Inténtalo otra vez.

Anexo el código para un botón:

Sub PegarDatos()
  Dim cod As Variant
  Dim f As Range
  Dim lr As Long
  '
  cod = Range("B1")
  '
  Rows("7:" & Rows.Count).ClearContents
  If cod = "" Then Exit Sub
  '
  With Sheets("Hoja2")
    If .AutoFilterMode Then .AutoFilterMode = False
    lr = .Range("A" & Rows.Count).End(3).Row
    Set f = .Range("A:A").Find(cod, , xlValues, xlWhole, , , False)
    If Not f Is Nothing Then
      .Range("A1").CurrentRegion.AutoFilter 1, cod
      .AutoFilter.Range.Range("D2:E" & lr & ",G2:G" & lr & ",J2:J" & lr & ",L2:M" & lr).Copy Range("A7")
      .ShowAllData
    Else
      MsgBox "No existe"
    End If
  End With
End Sub

Dante muchas gracias!!! 

La macro para el botón se condiciona perfecto a lo que necesito ya que debo agregarle otras funciones a la macro, muchas gracias de nuevo!!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas