MACRO de grabacion

15/11/2006 - 20:38 por Cesar Yanapa Z. | Informe spam
Estimados,
Tengo una hoja excel de casi 9 megas, tiene formúlas, extrae datos de muchos
otros files,etc.
Bien, toda la información compilada en este file necesito envíarsela a los
gerentes de territorio, pero como comprenderán es demasiado extenso.
Es posible crear una macro para que desde este file se cree una copia del
file sólo valores, sin ningun link o fórmula.

Gracias anticipadas por su ayuda.

Cesar Yanapa Z.

Preguntas similare

Leer las respuestas

#1 David
15/11/2006 - 20:58 | Informe spam
Podrías partir del siguiente código:

Sub Convertir()
Dim Celda As String

'Se guarda copia del libro activo y se detiene la actualización de la
pantalla
ActiveWorkbook.SaveAs Filename:="Copia de " & ActiveWorkbook.Name
Application.ScreenUpdating = False

' ... para cada hoja del libro,
For Each Hoja In ActiveWorkbook.Sheets
Hoja.Activate

'Se determina la celda activa,
Celda = ActiveCell.Address

'Se selecciona toda la hoja y se copia,
Range("A1:IV65536").Select
Selection.Copy

'pegando luego como valores,
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

'y se vuelve a la celda activa.
Range(Celda).Select
Next Hoja

'Por último, se vuelve a activar la actualización de pantalla.
Application.ScreenUpdating = True
End Sub

y personalizarlo según lo necesites...



"Cesar Yanapa Z." escribió:

Estimados,
Tengo una hoja excel de casi 9 megas, tiene formúlas, extrae datos de muchos
otros files,etc.
Bien, toda la información compilada en este file necesito envíarsela a los
gerentes de territorio, pero como comprenderán es demasiado extenso.
Es posible crear una macro para que desde este file se cree una copia del
file sólo valores, sin ningun link o fórmula.

Gracias anticipadas por su ayuda.

Cesar Yanapa Z.
Respuesta Responder a este mensaje
#2 Cesar Yanapa Z.
15/11/2006 - 21:30 | Informe spam
Estimado David,
Debo ser sincero y decirte que de codigo casi nada se, siempre grabo mis
macros de la manera rustica.
Pero bien, he copiado el codigo que me envias y efectivamente me hace una
copia del archivo, pero es una copia identica, el archivo sigue siendo pesado
(9Mb) y contiene todas las referencias de las celdas.
Espero no haber copiado mal, te adjunto el codigo que he copiado:
Sub Convertir()
Dim Celda As String

'Se guarda copia del libro activo y se detiene la actualización de la
pantalla
ActiveWorkbook.SaveAs Filename:="Copia de " & ActiveWorkbook.Name
Application.ScreenUpdating = False

' ... para cada hoja del libro,
For Each Hoja In ActiveWorkbook.Sheets
Hoja.Activate

'Se determina la celda activa,
Celda = ActiveCell.Address

'Se selecciona toda la hoja y se copia,
Range("A1:IV65536").Select
Selection.Copy

'pegando luego como valores,
Selection.PasteSpecial
Paste = xlPasteValues
Operation = xlNone
SkipBlanks = False
Transpose = False
Application.CutCopyMode = False

'y se vuelve a la celda activa.
Range(Celda).Select
Next Hoja

'Por último, se vuelve a activar la actualización de pantalla.
Application.ScreenUpdating = True
End Sub
Lo he copiado tal cual.

Gracias anticipadas por tu ayuda.



"David" escribió:

Podrías partir del siguiente código:

Sub Convertir()
Dim Celda As String

'Se guarda copia del libro activo y se detiene la actualización de la
pantalla
ActiveWorkbook.SaveAs Filename:="Copia de " & ActiveWorkbook.Name
Application.ScreenUpdating = False

' ... para cada hoja del libro,
For Each Hoja In ActiveWorkbook.Sheets
Hoja.Activate

'Se determina la celda activa,
Celda = ActiveCell.Address

'Se selecciona toda la hoja y se copia,
Range("A1:IV65536").Select
Selection.Copy

'pegando luego como valores,
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

'y se vuelve a la celda activa.
Range(Celda).Select
Next Hoja

'Por último, se vuelve a activar la actualización de pantalla.
Application.ScreenUpdating = True
End Sub

y personalizarlo según lo necesites...



"Cesar Yanapa Z." escribió:

