Opción para pegar antes de habiltar macro

Tengo el siguiente código el cual me copia y pega información de la hoja1 ala hoja 2

El cual es el siguiente:

 Sub MACOR()On Error Resume NextApplication.ScreenUpdating = FalseRange("a1:d1000" & Range("a65536:d65536").End(xlUp).Row).SelectSelection.CopySheets("Hoja2").ActivateCells(1, Range("iv4").End(xlToLeft).Column + 1).SelectActiveSheet.Paste = xlPasteFormulasActiveSheet.PasteActiveSheet.Paste = xlPasteFormulasApplication.CutCopyMode = FalseApplication.ScreenUpdating = TrueEnd Sub

entonces lo que necesito es que si en A1 pusiera Hoja2 este me pegase la informacion de la hoja1 en la hoja2..

Si en A1 pongo hoja3 los datos de la hoja1 me lo pegase en ese orden en la hoja3

Y así sucesivamente con otras hojas...

O si no se pudiese entonces algo así que me salga un imputbox que me pregunte donde lo quiero pegar y yo solo ponga el nombre de mi hoja...

1 Respuesta

Respuesta
1

Con la siguiente macro, tomas el nombre de la celda A1

Sub MACOR()
    On Error Resume Next
    Application.ScreenUpdating = False
    Range("a1:d1000" & Range("a65536:d65536").End(xlUp).Row).Select
    Selection.Copy
    hoja = Range("A1")
    existe = False
    For Each h In Sheets
        If h.Name = hoja Then
            existe = True
            Exit For
        End If
    Next
    If existe Then
        Sheets(hoja).Activate
        Cells(1, Range("iv4").End(xlToLeft).Column + 1).Select
        ActiveSheet.Paste = xlPasteFormulas
        ActiveSheet.Paste
        ActiveSheet.Paste = xlPasteFormulas
        Application.CutCopyMode = False
        Application.ScreenUpdating = True
    Else
        MsgBox "No existe la hoja: " & Range("A1"), vbInformation
    End If
End Sub

Con la siguiente macro le puedes poner el nombre de la hoja en un inputbox

Sub macro2()
    On Error Resume Next
    hoja = InputBox("Escribe el nombre de la hoja")
    If hoja = "" Then Exit Sub
    existe = False
    For Each h In Sheets
        If UCase(h.Name) = UCase(hoja) Then
            existe = True
            Exit For
        End If
    Next
    If existe Then
        Application.ScreenUpdating = False
        Range("a1:d1000" & Range("a65536:d65536").End(xlUp).Row).Select
        Selection.Copy
        Sheets(hoja).Activate
        Cells(1, Range("iv4").End(xlToLeft).Column + 1).Select
        ActiveSheet.Paste = xlPasteFormulas
        ActiveSheet.Paste
        ActiveSheet.Paste = xlPasteFormulas
        Application.CutCopyMode = False
        Application.ScreenUpdating = True
    Else
        MsgBox "No existe la hoja: " & Range("A1"), vbInformation
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas