Macro que copie un rango variable de la hoja1 a la hoja2

Muchas gracias por vuestra ayuda a todos lo que nos estamos iniciando en la creación de macros con VB en excel.

En esta ocasión necesito si alguien me puede ayudar con la creación de una Macro que copie un rango variable de la hoja1 a la hoja2

Este es el código que intente hacer, pero no me funciona

Public Sub seleccionvariable()
Dim fila, columna As Integer

Sheets("hoja1").Select
Range("a15000").Select 
Selection.End(xlUp).Select 

fila = ActiveCell.Row 

Range("ab1").Select 
Selection.End(xlToLeft).Select 

columna = ActiveCell.Column 

ActiveSheet.Range(Cells(1, 1), Cells(fila, columna)).Select

End Sub

1 Respuesta

Respuesta
5

H o l a:

No mencionaste exactamente en dónde pegar los datos.

Te anexo un par de macros.

La primera pega la información en la hoja 2 en la celda A1

Sub CopiaRango()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    h2.Cells.Clear
    uf = h1.Range("A" & Rows.Count).End(xlUp).Row
    uc = h1.Cells(1, Columns.Count).End(xlToLeft).Column
    h1.Range(h1.Cells(1, 1), h1.Cells(uf, uc)).Copy h2.[A1]
End Sub

La segunda, pega la información después de la última fila con datos de la columna A:

Sub CopiaRango2()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    uf = h1.Range("A" & Rows.Count).End(xlUp).Row
    uc = h1.Cells(1, Columns.Count).End(xlToLeft).Column
    u2 = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
    h1.Range(h1.Cells(1, 1), h1.Cells(uf, uc)).Copy h2.Range("A" & u2)
End Sub

Si quieres que se peguen solamente valores:

Sub CopiaRango()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    h2.Cells.Clear
    uf = h1.Range("A" & Rows.Count).End(xlUp).Row
    uc = h1.Cells(1, Columns.Count).End(xlToLeft).Column
    h1.Range(h1.Cells(1, 1), h1.Cells(uf, uc)).Copy
    h2.[A1].PasteSpecial xlValues
End Sub
'
Sub CopiaRango2()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    uf = h1.Range("A" & Rows.Count).End(xlUp).Row
    uc = h1.Cells(1, Columns.Count).End(xlToLeft).Column
    u2 = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
    h1.Range(h1.Cells(1, 1), h1.Cells(uf, uc)).Copy
    h2.Range("A" & u2).PasteSpecial xlValues
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Estimado

Yo necesito arreglar el código de mi macro no crear otras macros

El código lo envíe ya antes

Saludos

H o l a:

Te envié nuevas macros porque pusiste esto:

"

Este es el código que intente hacer, pero no me funciona

"

Es por eso que te envié macros que sí funcionan.

Con gusto arreglo tu macro, pero aún no me has dicho en donde quieres pegar, pusiste que quieres pegar en la "hoja2" pero no indicas en cuál celda.


Completo tu macro con la parte para pegar en la celda A1 de la hoja2:

Public Sub seleccionvariable()
    Dim fila, columna As Integer
    Sheets("hoja1").Select
    Range("a15000").Select
    Selection.End(xlUp).Select
    fila = ActiveCell.Row
    Range("ab1").Select
    Selection.End(xlToLeft).Select
    columna = ActiveCell.Column
    ActiveSheet.Range(Cells(1, 1), Cells(fila, columna)).Select
    '
    Selection.Copy
    Sheets("Hoja2").Select
    Range("A1").Select
    Selection.PasteSpecial xlValues
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Debo pegar a partir de la celda A1,

De todas maneras voy a ver si me funciona y te cuento

La macro pega en la celda A1 de la hoja2

Public Sub seleccionvariable()
    Dim fila, columna As Integer
    Sheets("hoja1").Select
    Range("a15000").Select
    Selection.End(xlUp).Select
    fila = ActiveCell.Row
    Range("ab1").Select
    Selection.End(xlToLeft).Select
    columna = ActiveCell.Column
    ActiveSheet.Range(Cells(1, 1), Cells(fila, columna)).Select
    '
    Selection.Copy
    Sheets("Hoja2").Select
    Range("A1").Select
    Selection.PasteSpecial xlValues
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Estimado

Se me olvido decirte que necesito pegar todo, es decir valores ,fornatos, etcs

Va

Public Sub seleccionvariable()
    Dim fila, columna As Integer
    Sheets("hoja1").Select
    Range("a15000").Select
    Selection.End(xlUp).Select
    fila = ActiveCell.Row
    Range("ab1").Select
    Selection.End(xlToLeft).Select
    columna = ActiveCell.Column
    ActiveSheet.Range(Cells(1, 1), Cells(fila, columna)).Select
    '
    Selection.Copy
    Sheets("Hoja2").Select
    Range("A1").Select
    Selection.PasteSpecial xlAll
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Estimado recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas