Error en Macro copia hoja Activa en nuevo libro

19 envíos / 0 nuevos
Último envío
JoaoM
Imagen de JoaoM
Offline
última acción: Hace 3 meses 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 15/12/2011 - 23:46
Puntos: 2820
Error en Macro copia hoja Activa en nuevo libro

Macro copia hoja Activa en nuevo libro. Esta macro es muiy buena pero me dá error en la linea 12 en este libro.

Este libro es un arreglo de un original de Microsoft del Office 2003 o algo así, no recuerdo bien. El original, lo tengo este es una modificacion repito, tanto que el original viene con los modulos y todo l oque es edicion VBA, oculta y bien escondida, cosa que no se puede entrarle al codigo. Este tuve que violarlo (digamolo así) para y por coriosidad, si no no se le podria agragar macros

Te dejo un ejemplo del libro con la macro para que lo revises y detetes el error

http://www.mediafire.com/?4vu95312pmrvwk4

http://www.mediafire.com/?5rm3g3dg5ati3h7

Este Factura_Presupuesto con IVA_07-10.xls es el del error y en el modulo escribi una sugerencia que me interesaria que leeras, y este Factura_Presupuesto-Sin_IVA.xlsm presenta un mensage de entrada que me gustaria quitarselo, yo no encuentro como. Este ultimo yo le elimine dos hojas que era donde estaba todo la configuracion y demas sobre las formulas. A ver que se puede hacer

JoaoM
Imagen de JoaoM
Offline
última acción: Hace 3 meses 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 15/12/2011 - 23:46
Puntos: 2820
Re: Error en Macro copia hoja Activa en nuevo libro

Como no encontre como editar mi tema, aqui dejo nuevos enlaces una ves que los anteriores parece no funcionar

http://www.mediafire.com/download.php?18o2cgl99d2s7fl

http://www.mediafire.com/?18o2cgl99d2s7fl,vf17i7haff6fi98

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 1 hora
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10680
Re: Error en Macro copia hoja Activa en nuevo libro

vamos por partes:

el error se produce porque estás intentando copiar todas las hojas del libro, y esto incluye algunas hojas que no están, el error lo da con una hoja de nombre AutoOpen Stub Data ¿?
Sorprendido ¿de donde salen esas hojas? por lo que veo es una hoja de macros (anterior al VBA)

Supongo que sólo te interesa el presupuesto, así que por qué no exportas sólo la hoja del presupuesto.

Sustituye el bucle que recorre todas la hojas y copia sólo la hoja del presupuesto.

así que sería algo así:

Sheets("Presupuesto").Copy

'el nuevo libro se convierte en activo, así que copiamos y pegamos valores.

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False, Transpose:=False
Application.CutCopyMode = False

Luego guardas el nuevo libro o lo que necesites.

En cuanto al mensaje de error del segundo libro:

error al abrir libro de excel tras eliminar hoja de macros de excel4

Se debe a que está buscando la macro AutoOpen para ejecutarse al abrir el libro. Supongo que estaba en alguna de las hojas eliminadas. He probado a guardar como xlsx, sin macros, entonces no hay error (ni macros). pero al volver a guardarlo como xlsm vuelve a aparecer el error, aunque no tiene macros en vba, claro, se vuelve a activar una macro de excel4.

el error #REF es porque no encuentra algo que aún permanece a pesar de haber eliminado la hoja de macros antiguas de Excel4.
¿qué puede quedar todavía...? los nombres. Eureka.

ve al administrador de nombres
Fórmulas>Nombres definidos>administrador de nombres>

administrador de nombres

puedes filtrar los nombres con errores y verás que hay un montón de ellos.

elimina todos estos nombres con error de referencia y problema resuelto.

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 1 hora
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10680
Re: Error en Macro copia hoja Activa en nuevo libro

en el envío tienes la posibilidad de adjuntar archivos.

veras una opción que pone archivos adjuntos

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

JoaoM
Imagen de JoaoM
Offline
última acción: Hace 3 meses 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 15/12/2011 - 23:46
Puntos: 2820
Re: Error en Macro copia hoja Activa en nuevo libro

Si verificas en el Editor VBA del libro Factura_Presupuesto con IVA_07-10.xls, lado izquierdo ahí estan TODAS las hojas que contiene el libro, 2 de ellas ocultas tal como el original.

Si las colocas visible, prueba insertar un boton en la hoja Personalisar o en la Template, ¿Será por eso?

