Necesito ayuda para una macro

19/04/2007 - 19:53 por Altex | Informe spam
Hola a todos, primero de todo queria agradecerles el que al menos hayan
accedido a leer mi "pequeño" problema.

En el tema de Excel soy autodidacta, supongo que como casi todos, asi que
llevo ya unos dias intentando buscar por internet y en estos foros una
solucion a mi problema. He encontrado algunos ejemplos que he intentado
adaptar a mis necesidades, pero no lo consigo.

Les cuento mi escenario:

Tengo un libro de excel mediante el que calculo el precio de un producto,
el precio de ese producto final viene dado por la composicion de varios
articulos que tienen un precio que se coge de otras hojas en otros
libros. En este libro tambien tengo otras hojas que me sirven para sacar
un resumen de la composicion de ese producto que uso para enviar por fax.

La cuestion que llevo intentando resolver varios dias es que me gustaria
poder guardar mediante una macro esas dos hojas 'hoja1' y 'hoja2', que en
principio estan protegidas, en otro libro, respetando el formato y los
valores pero sin que se guarden los vinculos con otras hojas. Ese 'nuevo
libro' deberia de tener un nombre que viniese dado por dos datos que
cogeria de dos celdas dentro de la 'hoja1' y que ese pudiese guardarlo
donde yo quisiera, algo asi como la opcion 'Guardar como...'

He probado varios codigos que he encontrado por internet, al final llego
a un camino sin salida y siempre termino bloqueado, asi que os pido
vuestra ayuda para ver si podeis orientarme un poco como lo podria hacer.

Sub Guardar()
Sheets("Hoja2").Unprotect
Sheets("Hoja1").Unprotect
Sheets(Array("Hoja1", "Hoja2")).Select
Sheets("Hoja2").Activate
Sheets(Array("Hoja1", "Hoja2")).Copy
Sheets(Array("Hoja1", "Hoja2")).Select
Sheets("Hoja1").Activate
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:
=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:=Environ("USERPROFILE") &
"\Escritorio\Mi libro.xls"
End Sub

Con este codigo consigo que me copie las dos hojas en otro libro y que me
lo guarde en el escritorio con un nombre predefinido, pero no se si esta
sera la mejor manera, ademas que no puedo poner el nombre que yo quiero
ni guardarlo donde yo le diga.

Si es posible, me gustaria que me indicarais como podria hacer para, en
la 'hoja1' copiar solo un rango de celdas con sus formatos y demas.

Un saludo y de nuevo muchas gracias por leer todo este rollo.
 

Leer las respuestas

#1 marbarru
19/04/2007 - 21:19 | Informe spam
Primer que nada y como cualquier problema en la vida, hay que
dividirlo en problemas mas pequeños y luego a eso "problemitas"
buscarles solucion.

Ahora, bien tu problema no es tan grave y se podrian hacer varias
cosas. Se puede tomar cualquier parte del libro pegarlo en otro libro
y salvarlo donde usted lo desee. Para seleccionar la ubicación se
podría invocar el cuadro de diálogo de "Guardar como" para que usted
decida en ese mismo momento donde guardarlo. Ademas tambien se puede
copiar cualquier hoja a un libro nuevo, quitarle las referencias y
luego salvarlo donde sea requerido utilizando "Guardar como". Como
todo es posible no se cual solución le quede mas cómoda, si a mi me
pregunta prefiero copiar las hojas enteras y luego salvar el libro.

Si gusta indiqueme su eleccion y vamos creando el código.

Marco Barboza - San Jose, Costa Rica

On Apr 19, 11:53 am, Altex wrote:
Hola a todos, primero de todo queria agradecerles el que al menos hayan
accedido a leer mi "pequeño" problema.

En el tema de Excel soy autodidacta, supongo que como casi todos, asi que
llevo ya unos dias intentando buscar por internet y en estos foros una
solucion a mi problema. He encontrado algunos ejemplos que he intentado
adaptar a mis necesidades, pero no lo consigo.

Les cuento mi escenario:

Tengo un libro de excel mediante el que calculo el precio de un producto,
el precio de ese producto final viene dado por la composicion de varios
articulos que tienen un precio que se coge de otras hojas en otros
libros. En este libro tambien tengo otras hojas que me sirven para sacar
un resumen de la composicion de ese producto que uso para enviar por fax.

La cuestion que llevo intentando resolver varios dias es que me gustaria
poder guardar mediante una macro esas dos hojas 'hoja1' y 'hoja2', que en
principio estan protegidas, en otro libro, respetando el formato y los
valores pero sin que se guarden los vinculos con otras hojas. Ese 'nuevo
libro' deberia de tener un nombre que viniese dado por dos datos que
cogeria de dos celdas dentro de la 'hoja1' y que ese pudiese guardarlo
donde yo quisiera, algo asi como la opcion 'Guardar como...'

He probado varios codigos que he encontrado por internet, al final llego
a un camino sin salida y siempre termino bloqueado, asi que os pido
vuestra ayuda para ver si podeis orientarme un poco como lo podria hacer.

Sub Guardar()
Sheets("Hoja2").Unprotect
Sheets("Hoja1").Unprotect
Sheets(Array("Hoja1", "Hoja2")).Select
Sheets("Hoja2").Activate
Sheets(Array("Hoja1", "Hoja2")).Copy
Sheets(Array("Hoja1", "Hoja2")).Select
Sheets("Hoja1").Activate
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:
=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:=Environ("USERPROFILE") &
"\Escritorio\Mi libro.xls"
End Sub

Con este codigo consigo que me copie las dos hojas en otro libro y que me
lo guarde en el escritorio con un nombre predefinido, pero no se si esta
sera la mejor manera, ademas que no puedo poner el nombre que yo quiero
ni guardarlo donde yo le diga.

Si es posible, me gustaria que me indicarais como podria hacer para, en
la 'hoja1' copiar solo un rango de celdas con sus formatos y demas.

Un saludo y de nuevo muchas gracias por leer todo este rollo.

Preguntas similares