Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

copiar una hoja a un nuevo libro

| 2 comentarios

Si queremos añadir una hoja a un nuevo libro no se podrá hacerlo con la grabadora dado que el código que nos resultará no será el correcto. Por lo tanto ,debemos realizar el siguiente procedimiento en un módulo del libro actual :

imagen2

(Para mayor visualización de la imagen, hacer click en la misma)

De esta manera se podrá copiar la hoja activa a un nuevo libro colocándose antes de la hoja1 de nuevo libro:

imagen3

(Para mayor visualización de la imagen, hacer click en la misma)

 

Por:  Brian Chávez C.

2 comentarios

  1. Hola, Tengo que arreglar una macro para que busque en las hojas que se llaman D1, D2, D3... Si en las columnas S y T tienen el dato "NO", de encontrarse ese dato, debe copiar la fila completa A:W en la hoja "Informe" en la siguiente fila vacía que ubique. Dado que en cada ejecución de la Macro borra el contenido dejando únicamente los títulos para la nueva carga.

    Les dejo como me quedo luego de hacer y deshacer, y que ya estoy mareada.

    Desde ya muchas gracias

    Private Sub CommandButton21_Click()

    Dim WS As Worksheet

    Dim rBingo As Range

    Set ori1 = Sheets("D1")

    Set ori2 = Sheets("D2")

    Set ori3 = Sheets("D3")

    Set ori4 = Sheets("D4")

    Set ori5 = Sheets("D5")

    Set ori6 = Sheets("D6")

    Set ori7 = Sheets("D7")

    Set ori8 = Sheets("D8")

    Set ori9 = Sheets("D9")

    Set ori10 = Sheets("D10")

    Set ori11 = Sheets("D11")

    Set ori12 = Sheets("D12")

    Set ori13 = Sheets("D13")

    Set ori14 = Sheets("D14")

    Set ori15 = Sheets("D15")

    Set des = Sheets("Informe")

    Borrar_Informe

    For i = 20 To ori1.Range("T" & Rows.Count).End(xlUp).Row

    encontrado = "SI"

    If ori1.Cells(i, "T") = "NO" Then

    For j = 20 To des.Range("T" & Rows.Count).End(xlUp).Row

    If encontrado = "SI" Then

    ori1.Cells(i, "T").Copy Destination:=des.Range("A" & des.Range("A" & Rows.Count).End(xlUp).Row + 1)

    End If

    Next

    End If

    Next

    End Sub

    Sub Borrar_Informe()

    Dim rCell As Range

    Set rCell = Range("A3:W150")

    Do While Not IsEmpty(ActiveCell)

    rCell.Offset(0, 0).Value = " "

    Set rCell = rCell.Offset(0, 0)

    Exit Do

    Loop

    End Sub

  2. HOLA BUENAS NOCHES:
    ESTOY EMPEZANDO EN ESTO DE LAS MACROS Y ME GUSTARÍA SABER SI ME PUDIERAN FACILITAR UN CÓDIGO PARA PODER COPIAR SIEMPRE LA MISMA HOJA (LLAMADA LOTES) DE UN LIBRO (LLAMADO DEVOLUCIONES) A OTRO LIBRO QUE YO ABRA; POR EJEMPLO, SI YO ABRO EL LIBRO "PX-123" QUE LO COPIE EN ESTE LIBRO AL EJECUTAR LA MACRO; PERO SI YO ABRO EL LIBRO "MOV-147" QUE AL EJECUTAR LA MACRO, SE COPIE LA HOJA "LOTES" DE LIBRO "DEVOLUCIONES" AL LIBRO "MOV-147".
    ESPERO HABERME HECHO ENTENDER.

Deja una respuesta

Los campos requeridos estan marcados con *.