Cuanto a copiar una o todas, probe con un libro GastosFilas_X_Nombre.xlsm que baje de aqui mismo y si copia las dos hojas (cada una en libro diferente.

Quisiera el codigo PARA QUE COPIE UNA SOLA HOJA, HOJA ACTIVA.

Probare mejor el codigo que me dejas, que anteriormente lo probe pero solo por encimita.

Ya dire algo

Perfecto, eliminadas las referencias y listo.

Puedo decirte que ya habia estado ahí (Administrador de Nombres) y vi esas ref pero no me atrevi a eliminarlas, como dije antes, mis conocimientos en esto de macros, quedo muy lejos, es mas, no veo la luz ni reflexo al final del tunel jejejejejej.

¿Podria cambiarse esto Sheets("Presupuesto").Copy por Hoja activa? ademas

un codigo sencillo y efectivo

Podria hacer algo para que solo copie valores? y no botones, formulas, Nombres definidos, ect, Solo valores como dije.

Edito:

Me estoy dando cuenta que el codigo que va en el libro Factura_Presupuesto con IVA_07-10.xls, tiene muchas cosas que corrigir, tales como;

Que no copie botones, macros en la hoja copiada, formulas, otras hojas que no sea la activa, es decir, SOLO copie la activa con los valores, seria fenomenal.

En cambio el codigo que dejas, es sencillo pero tambien tiene estos inconvenientes, cuando necesito enviar un presupuestom, va con macros y todo lo demas, y eso es lo que no quiero.

Para eliminar todo DESOUES del proceso de copia de hoja, haria manualmente la copia de hoja de solo valores, SELECCIONAR TODA LA HOJA Y COPIAR EN LIBRO NUEVO, eliminar las 2 hojas que contiene el libro, macros, formulas ect ect pero eso es lo que no quiero estar rato largo eliminando formula por formula ni macro por macro.

Gracias por tu atencion con mi caso y espero lleguemos (tu) a un final exitoso.

Lo del error del codigo es por que tiene hojas ocultas o algo desactivado porque lo probe en un libro con una de las hojas ocultas y da el mismo error en dicha linea, la puse visible y listo.

Vuelvo y Edito:

Logre que solo copie una hoja, le desactive para probar, las lineas

''bucle todas hojas
'For i = 1 To Sheets.Count

cambie Sheets(i).Activate por Sheets(strStartHoja).Activate

desactive

''repetir bucle'
'Next
'Sheets(strStartHoja).Activate

asi que ya lo tengo para SOLO LA HOJA ACTIVA Y NO UNA HOJA ESPECIFICA, la hoja que este activa es la que se copia

Falta lo demas mensionado

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 1 hora
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10680
Re: Error en Macro copia hoja Activa en nuevo libro

-Con ActiveSheet puedes referirte siempre a la hoja activa

-para eliminar los botones:

los botones de tu hoja son lo que Excel llama Shapes. el problema es que también son Shapes los botones de opción, así que sólo interesan ciertos Shapes. en tu caso te interesa eliminar las que tienen macros asociadas.

Así que podemos hacer un bucle que recorra todos los shapes de la hoja activa, y si tienen una macro lo eliminamos.

algo así:

Sub EliminarControlesConMacros()
Dim forma As Shape
For Each forma In ActiveSheet.Shapes
If forma.OnAction <> "" Then 'tiene macro asociada
forma.Delete
End If
Next
End Sub

Como esto elimina tus botones de la hoja activa, debes ejecutarlo cuando crees la copia de la hoja, para eliminar los botones en la copia no en el original.

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

JoaoM
Imagen de JoaoM
Offline
última acción: Hace 3 meses 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 15/12/2011 - 23:46
Puntos: 2820
Re: Error en Macro copia hoja Activa en nuevo libro

Si no me equivoco, despues hoja copiada en libro nuevo creado, es ahí donde tengo que ejecutar esta macro? y luego eliminar esta macro tambien porque solo me interesa que la hoja vaia pelada SOLO con sus valores, SIN MACROS, SIN FORMULAS, SIN BOTONES (OMMANDBOTTON O BOTON DE CONTROL DE FORMULARIO, ECT)

Dime si es así

Edito:

Tengo esta macro en un modulo que baje de la WEB, no recuerdo de cual

'Macro para eliminar macro (Modulo)
Sub Mymacro()
Dim vbCom As Object
Dim Mensaje, Estilo, Título, Respuesta, MiCadena
Mensaje = "¿Estas seguro de querer eliminar la macro?" & vbCr & "Si responde SI, no tiene vuelta atraz" & vbCr & "la macro se eliminara por siempre"
Estilo = vbYesNo + vbCritical
Título = "Advertencia"
Respuesta = MsgBox(Mensaje, Estilo, Título)
If Respuesta = vbYes Then
MiCadena = "Sí"
Else
MiCadena = "No"
Exit Sub
End If
Set vbCom = Application.VBE.ActiveVBProject.VbComponents
vbCom.Remove VBComponent:=vbCom.Item("Módulo1") 'Cambiar Modulo1 por el que tengas que eliminar
End Sub

Mi preguta es: ¿Como podria integrar ese codigo a este y formar uno solo?, es decir, una solo macro con doble funcion

La cosa es que cada ves que creo un presupuesto (por mensionar presupuesto(puede ser otro libro)) tengo que entrar al nuevo, importar el modulo, crear el boton o ejecutar la macro para eliminar los botones y el modulo de la macro, en 50-70 libros que maneje al dia, ya verás el tragin, pero algo es algo.

Lo otro será, meter de una la macro en la hoja que generalmente se copia en la plantilla, con su boton y todo copiar la hoja, abrir el libro de la hoja copiada y ejecutar el boton, elimina la macro y boton.

2ª opcion es en ves del nuevo libro (hoja copiada) cerrarse, copiar la hoja y mantener el nuevo libro abierto, ejecutar la macro en el nuevo libro y, luego al cerrar el libro guardar como en ThisWorkbook close save =true

(no se como se edita la linea)

Cual es tu opinion? y cual seria esa linea en thisWorkbook para cerrar guardando el libro nuevo

Gracias por tu pciencia y gran voluntade

Vuelvo y edito:

Probe las dos macros, la tuya primero y luego la mia y viceversa, en una sola macro y como sea funciona, elimina la macro y botones, de aqui estamos, falta tu opinion sobre mantener el libro abierto bla bla bla

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 1 hora
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10680
Re: Error en Macro copia hoja Activa en nuevo libro

La macro no tiene que estar en el nuevo libro, sino en el original. Es una macro que actúa sobre el libro activo, pero puede estar en otro libro, por ejemplo en un módulo de tu libro original.

Si tienes código dentro de la hoja, entonces sí te interesa eliminarlo, por ejemplo con un código como éste (lo copio del tema del foro sobre copiar una hoja Excel sin que se copien sus macros):

With ActiveSheet
With .Parent.VBProject.VBComponents(.CodeName)
.CodeModule.DeleteLines 1, .CodeModule.CountOfLines
End With
End With

Para crear una macro que lo incluya todo, pon una cosa a continuación de otra en un nuevo procedimiento Sub

Sub MiMacroQueLoHaceTodo
....lo primero
.... lo segundo
....
End Sub

Sobre lo de guardar el libro,

para guardar sin cerrar, emplea el método SaveAs del libro. Como el libro nuevo no tiene nombre tendrás que ponerle uno (y una ruta). Cuando tenga nombre basta con el método Save

ActiveWorkbook.SaveAs rutaYnombrearchivo

si sólo pones el nombre, sin ruta, lo guarda en la carpeta actual.

aquí hay un par de temas sobre SaveAs http://www.necesitomas.com/search/node/SaveAs

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

JoaoM
Imagen de JoaoM
Offline
última acción: Hace 3 meses 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 15/12/2011 - 23:46
Puntos: 2820
Re: Error en Macro copia hoja Activa en nuevo libro

La macro no tiene que estar en el nuevo libro

Si entendi bien, la macro para eliminar boton, y modulo(la que te pase) puede estar integrada en el libro origen, ¿es así?

Si tengo codigo en la hoja, entonces uso el codigo que me dejas, ¿lo integro en el original o en la hoja copia?

Para crear una macro que lo incluya todo, pon una cosa a continuación de otra en un nuevo procedimiento Sub

Sub MiMacroQueLoHaceTodo
....lo primero
.... lo segundo
....
End Sub

Si lo hice y viceversa y en cualquier posicion, funciona

Sobre lo de guardar el libro,

Entendido mi amigo.

Ahora voy a la pagina que me recomiendas

Gracias por todo.

Alguna novedad, la comentare

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 1 hora
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10680
Re: Error en Macro copia hoja Activa en nuevo libro

El código tiene que estar en el original. la copia aún no existe.

mi consejo es que pongas todo el código en un módulo en el libro original. al menos todo el código que puedas.

Pienso que el código en la hoja debe limitarse al que responda a los eventos de la hoja.
y el código en el libro a los eventos del libro, como Workbook_Open.

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

JoaoM
Imagen de JoaoM
Offline
última acción: Hace 3 meses 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 15/12/2011 - 23:46
Puntos: 2820
Re: Error en Macro copia hoja Activa en nuevo libro

Entendido prof. (corrijo) estoy editando, Fin de EDICION

NO DOY PIE CON BOLA, podras pensar o decir que soy bruto, no te creo mal por eso, es que cuando toca a construir codigo o ordenarlo, uuffffffffffff quedo aquen de lograr algo final o muy positivo

Integre este codigo en un modulo

Al hacer la prueba de integrar todo el codigo(s) al libro original, la hoja a copiar (digamos que la hoja1) contiene un codigo.

Tengo 3 modulos en el libro ORIGINAL, dos de codigo del libro original y otro creado para integrar estas macros para el funcionamiento QUE NECESITO

1ª Sub Crear_archivos_de_hojas() 'Crea un libro por cada hoja del libro abierto
2ª Sub EliminarControlesConMacros() 'Elimina cualquier boton existente en la hoja copiada

3ª Sub eliminaCodigo_Hojas() 'elimina cualquier codigo de hoja a copiar

Probe con algunas posiciones, 1º uno despues otro y así pero ninguno satisface, ¿porque?

en cualquier posicion, deja de hacer alguna rutina, creo que la ultima siempre no se ejecuta(creo) y EN LIBRO ORIGINAL, deaparece TODO que el codigo contiene, el modulo, botones en la hoja, codigo de hoja

Sub Crear_archivos_de_hojas() 'Crea un libro por cada hoja del libro abierto
Dim strHoja, strStartHoja, strRuta As String
Dim i As Integer
Application.ScreenUpdating = False
strStartHoja = ActiveCell.Worksheet.Name
'copia la hoja a libro nuevo
Sheets(strStartHoja).Activate
strHoja = ActiveCell.Worksheet.Name
Sheets(strHoja).Copy
'donde guardar los archivos creados
strRuta = "C:\2"
'guarda el libro nuevo
ActiveWorkbook.SaveAs FileName:=strRuta & "\" & strHoja, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close Savechanges:=True
Application.ScreenUpdating = True
''''End Sub

'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

''''Sub EliminarControlesConMacros() 'Elimina cualquier boton existente en la hoja copiada
Dim forma As Shape
For Each forma In ActiveSheet.Shapes
If forma.OnAction <> "" Then 'tiene macro asociada
forma.Delete
End If
Next
''''End Sub

'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

''''Sub eliminaCodigo_Hojas() 'elimina cualquier codigo de hoja a copiar
With ActiveSheet
With .Parent.VBProject.VBComponents(.CodeName)
.CodeModule.DeleteLines 1, .CodeModule.CountOfLines
End With
End With
End Sub

Son 3 rutinas en una sola. Me gustaria que si pudieras probaras tu mismo para poder tener las 3 en un solo codigo, si un libro con codigo en la hoja1, y un boton para ejecutar la macro a ver si, copia la hoja, elimina el boton y tambien el codigo de la hoja1 en un conjunto.

Quisiera integrarle este tambien porque no me interesa que la copia vaia con formulas, con botones, con codigo

Sub Elimina_Formulas()
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub

Gracias

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 1 hora
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10680
Re: Error en Macro copia hoja Activa en nuevo libro

Lo tienes casi hecho. el problema es que cierras el nuevo libro tras guardarlo, con lo cual ya no puedes seguir haciendo cambios en él.

comenta esa línea que pone ActiveWindows.Close
así el resto del procedimiento, que hace referencia a la hoja activa actuará sobre la nueva hoja que se ha copiado.

también puedes pasar la línea del ScreenUpdating=true al final del todo, para que vuelva a refrescar la pantalla cuando termine, no a la mitad del procedimiento.

podría ser algo así:

Sub HojaActivaNuevoLibro()
'Crea un libro para la hoja activa, sin botones ni macros ni fórmulas
Dim strRuta As String
Dim i As Integer
'copiamos la hoja
Application.ScreenUpdating = False
'copia la hoja a libro nuevo, esto la convierte en hoja activa y libro activo
ActiveSheet.Copy
'donde guardar los archivos creados
strRuta = "C:\2"
'eliminamos controles con macros
Dim forma As Shape
For Each forma In ActiveSheet.Shapes
If forma.OnAction <> "" Then 'tiene macro asociada
forma.Delete
End If
Next
'eliminamos el código de la hoja si existe
With ActiveSheet
With .Parent.VBProject.VBComponents(.CodeName)
.CodeModule.DeleteLines 1, .CodeModule.CountOfLines
End With
End With
'eliminamos las fórmulas, copiando y pegando valores
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
' guardamos y cerramos el libro
ActiveWorkbook.SaveAs Filename:=strRuta & "\" & ActiveSheet.Name
ActiveWorkbook.Close True
Application.ScreenUpdating = True
End Sub

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

JoaoM
Imagen de JoaoM
Offline
última acción: Hace 3 meses 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 15/12/2011 - 23:46
Puntos: 2820
Re: Error en Macro copia hoja Activa en nuevo libro

Lo probe y me gusta, pero un solo detalle que comento en el libro para que entiendas mejor lo del error.

comenta esa línea que pone ActiveWindows.Close

Como he dicho, soy parco para esto de macros, ordenarl las lineas y mucho menos ingles en las macros.

Hago algo como un néné. sube a la silla para sentarse a la mesa pero no llega al plato por su pequeña altura

Te dejo enlace para que bajes el libro de ejemplo, leas mis comentarios en los 2 modulos que contiene, revises los dos y seleciones uno.

Cuando lo tengas, me lo envias con un solo modulo o los dos,o los que tu jusgues necesarios, no importa

Lo otro que te uquiero decir, es que no te apresures, no es de muerte, necesario si pero despacio y con la mente fresca, se llega muy lejos, "aunque sea con el pensamiento jejejejejejej.

AdjuntoTamaño
File Pruebas_2.xlsm103.92 KB
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 1 hora
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10680
Re: Error en Macro copia hoja Activa en nuevo libro

tus comentarios en el código (los pongo aquí para que los pueda leer todo el mundo, sin tener que descargar el archivo):

"Este nuevo puede quedar abierto para que luego Guarde como: y así poder darle _ nombre y ruta donde Guardar"

pues basta con no cerrar el libro. Comenta las líneas donde guardas y donde cierras:

ActiveWorkbook.SaveAs...
ActiveWorkbook.Close...

Si quieres mostrar al usuario la ventana guardar como (para que no se olvide de guardarlo) y así tiene todas las opcioens de guardado disponibles, puedes hacerlo con lo siguiente:

Application.Dialogs(xlDialogSaveAs).Show

coneste sistema puedes mostrar cualquier cuadro de diálogo de Excel

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

JoaoM
Imagen de JoaoM
Offline
última acción: Hace 3 meses 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 15/12/2011 - 23:46
Puntos: 2820
Re: Error en Macro copia hoja Activa en nuevo libro

Gracias por responder y dar solucion, UNA VES MAS

Disculpa algo que no has comentado; sobre los errors que me dá?.

En el modulo2 solo copiando la hoja1, la hoja 2 perfecto, en esta linea With .Parent.VBProject.VBComponents(.CodeName) 'DA ERROR EN ESTA LINEA COPIANDO LA HOJA1

En modulo1 que es el ultimo codigo que me dejaste, y solo copiando la hoja1, en esta lina

For Each forma In ActiveSheet.Shapes

Copiando la hoja2 presenta este mensage

Las siguientes caracteristicas no se pueden guardar en libros sin macros.

bla bla bla

Para seguir guardando el archivo como libro sin macros, haga click en SI

Le digo NO, error en esta linea; ActiveWorkbook.SaveAs FileName:=strRuta & "\" & ActiveSheet.Name y no guarda

Del modulo2 ya antes de tener las imagenes, sucedia

Copiando la hoja2, del modulo2 antes de guardar, me presenta el mensage de que:

el mismo mensage de arriba

Si le digo no me presenta error en linea ActiveWorkbook.SaveAs FileName:="C:\2\" & Range("DATA5").Value y no guarda

¿Podria evitarse esto? y guardar sin el codigo de hoja?

De lo que comentas, voy a hacerlo a ver como me sale

Con esta linea Application.Dialogs(xlDialogSaveAs).Show

¿como se puede hacer esto?

MsgBox "Guardado el libro en la ruta " & vbLf & strRuta & " \ " & " con el nombre " & Range("DATA2").Value & ".xlsx"

o en ves de Range("DATA2").Value ser ActiveSheet.Name

JoaoM
Imagen de JoaoM
Offline
última acción: Hace 3 meses 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 15/12/2011 - 23:46
Puntos: 2820
Re: Error en Macro copia hoja Activa en nuevo libro

Con este codigo, funciona de a mil en la hoja2 pero no en la Hoja1

Sub HojaActivaNuevoLibro3() 'funciona bien en la Hoja2
'Crea un libro para la hoja activa, sin botones ni macros ni fórmulas
Dim strRuta As String
Dim i As Integer
'copiamos la hoja
Application.ScreenUpdating = False
'copia la hoja a libro nuevo, esto la convierte en hoja activa y libro activo
ActiveSheet.Copy 'me da error esta linea
'donde guardar los archivos creados
strRuta = "C:\2"
'eliminamos controles con macros
Dim forma As Shape
For Each forma In ActiveSheet.Shapes
If forma.OnAction <> "" Then 'tiene macro asociada
forma.Delete
End If
Next
'eliminamos el código de la hoja si existe
With ActiveSheet
With .Parent.VBProject.VBComponents(.CodeName)
.CodeModule.DeleteLines 1, .CodeModule.CountOfLines
End With
End With
'eliminamos las fórmulas, copiando y pegando valores
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
''''''''''''''''''''''''''''''''''''''
'Quisiera que me diera 2 opciones al Guardar. Como guarda sin macros seria .xls o .xlsx.
'Tener solo la linea de tu preferencia activada
' guardamos y cerramos el libro, segun la linea seleccionada.
ActiveWorkbook.SaveAs FileName:=strRuta & "\" & Range("DATA2").Value '1ª opcion. Desactivando las lineas 40 y 41
'ActiveWorkbook.SaveAs FileName:=strRuta & "\" & ActiveSheet.Name '2ª opcion. Desactivando las lineas 39 y 41
'Application.Dialogs(xlDialogSaveAs).Show '3ª opcion desactivando las lineas 39, 40, 42
ActiveWorkbook.Close True 'cierra el libro
''''''''''''''''''''''''''''''''''''''
MsgBox "Guardado el libro en la ruta " & vbLf & strRuta & " \ " & " con el nombre " & Range("DATA2").Value & ".xlsx" 'Cambiar segun la linea de Guardar"
Application.ScreenUpdating = True
End Sub

· opciones para seleccionar la que me convenga a la hora de tener que enviar decenas de hojas

Con la hoja1 me presenta error en la linea For Each forma In ActiveSheet.Shapes.

Comento que en la Hoja2, coloque tambien imagen y formas tal como en la Hoja1

¿podria hacerse algo al respecto?

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 1 hora
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10680
Re: Error en Macro copia hoja Activa en nuevo libro

Me imagino que el error lo da porque está intentando eliminar el código de la hoja, pero si no hay código... habría que comprobar antes si tiene código o no, o no ejecutar esa parte de código en la hoja 1, o ejecutarlo sólo para la hoja 2.

por ejemplo

If Activesheet.Name="Hoja2" then
'líneas que eliminan el código
end if

así evitas que se produzca el error.

cuando quieras que se ejecuten unas líneas u otras según una condición tendrás que usar por ejemplo un bloque condicional de este tipo, IF ... Then

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 1 hora
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10680
¿qué errores?

Dices que se producen errores en algunas líneas, ¿pero qué error?

Si pones exactamente qué error es el que se produce en cada caso tendremos alguna pista más.

(Si surgen dudas nuevas, crea temas nuevos en el foro. Un tema para cada consulta concreta.
Es mejor muchos temas pequeños que un tema muy largo, esto ayuda a los demás usuarios a contestar, ya sabes: divide (el problema) y vencerás.)

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

JoaoM
Imagen de JoaoM
Offline
última acción: Hace 3 meses 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 15/12/2011 - 23:46
Puntos: 2820
Re: ¿qué errores?

Voy a eguir tu consejo

Claro, tu las consideras dudas, yo solucio nal mismo tema

Lo de continuar el tema es que es el mismo y aun no termina de solucionarse, esa la razon por la cual no abri nuevo tema pero, el que sabe y conoce, POR ALGO ES ¿verdad?

jjejejeje

Te dejo el enlace del nuevo tema

http://www.necesitomas.com/node/979

========================================================

La programación es una carrera entre ingenieros tratando de hacer mejores y mas grandes programas resistentes a idiotas y el universo haciendo mejores y grandes idiotas. Por ahora gana el universo