Hola Paco, quisiera que me corrigieras algo que esta mal y no doy con el fallo
Pacomegias hizo esta macro ya algun tiempo atras, desde esa ocasion no he podido dar con la falla.
He estado buscando la macro en el foro pero no logro dar con ella ni con el tema asociado
Las 2 macros funcionan pero con detalles que menciono en la hoja
Dejo ejemplo del libro con las 2 macros (son la misma solo que con lineas de codigo cambiadas de lugar)
Dejo comentarios en una hoja.
Desde ya, Gracias por lo que puedas hacer
Edito:
Esta rutina esta sobrando porque tiene la otra que dice; 'eliminamos controles, macros y formulas. Solo no elimina Imagenes que esta si la queria por separado, como una rutina(creo llamarse así)
'Elimina el codigo de hoja copiada si existe codigo
'With ActiveSheet
' With .Parent.VBProject.VBComponents(.CodeName)
' .CodeModule.DeleteLines 1, .CodeModule.CountOfLines
'End With
' End With
Adjunto | Tamaño |
---|---|
guardar_hoja_como_nuevo_libro_pacomegias.xlsm | 74.9 KB |
Hola JoaoM
¿será este el tema del foro antiguo? http://www.necesitomas.com/copia-solo-valores-hoja-nuevo-libro-error-2-macros
sobre tus dudas:
*El error al copiar la hoja a mí no se me produce, así que no te puedo ayudar con esto
*Sobre guardar como...
muestras el cuadro de diálogo del programa, pero a continuación muestras el mensaje de que se ha guardado.
En realidad cuando utilizas .show, eso es como una función que devuelve verdadero si consigue guardar el archivo, así que podrías comprobar con un IF si ha guardado el archivo o se ha cancelado, para mostrar el mensaje sólo si se guardó con éxito:
If Application.Dialogs(xlDialogSaveAs).Show Then
ActiveWorkbook.Close True 'cierra
MsgBox "Guardado el libro con el nombre de hoja " & vbLf & SaveName 'Cambiar variable segun linea de guardar como, activa
End If
*Sobre el botón que se desactiva tras ejecutar la macro.
Parece que pulsar el botón y crear el nuevo libro y cerrarlo, la celda o la hoja activa se pierde, por eso el primer clic no ejecuta la macro, sino que activa el botón y lo selecciona, o si haces clic en una celda, activa esa celda. Prueba a activar una celda cualquiera de la hoja antes de teminar la macro
Range("a1").activate
------
Ya sé Excel, pero necesito más.
Hola paco, buen dia a todos
Pues creo que si es el tema que indicas, ya enesa oportunidad, me daba dicho error y fijate que desde ahí he echo l oque he podido, hasta para copiar la hoja que necesite por el bendito error ese que al dia de hoy, sigue el mismo.
Dices en ese tema, SITO;
¿en qué se diferencia la hoja 2 de la 1?
no veo diferencia, pues las 2 tiene imagens, botones Control de formulario, codigo(puesto solo para la prueba), formulas y formas insertadas.
Diferencia ninguna porque he echo un Mover o copiar de hoja, solo que le coloco en ves de Hoja1(2) le hago un cambio a Hoja2, solo eso
Sobre; "Sobre el botón que se desactiva tras ejecutar la macro." entendiste l oque yo quise que entendieras
mencioné lo de seleccionar otra celda es; coloco el cursor clicando en cualquier parte. Si trato de ejecutar la macro seguidamente (presionando el boton), como dije pareciera que no tiene macro asignada PERO vuelvo a darle y si ya ejecuta la macro. Lo de seleccionar una celda para tal, fue para mencionar que, al segundo intento si ejecuta.
Lo referente a; *Sobre guardar como...
muestras el cuadro de diálogo del programa, pero a continuación muestras el mensaje de que se ha guardado.
Si, muestar el cuadro dialogo Guardar como PERO, YO EN VES DE GUARDAR, lo que hago es Cancelar la ventana de Dialogo Guardar como, no guardo, Cancelo, al cancelar se va y viene nuevamente la ventana de dialogo, vuelvo a cancelar y me presenta el mensage de que se guardo la hoja tal y tal, bla bla
Hice esto;
SaveName = ActiveSheet.Name
''''''''''''''''''''''''''''
If Application.Dialogs(xlDialogSaveAs).Show Then
ActiveWorkbook.Close True
Exit Sub
End If
MsgBox "Guardado el libro con el nombre de hoja " & vbLf & SaveName 'Cambiar variable segun linea de guardar como, activa
Application.ScreenUpdating = True
End Sub
y ya no vuelve a re-aparecer PERO crea el libro (Libro1.xlsx(sin guardar)) y me lo deja abierto, deberia no crearlo una ves Cancelada la operacion ni darme el mensage.
Mi mal es que poco se de programar codigo, por eso todo el tiempo que llevo con dicho detalle, no solo por el Ingles si no tambien por signos y demas cosas que no se que significan y al dia de hoy (67) y la ocupacion, no me da para volver a sentarme en un pupitre (banco (silla de escuela))
Para evitarme rollos, lo que puedo hacer es:
en ves de usar la linea que abre la ventana de dialogo, usar alguna de estas
ActiveWorkbook.SaveAs Filename:="C:\0\" & "Presupuesto " & Range("h12").Value & ".xlsx" 'nombre definido '1ª opcion. Desactivando las lineas 39 y 40
pero para esta, quisiera que NO ME PREGUNTE si quiero o no guardfar con macros. ¿se puede hacer paco? no pretendo que las copias vaian con macros.
Al parecer lo del boton SI funciona con Range("a1").Activate al final del codigo