Saltar al contenido

Macro para Guardar con mismo Formato


Recommended Posts

publicado

Hola a Todos, consulta, tengo este archivo adjunto, el cual tiene un botom para guardar en una ruta especifica, pero al momento d eguardar lo hace, pero sin el formato original, como podria hacer para que se mantenga el formato de todas las celdas tal cual? Muchas Gracias,

Fact Model 2.xls

publicado

Hola dff1403

A ver si modificando la linea 16 del código se soluciona el tema.

En esta linea se pegan los valores:

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

La Cambias por esta ,donde se pega todo:

Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks _

publicado

Hola Ama, esta de acuerdo, muchas gracias, pero otro favor mas, no capta las celdas C37:I38 en las cuales esta la formula =CONVIERTENUMLETRA(L45) asi como de las celdas A1:L1, no tienen el mismo tamañan por eso al guardar el boton no se puede ver, hay alguna forma para que la copia sea exacta inclyendo lo que les indico? Muchas Gracias de nuevo.

publicado

Hola dff1403

El valor de la celda "C37:I38" depende de una función creada en un módulo ,por este motivo si este módulo no se añade al libro de destino la función no funciona.

Una opción es copiar solo ,el valor de esta celda.Pero si se realizan cambios en el libro ,este valor no será actualizado por la falta de la función.

Respecto al tamaño del rango ,lo puedes modificar con estas lineas:.

Esta para modificar el alto de la fila.

Range("A1:L1").RowHeight = 25

Esta para modificar el ancho de columna.

Range("A1:L1").ColumnWidth = 25

Lo adaptas a tu archivo.

publicado

Hola Ana, Muchas gracias, claro esa opción de copiar los valores como seria para que pueda salir el valor en letras y las fórmulas de sumatoria que trae el archivo? Saludos

publicado

Hola dff 1403

Este es el código con alguna linea mas y su función explicada.Es para poner el valor de la celda "C37" en el libro nuevo.

Sub GuardarComo()

Dim Letras As String 'Variable para recoger el valor de la celda C37
Letras = Range("C37") 'A la variable se le asigna el valor de la celda C37

Columns("A:C").Select
Selection.Copy
Workbooks.Add
Columns("A:A").Select
ActiveSheet.Paste
Range("A1:L45").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L2").Select
Application.CutCopyMode = False
With Selection.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = "Seleccione día"
.ErrorMessage = ""
.ShowInput = False
.ShowError = False
End With
Range("C37") = Letras 'A la celda C37 del libro nuevo se le pone el valor de la variable
NombreArchivo = "C:\Users\DANIELFF\Desktop\FACTURA\Factura "
'idea del Usuario arperez
NArchivo = Format(Range("L2").Value, ";@")
ActiveWorkbook.SaveAs NombreArchivo & NArchivo, , , , , , , , , , , False
ActiveWindow.Close
End Sub[/CODE]

publicado

Hola Ama, gracias, pero donde coloco los codigos:

Range("A1:L1").RowHeight = 25

Range("A1:L1").ColumnWidth = 25

En la nueva modificacion que hiciste?

Gracias

publicado

Estimado Ama, disculpa la molestia pero... 1)._ como puedo hacer para que tambien al momento de guardar mantenga el formato pero de las medidas de la hoja que por lado son 0.5.......2)_. tambien cuando guardo, se guarda con el nombre de la celda L2 (que esta perfecto) pero, dime seria posible tambien me apoyes para que a parte de guardarse con esta celda tambien se guarde con la C5, por ejemplo: 001-001509 Nestle Peru S.A.

publicado

Hola dff1403

Si lo que quieres es copiar el archivo con otro nombre puedes utilizar este código:

Sub CopiaArch()

Dim Ruta, NbrArch As String

Ruta = "C:\Users\DANIELFF\Desktop\FACTURA\Factura"

NbrArch = Format(Range("L2").Value, ";@") & " " & Range("C5") & ".xls"

ActiveWorkbook.SaveAs Ruta & NbrArch, , , , , , , , , , , False

ActiveWindow.Close

End Sub

La ruta donde quieres guardar el archivo la adaptas a tu nescesidad.

El nombre del archivo esta concatenado(nº de factura y nombre)

La extensión del archivo guardado es ".xls" (con esta extensión se puede abrir en versiones anteriores a excel 2007)

Comenta si te sirve.

publicado

Muchas Gracias, ahora lo probaré, pero... Donde puedo copiar el código? Con referencia al tamaño de la hoja a 0.5 por lado al momento de guardar es posible? Claro saludos

publicado

Hola Ama,

Consulta, donde pongo el codigo:

Sub CopiaArch()

Dim Ruta, NbrArch As String

Ruta = "C:\Users\Daniel\Desktop\EXCELS"

NbrArch = Format(Range("L2").Value, ";@") & " " & Range("C5") & ".xls"

ActiveWorkbook.SaveAs Ruta & NbrArch, , , , , , , , , , , False

ActiveWindow.Close

End Sub

publicado

Hola dff1403

En el archivo adjunto he puesto el código en el módulo2 (para abrirlo pulsa Alt+F11 ,esto abre el editor de Vba ,y en el editor doble clik sobre el modulo2).

Cuando abras el código tienes que modificar la linea que contiene la ruta donde se guarda el libro.(Pones la ruta que quieras)

En el código está marcada la linea a modificar y un ejemplo de como poner la ruta.

Copiar libro.xls

publicado

Espectacularrrrrrr!!!!!, muchisimas Graacias, me ha servido al maximo!!!!!, con referencia al tamaño de la hoja a 0.5 por lado al momento de guardar es posible? seria saludos, muchisimas Gracias Nuevamente!

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.