Quitar modulo Vba y Y cerrar Archivo Problema

Necesito por medio de código vba borrar un modulo, y grabar el libro automáticamente, Logro hacerlo con el siguiente código

With ActiveWorkbook.VBProject.VBComponents
.Remove .Item("Módulo2")
Application.DisplayAlerts = False
ActiveWorkbook.CheckCompatibility = False
ActiveWorkbook.SaveAs Filename:=Range("j2"), FileFormat:=xlExcel8
End With

Pero el problema me surge, que si posteriormente al cerrar el libro no presiono grabar los cambios, el modulo en cuestión vuelve a aparecer (no se borra),

¿Qué más debo agregar al código?

1 Respuesta

Respuesta
1

Agregá esta línea para que lo cierre guardando los cambios.

ActiveWorkbook.Close True

Elsa, agradezco la respuesta, la macro se ejecuta y se cierra el libro en cuestión, pero el modulo no se borra!, ¿Qué más puedo probar?,

Pd: (Si ejecuto el modulo parcialmente, hasta antes de cerrarlo,, puedo ver que el modulo es eliminado), El problema es que si no le doy un nuevo grabar, no lo elimina definitivamente

Muchas Gracias!

Macro del Modulo 1 que borra el modulo 2

Sub GUARDARCOMO()

Call roll
With ActiveWorkbook.VBProject.VBComponents
.Remove .Item("Módulo2")
ActiveSheet.Shapes.Range(Array("CommandButton1")).Delete
Application.DisplayAlerts = False
ActiveWorkbook.CheckCompatibility = False
ActiveWorkbook.SaveAs Filename:=Range("j2"), FileFormat:=xlExcel8
MsgBox "MACRO GUARDAR EJECUTADA"
End With
Application.DisplayAlerts = True
ActiveWorkbook.CheckCompatibility = False
ActiveWorkbook.Close True
End Sub

Lo que está haciendo tu macro es 'Guardar como' este libro sin el módulo y con nombre ubicado en J2.

Es decir, que éste es el libro sin el módulo... pero tu libro original sigue teniéndolo.

¿Es eso lo que intentas hacer?

Sdos

Elsa

Hola Elsa, si, lo que intento es que el libro original no sea alterado y mantenga el modulo 2, Pero en el libro Nuevo que "guarda como", quiero que desaparezca el modulo 2, Cosa que la hace parcialmente ya que si no le apreto manualmente grabar, al cerrar el libro no elimina definitivamente, ni tampoco lo hace con el ActiveWorkbook.Close True

Muchas Gracias

Yo lo probé así incluso guardando en otra ruta (pendrive) :

Sub GUARDARCOMO()
'Call roll     'INHABILITADA PROVISORIAMENTE
With ActiveWorkbook.VBProject.VBComponents
.Remove .Item("Módulo2")
End With
ActiveSheet.Shapes.Range(Array("Button 1")).Delete   'AJUSTAR
Application.DisplayAlerts = False
ActiveWorkbook.CheckCompatibility = False
ActiveWorkbook.SaveAs Filename:=Range("j2"), FileFormat:=xlExcel8
MsgBox "MACRO GUARDAR EJECUTADA"
Application.DisplayAlerts = True
ActiveWorkbook.CheckCompatibility = False
ActiveWorkbook.Close True
End Sub

Ajustá el nombre de tu botón y habilitá nuevamente la llamada a 'roll' siempre y cuando no interfiera con esta macro.

Sdos

Elsa

Elsa, con tu respuesta, detecté que el problema es que la macro roll estaba en el modulo 2 , entonces no lo borraba por ese motivo, pero ahora al pasarlo al modulo 1, si me borra el modulo 2, Muchas Gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas