Jump to content
rabonelli75

Solamente copiar y pegar la selección en las celdas visibles...

Recommended Posts

Buenas tardes;

Tengo una duda al respecto de una función excel. Tengo un archivo de 1000 lineas el cual filtro y de las 35 que me quedan lo copio y lo coloco en otra pestaña (se me coloca de la fila 1 a la 35 de la nueva pestaña). Hago el tratamiento de las 35 lineas y luego quiero volver a copiar y pegar, concretamente una columna, en el archivo inicial de 1000 lineas pero filtrado. Cuando lo intento pegar...no me lo coloca de la misma manera, ya que el archivo de 1000 lineas filtrado en 35 me lo reconoce de la fila 1 a la 35...cuando algunos datos deberían estar en la fila 102; 15 o 300 por ejemplo. Resumiendo...como puedo hacer para que me los coloque de la misma manera (sin tener en cuenta las no visibles), para machear correctamente las filas (copiar de un archivo que va de la columna 1-35 a una pestaña que va de la 1-1000 pero filtrada en 35 filas según lo extraído anteriormente).

Muchas gracias.

Tomás

Share this post


Link to post
Share on other sites

Hola Tomás,

Yo lo que haría es que después de copiar las 35 filas en otra hoja y hacer el tratamiento que sea necesario, desde la primera hoja haría =BUSCARV  a la hoja de las 35 filas para traer la columna que necesito en la primera hoja.

Aquí tienes un tutorial en esta misma página de "Opciones del cuadro ir a especial", que te servirá para localizar ciertos tipos de celda dentro de la hoja de cálculo. 

ttps://ayudaexcel.com/opciones-del-cuadro-ir-a-especial/

Saludos, mtse

 

 

Edited by MtseTG
No había terminado el mensaje

Share this post


Link to post
Share on other sites

¡Hola, a todos!

Esta macro parece razonablemente completa:

Sub Copiar_a_Celdas_Visibles()
    Dim a, c&, d&, i&
    Dim rOrigen As Range, rDestino As Range
    Dim hj As Worksheet, cDestino As Range
    
    Set rOrigen = Selection
    On Error Resume Next
    Set rDestino = Application.InputBox("Seleccione el Rango Destino", Type:=8)
    If rDestino Is Nothing Then
        MsgBox "Debe Seleccionar un rango destino."
        Exit Sub
    End If
    On Error GoTo 0
    a = Split(rDestino.SpecialCells(12).Address, ",")
    
    Set hj = rDestino.Parent
    
    If rOrigen.Columns.Count > 1 Or rDestino.Columns.Count > 1 Then
        MsgBox "La macro solo funciona con una sola columna."
        GoTo Fin
    End If
    
    If rDestino.Cells.Count = 1 Then c = 1 Else c = rDestino.SpecialCells(12).Cells.Count
    
    If c < rOrigen.Cells.Count Then
        MsgBox "La cantidad de celdas en el destino son menores a la cantidad de celdas origen."
        GoTo Fin
    End If
    
    Application.ScreenUpdating = False
    
    For i = 0 To UBound(a)
        For Each cDestino In hj.Range(a(i))
            d = 1 + d
            If d > rOrigen.Rows.Count Then GoTo Fin
            cDestino = rOrigen(d, 1)
        Next cDestino
    Next i

Fin:
    hj.Select
    Erase a: Set hj = Nothing
    Set rOrigen = Nothing: Set rDestino = Nothing
    Application.ScreenUpdating = True
End Sub

¿Cómo se usa?

Debes seleccionar, antes de ejecutar la macro, el rango que deseas copiar.

Luego, la macro te pide el rango destino, es decir, donde deseas pegar.  ¡Listo!

¡Pruébala y comentas! ¡Bendiciones!

Share this post


Link to post
Share on other sites

@rabonelli75 

Te mando un archivo ficticio, ya esta la base de datos filtrada, solo pulsa el boton y te lo va a copiar a la HOJA2, ahí haces tus modificaciones y SUPONIENDO QUE ES LA COLUMNA 5 "EDAD" Y ES LA QUE SE VA A ACTUALIZAR EL LA HOJA1. Pulsando el boton de la Hoja2.

CUALQUIER DUDA, AQUI ANDAMOS...

Saludos.

FiltraCopia y Regresa Informacion2.xlsm

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy