Saltar al contenido

Macro que modifica el formato de un archivo no graba cambios


Recommended Posts

publicado

Hola, Decidí automatizar los cambios que regularmente le debo hacer a unos archivos xls que manejan algunos usuarios, cambios como actualización de formulas y corrección del formatos, tengo inconveniente con los formatos, cree una Macro que se basa en un archivo que contiene un formato especial (estilos de letra, formato de celdas, colores, lineas...etc) para formatear los otros archivos que los usuarios desordenan.

Esta ejecuta bien, no muestra errores, al terminar graba el archivo que ha sido formateado y muestra el resultado, el cual es perfecto!!, cierro el archivo y al abrirlo de nuevo, no aparece ningún cambio, como si no tomara tooodos los cambios realizados por la macro!!! grabándolo por código, o manualmente el resultado es el mismo.

agradezco su valiosa ayuda

A grandes rasgos este es el método que cree, estando en el archivo que quiero formatear, la macro verifica el archivo de formato, lo abre y empieza a copiar el formato de cada una de las hojas al archivo sin formato, luego de pasar por cada hoja, cierra el archivo de formato selecciona el archivo formateado, y lo graba. pero como les cuento no quedan grabados en realidad

<

destino = ActiveWorkbook.Name

origen = "NewDat.xls"

If UCase(origen) = UCase(destino) Then

a = MsgBox(origen + " es el archivo del Formato original, No debe modificarse, Debe seleccionar archivo DAT", vbOKOnly, "Generaciòn de Comites")

Procesando.Hide

Exit Sub

End If

For j = 1 To Workbooks.Count

If UCase(origen) = UCase(Workbooks.Item(j).Name) Then

abierto = "si"

ruta = ""

j = Workbooks.Count

End If

Next j

If abierto = "no" Then

Workbooks.Open Filename:="D:\Documentos\Comites\NewDat.xls"

End If

'- FORMATEA HOJA TRANSITO ----------------------------------------

Windows(origen).Activate

Sheets("Transito").Select

Procesando.Label3.Caption = "Actualizando hoja " + ActiveSheet.Name

Procesando.Repaint

Range("B1:AC34").Select

Selection.Copy

Windows(destino).Activate

Sheets("Transito").Select

Range("B1:AC34").Select

Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False

Windows(origen).Activate

Sheets("Transito").Select

Range("AD1:AG34").Select

Selection.Copy

Windows(destino).Activate

Sheets("Transito").Select

Range("AD1:AG34").Select

Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False

Windows(origen).Activate

Sheets("Transito").Select

Range("AH1:BE34").Select

Selection.Copy

Windows(destino).Activate

Sheets("Transito").Select

Range("AH1:BE34").Select

Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False

Windows(origen).Activate

Sheets("Transito").Select

Range("BF1:CG34").Select

Selection.Copy

Windows(destino).Activate

Sheets("Transito").Select

Range("BF1:CG34").Select

Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False

'- FINAL ----------------------------------------

Windows(destino).Activate

ActiveWorkbook.Save

Sheets("Grupos").Select

Range("A1").Select

Windows(origen).Activate

Workbooks(origen).Close SaveChanges:=False

Procesando.Progreso.Width = (100 * 186) / 100

Procesando.Repaint

Procesando.Hide

End Sub

>

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.