> Estimados,
> Tengo una hoja excel de casi 9 megas, tiene formúlas, extrae datos de muchos
> otros files,etc.
> Bien, toda la información compilada en este file necesito envíarsela a los
> gerentes de territorio, pero como comprenderán es demasiado extenso.
> Es posible crear una macro para que desde este file se cree una copia del
> file sólo valores, sin ningun link o fórmula.
>
> Gracias anticipadas por su ayuda.
>
> Cesar Yanapa Z.
Respuesta Responder a este mensaje
#3 David
15/11/2006 - 23:41 | Informe spam
Entonces es probable que el "peso" de tu archivo no se deba a los vínculos o
a las fórmulas, sino a otra causa.

¿Tienes muchos formatos aplicados? ¿Qué tal si en la copia trasladamos
solamente los textos?

¿Si en cada hoja haces clic en Control+Fin, a dónde llegas? Si eso te sitúa
cerca del fina de tus datos, no habría problema, pero si te lleva muy abajo o
a la derecha de los mismos, podría ser que las celdas vacías también te
generen espacio de archivo.

Comentas para estas dos preguntas, y veremos qué hacer.


"Cesar Yanapa Z." escribió:

Estimado David,
Debo ser sincero y decirte que de codigo casi nada se, siempre grabo mis
macros de la manera rustica.
Pero bien, he copiado el codigo que me envias y efectivamente me hace una
copia del archivo, pero es una copia identica, el archivo sigue siendo pesado
(9Mb) y contiene todas las referencias de las celdas.
Espero no haber copiado mal, te adjunto el codigo que he copiado:
Sub Convertir()
Dim Celda As String

'Se guarda copia del libro activo y se detiene la actualización de la
pantalla
ActiveWorkbook.SaveAs Filename:="Copia de " & ActiveWorkbook.Name
Application.ScreenUpdating = False

' ... para cada hoja del libro,
For Each Hoja In ActiveWorkbook.Sheets
Hoja.Activate

'Se determina la celda activa,
Celda = ActiveCell.Address

'Se selecciona toda la hoja y se copia,
Range("A1:IV65536").Select
Selection.Copy

'pegando luego como valores,
Selection.PasteSpecial
Paste = xlPasteValues
Operation = xlNone
SkipBlanks = False
Transpose = False
Application.CutCopyMode = False

'y se vuelve a la celda activa.
Range(Celda).Select
Next Hoja

'Por último, se vuelve a activar la actualización de pantalla.
Application.ScreenUpdating = True
End Sub
Lo he copiado tal cual.

Gracias anticipadas por tu ayuda.



"David" escribió:

> Podrías partir del siguiente código:
>
> Sub Convertir()
> Dim Celda As String
>
> 'Se guarda copia del libro activo y se detiene la actualización de la
> pantalla
> ActiveWorkbook.SaveAs Filename:="Copia de " & ActiveWorkbook.Name
> Application.ScreenUpdating = False
>
> ' ... para cada hoja del libro,
> For Each Hoja In ActiveWorkbook.Sheets
> Hoja.Activate
>
> 'Se determina la celda activa,
> Celda = ActiveCell.Address
>
> 'Se selecciona toda la hoja y se copia,
> Range("A1:IV65536").Select
> Selection.Copy
>
> 'pegando luego como valores,
> Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
> SkipBlanks _
> :=False, Transpose:=False
> Application.CutCopyMode = False
>
> 'y se vuelve a la celda activa.
> Range(Celda).Select
> Next Hoja
>
> 'Por último, se vuelve a activar la actualización de pantalla.
> Application.ScreenUpdating = True
> End Sub
>
> y personalizarlo según lo necesites...
>
>
>
> "Cesar Yanapa Z." escribió:
>
> > Estimados,
> > Tengo una hoja excel de casi 9 megas, tiene formúlas, extrae datos de muchos
> > otros files,etc.
> > Bien, toda la información compilada en este file necesito envíarsela a los
> > gerentes de territorio, pero como comprenderán es demasiado extenso.
> > Es posible crear una macro para que desde este file se cree una copia del
> > file sólo valores, sin ningun link o fórmula.
> >
> > Gracias anticipadas por su ayuda.
> >
> > Cesar Yanapa Z.
Respuesta Responder a este mensaje
#4 David
16/11/2006 - 00:01 | Informe spam
Algo más: ¿Tienes celdas combinadas?



"David" escribió:

Entonces es probable que el "peso" de tu archivo no se deba a los vínculos o
a las fórmulas, sino a otra causa.

