(2) Guardar Hoja con las mismas dimencionesde la original

me olvide de dejarte el código en mi solicitud de Guardar Hoja con las mismas dimencionesde la original

SubCopiaFactura()
'Definir variables
Dim rango, n As Range
Dim i As Integer
Dim nombre As String
'Ocultaprocedimientos
Application.ScreenUpdating=False
'Dar valor a variable Nombre
nombre = Range("C8") & "_" & Range("E8")
'Carganombre de rango a copiar
Setrango =Range("A1:F35")
'Comprueba que tiene nº de factura si no sale de macro
If Sheets("FACTURA").Range("E8") = Empty Then
validación = MsgBox("Introduzca nº de factura ", vbCritical, "FACTURA SIN NUMERAR...")
'Sinotiene nºde factura vuelve a la hoja y celda K4
Ifvalidación =1Then
Range("E8").Select
ExitSub
EndIf
EndIf
'Crea la hoja con el nombre ya defenido en C8 y nº de factura
Sheets.Add.Name = nombre
i = 0
'Copiatodas las líneas delrango
ForEachn Inrango.Columns
n.CopyActiveSheet.Range("A1").Offset(,i)
i =i +1
Nextn
'Vaciamos el rango
Set rango = Nothing
Application.ActiveSheet.Copy 'Copiala hoja activa
ActiveSheet.SaveAsThisWorkbook.Path&_
"\" & nombre 'En la misma ruta que el archivo original
Application.CutCopyMode = False
ActiveWorkbook.Saved = True
ActiveWorkbook.Close 'Cierra el nuevo libro
Application.DisplayAlerts = False 'Quita alertas
ActiveSheet.Delete 'Borra la ultima hoja (ultima factura hecha)
Sheets("FACTURA").Select 'Vuelve a la hoja inicial
Sheets(1).Range("E8").Value = Sheets(1).Range("E8").Value + 1
Application.DisplayAlerts = True 'Activa alertar
Application.ScreenUpdating = True 'Vuelve a mostrar procedimientos
End Sub

1 Respuesta

Respuesta
1

Te voy a poner un ejemplo de como hacerlo y lo vas a ver mejor:

-Nos suponemos que estamos en nuestro archivo y queremos copiar la hoja activa a un archivo nuevo y grabarlo con el nombre "ejemplohoja.xlsx" (no he puesto ruta en este ejemplo, lo guardaría en el directorio predeterminado de excel)

Esta sería la macro y solo queda que la adaptes:

Sub ejemplo()
'por luismondelo
mio = ActiveWorkbook.Name
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
ActiveSheet.Copy before:=Workbooks(otro).Sheets(1)
ActiveWorkbook.SaveAs "ejemplohoja"
ActiveWorkbook.Close False
End Sub

no olvides finalizar la consulta

La realidad es que l oque se la hoja (libro nuevo) se llamará ejemplohoja pero no la encuentro por ninguna parteni buscando por su nombre.

Fijate que el código que deje guarda con nombre de la celda (nombre de persona C8) y fecha (E8) eso es importante que a la hora de buscar sea para copia sea para informacionse sabe de que factura se trata y lo guarda en la misma ruta del original. Este original es como tratarlo como plantilla.

Alguna pregunta aquí estaré.

Gracias

Encontré la copia. Comento:

Abrí y visualice la copia, no solo me copia la hoja si no que crea un libro nuevo + la hoja de copia, es decir, con las 3 hojas de nuevo libro + la copia (4 hojas).

Si puedes toma en cuenta mi comentario anterior. Si puedes bien si no también porque entiendo vuestra ayuda sin interés alguno.

Bien pues esta es la nueva macro:

Sub ejemplo()
'por luismondelo
mio = ActiveWorkbook.Name
nombre = Range("C8") & "_" & Range("E8")
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
ActiveSheet.Copy before:=Workbooks(otro).Sheets(1)
Application.DisplayAlerts = False
For x = 2 To Sheets.Count
Sheets(2).Delete
Next
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & nombre
ActiveWorkbook.Close False
End Sub

ahora se grabará con el contenido de las celdas C8 y E8, en la ruta del libro activo y cuando lo abras solo estará una hoja.

No olvides finalizar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas