Abro nuevo tema para tratar de obtener ayuda a la solucion de este
problema.
Quiero mencionar que hasta llegar a obtener este codigo, he tenido la ayuda
de una persona muy valida, una persona muy gentil y comprensiva al momento
de dar ayuda pero, hace tiempo que no se nada de ella.
vengo al nuevo tema por que tengo estos dos codigos con la misma funcion
pero; con cualquier de los dos codigos, en la hoja1 me dá error en la linea
For Each forma In ActiveSheet.Shapes
El libro (para las pruebas), las dos hojas contienen imagenes y formas
insertadas, demas de formulas, codigo y botones, no pretendo que me elimine
ni formas ni imagenes, de echo NO LAS ELIMINA, pero lo digo como referencia
y las 2 hojas son casi gemelas
El error dice:
Se ha producido el error '40036' en tiempo de ejecucion:
Error definido por la aplicacion o el objeto.
Copia la hoja pero, no guarda, no elimina codigo, formulas ni botones
Los dos codigos tienen la MISMA funcion
Sub CopiaSOLO_ValoresHoja5() 'funciona bien en la Hoja2 pero no en la Hoja1
'Copia la hoja
ActiveSheet.Copy
'el nuevo libro se convierte en activo, así que copiamos y pegamos SOLO
valores.
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
'eliminamos controles con macros
Dim forma As Shape
For Each forma In ActiveSheet.Shapes 'DA ERROR EN ESTA LINEA EJECUTANDO EN
LA HOJA1
If forma.OnAction <> "" Then 'tiene macro asociada
forma.Delete
End If
Next
'Elimina el codigo de hoja copiada
With ActiveSheet
With .Parent.VBProject.VBComponents(.CodeName) 'DA ERROR EN ESTA LINEA
COPIANDO LA HOJA1
.CodeModule.DeleteLines 1, .CodeModule.CountOfLines
End With
End With
ActiveSheet.Range("a2").Select 'Para que al abrir el nuevo libro, no
presente seleccionada la hoja completa
' guardamos y cerramos el libro, segun la linea seleccionada.
Dim SaveName As String
SaveName = ActiveSheet.Name
Application.Dialogs(xlDialogSaveAs).Show
MsgBox "Guardado el libro con el nombre de hoja " & SaveName 'el nombre
definido o celda. Cambiar segun la linea de guardar como, activa
End Sub
---------------------------------------------------------------------
Este dá el mismo error en la misma linea For Each forma In
ActiveSheet.Shapes
Sub HojaActivaNuevoLibro() 'funciona bien en la Hoja2 pero no en la Hoja1
'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
ActiveSheet.Copy '1º DABA ERROR EN ESTA LINEA COPIANDO LA HOJA1, LUEGO DEJO
DE DAR Y PASAR A LA OTRA
'donde guardar los archivos creados
strRuta = "C:\2"
'eliminamos controles con macros
Dim forma As Shape
For Each forma In ActiveSheet.Shapes 'A ESTA
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
'el nuevo libro se convierte en activo, así que copiamos y pegamos solo
valores.
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Range("a2").Select 'Para que al abrir el nuevo libro, no
presente seleccionada la hoja completa
' 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.Close True 'cierra el libro
MsgBox "Guardado el libro en la ruta " & vbLf & strRuta & " \ " & " con el
nombre " & Range("DATA2").Value & ".xlsx" 'el nombre definido o celda.
Cambiar segun la linea de guardar como, activa
Application.ScreenUpdating = True
End Sub
En cualquier de los dos, quisiera tener la OPCION de PODER seleccionar la
extension, .xls o xlsx
Me hago la siguiente pregunta; ¿porque en la Hoja1 y no en la Hoja2? si son
las 2 casi lo mismo
Las dos tienen imagen, formulas y formas insertadas y en la Hoja2 funcionan
perfecto pero en la Hoja1, este error