¿Tienes muchos formatos aplicados? ¿Qué tal si en la copia trasladamos
solamente los textos?

¿Si en cada hoja haces clic en Control+Fin, a dónde llegas? Si eso te sitúa
cerca del fina de tus datos, no habría problema, pero si te lleva muy abajo o
a la derecha de los mismos, podría ser que las celdas vacías también te
generen espacio de archivo.

Comentas para estas dos preguntas, y veremos qué hacer.


"Cesar Yanapa Z." escribió:

> Estimado David,
> Debo ser sincero y decirte que de codigo casi nada se, siempre grabo mis
> macros de la manera rustica.
> Pero bien, he copiado el codigo que me envias y efectivamente me hace una
> copia del archivo, pero es una copia identica, el archivo sigue siendo pesado
> (9Mb) y contiene todas las referencias de las celdas.
> Espero no haber copiado mal, te adjunto el codigo que he copiado:
> Sub Convertir()
> Dim Celda As String
>
> 'Se guarda copia del libro activo y se detiene la actualización de la
> pantalla
> ActiveWorkbook.SaveAs Filename:="Copia de " & ActiveWorkbook.Name
> Application.ScreenUpdating = False
>
> ' ... para cada hoja del libro,
> For Each Hoja In ActiveWorkbook.Sheets
> Hoja.Activate
>
> 'Se determina la celda activa,
> Celda = ActiveCell.Address
>
> 'Se selecciona toda la hoja y se copia,
> Range("A1:IV65536").Select
> Selection.Copy
>
> 'pegando luego como valores,
> Selection.PasteSpecial
> Paste = xlPasteValues
> Operation = xlNone
> SkipBlanks = False
> Transpose = False
> Application.CutCopyMode = False
>
> 'y se vuelve a la celda activa.
> Range(Celda).Select
> Next Hoja
>
> 'Por último, se vuelve a activar la actualización de pantalla.
> Application.ScreenUpdating = True
> End Sub
> Lo he copiado tal cual.
>
> Gracias anticipadas por tu ayuda.
>
>
>
> "David" escribió:
>
> > Podrías partir del siguiente código:
> >
> > Sub Convertir()
> > Dim Celda As String
> >
> > 'Se guarda copia del libro activo y se detiene la actualización de la
> > pantalla
> > ActiveWorkbook.SaveAs Filename:="Copia de " & ActiveWorkbook.Name
> > Application.ScreenUpdating = False
> >
> > ' ... para cada hoja del libro,
> > For Each Hoja In ActiveWorkbook.Sheets
> > Hoja.Activate
> >
> > 'Se determina la celda activa,
> > Celda = ActiveCell.Address
> >
> > 'Se selecciona toda la hoja y se copia,
> > Range("A1:IV65536").Select
> > Selection.Copy
> >
> > 'pegando luego como valores,
> > Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
> > SkipBlanks _
> > :=False, Transpose:=False
> > Application.CutCopyMode = False
> >
> > 'y se vuelve a la celda activa.
> > Range(Celda).Select
> > Next Hoja
> >
> > 'Por último, se vuelve a activar la actualización de pantalla.
> > Application.ScreenUpdating = True
> > End Sub
> >
> > y personalizarlo según lo necesites...
> >
> >
> >
> > "Cesar Yanapa Z." escribió:
> >
> > > Estimados,
> > > Tengo una hoja excel de casi 9 megas, tiene formúlas, extrae datos de muchos
> > > otros files,etc.
> > > Bien, toda la información compilada en este file necesito envíarsela a los
> > > gerentes de territorio, pero como comprenderán es demasiado extenso.
> > > Es posible crear una macro para que desde este file se cree una copia del
> > > file sólo valores, sin ningun link o fórmula.
> > >
> > > Gracias anticipadas por su ayuda.
> > >
> > > Cesar Yanapa Z.
Respuesta Responder a este mensaje
#5 Cesar Yanapa Z.
16/11/2006 - 14:08 | Informe spam
Hola David,
El parametro de datos va desde A11:M4500, son casi 18 hojas, cada una jala
datos de distintos files externos y dentro de las mismas se buscan entre si
para compartir datos.
Ya he verificado que todo el espacio en blanco disponible no tenga
absolutamente nada para que no me genere espacio.
Creo que es código, mira por ejemplo a mi me salia error cuando encontraba
":=" y lo cambie por "=" y acepto que grabará la macro por eso lo cpoie para
que lo compares con el que me enviaste.

Gracias anticipadas por tu ayuda.


"David" escribió:

Algo más: ¿Tienes celdas combinadas?



"David" escribió:

> Entonces es probable que el "peso" de tu archivo no se deba a los vínculos o
> a las fórmulas, sino a otra causa.
>
> ¿Tienes muchos formatos aplicados? ¿Qué tal si en la copia trasladamos
> solamente los textos?
>
> ¿Si en cada hoja haces clic en Control+Fin, a dónde llegas? Si eso te sitúa
> cerca del fina de tus datos, no habría problema, pero si te lleva muy abajo o
> a la derecha de los mismos, podría ser que las celdas vacías también te
> generen espacio de archivo.
>
> Comentas para estas dos preguntas, y veremos qué hacer.
>
>
> "Cesar Yanapa Z." escribió:
>
> > Estimado David,
> > Debo ser sincero y decirte que de codigo casi nada se, siempre grabo mis
> > macros de la manera rustica.
> > Pero bien, he copiado el codigo que me envias y efectivamente me hace una
> > copia del archivo, pero es una copia identica, el archivo sigue siendo pesado
> > (9Mb) y contiene todas las referencias de las celdas.
> > Espero no haber copiado mal, te adjunto el codigo que he copiado:
> > Sub Convertir()
> > Dim Celda As String
> >
> > 'Se guarda copia del libro activo y se detiene la actualización de la
> > pantalla
> > ActiveWorkbook.SaveAs Filename:="Copia de " & ActiveWorkbook.Name
> > Application.ScreenUpdating = False
> >
> > ' ... para cada hoja del libro,
> > For Each Hoja In ActiveWorkbook.Sheets
> > Hoja.Activate
> >
> > 'Se determina la celda activa,
> > Celda = ActiveCell.Address
> >
> > 'Se selecciona toda la hoja y se copia,
> > Range("A1:IV65536").Select
> > Selection.Copy
> >
> > 'pegando luego como valores,
> > Selection.PasteSpecial
> > Paste = xlPasteValues
> > Operation = xlNone
> > SkipBlanks = False
> > Transpose = False
> > Application.CutCopyMode = False
> >
> > 'y se vuelve a la celda activa.
> > Range(Celda).Select
> > Next Hoja
> >
> > 'Por último, se vuelve a activar la actualización de pantalla.
> > Application.ScreenUpdating = True
> > End Sub
> > Lo he copiado tal cual.
> >
> > Gracias anticipadas por tu ayuda.
> >
> >
> >
> > "David" escribió:
> >
> > > Podrías partir del siguiente código:
> > >
> > > Sub Convertir()
> > > Dim Celda As String
> > >
> > > 'Se guarda copia del libro activo y se detiene la actualización de la
> > > pantalla
> > > ActiveWorkbook.SaveAs Filename:="Copia de " & ActiveWorkbook.Name
> > > Application.ScreenUpdating = False
> > >
> > > ' ... para cada hoja del libro,
> > > For Each Hoja In ActiveWorkbook.Sheets
> > > Hoja.Activate
> > >
> > > 'Se determina la celda activa,
> > > Celda = ActiveCell.Address
> > >
> > > 'Se selecciona toda la hoja y se copia,
> > > Range("A1:IV65536").Select
> > > Selection.Copy
> > >
> > > 'pegando luego como valores,
> > > Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
> > > SkipBlanks _
> > > :=False, Transpose:=False
> > > Application.CutCopyMode = False
> > >
> > > 'y se vuelve a la celda activa.
> > > Range(Celda).Select
> > > Next Hoja
> > >
> > > 'Por último, se vuelve a activar la actualización de pantalla.
> > > Application.ScreenUpdating = True
> > > End Sub
> > >
> > > y personalizarlo según lo necesites...
> > >
> > >
> > >
> > > "Cesar Yanapa Z." escribió:
> > >
> > > > Estimados,
> > > > Tengo una hoja excel de casi 9 megas, tiene formúlas, extrae datos de muchos
> > > > otros files,etc.
> > > > Bien, toda la información compilada en este file necesito envíarsela a los
> > > > gerentes de territorio, pero como comprenderán es demasiado extenso.
> > > > Es posible crear una macro para que desde este file se cree una copia del
> > > > file sólo valores, sin ningun link o fórmula.
> > > >
> > > > Gracias anticipadas por su ayuda.
> > > >
> > > > Cesar Yanapa Z.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida