Macro que borra otra macro

Alguna vez necesitaremos que una macro se ejecute una única vez. En otro caso querremos que en unas determinadas condiciones se elimina una macro. Bien, éste código os puede ayudar.

Sub EliminaMacro(macro as string, mòdul as string)

Dim liDeb, NbLi

With ThisWorkbook.VBProject.VBComponents(mòdul).CodeModule
    liDeb = .ProcStartLine(macro, 0)
    NbLi = .ProcCountLines(macro, 0)
    .DeleteLines liDeb, NbLi
End With

End Sub
La llamada a la macro se realiza desde otra macro:
EliminaMacro “[nombre_de_la_macro]”, “ “[nombre_del_módulo]”
Ésta macro elimina sólo la macro especificada dentro el módulo especificado, deja todas las otras líneas de código intactas. Cómo es una subrutina con variable, la macro queda oculta y no se puede ejecutar desde el menú Macros > Macros… (Alt+F8). También podemos eliminar las variables y poner directamente el nombre del módulo y de la macro manualmente en los sitios especificados, de ésta manera la macro seria visible. Si queremos que la macro se elimine a sí misma sólo debemos especificar su propio nombre.

7 comentarios:

Anónimo dijo...

hola, andaba bscando algo asi,pero sabes? no funciona, lo que necesito necesito eliminar el modulo 5 y nada mas, como lo hago??

gracias

Anónimo dijo...

Entendido, pregunta, si queda oculta entonces como hago para que corra?

Anónimo dijo...

No funciona tu macro...............!
marca error. como la cargas?

CesarFiguera dijo...

A MI ME FUNCIONÓ DE LA SIGUIENTE MANERA...


Sub EliminaMacro()
Dim liDeb, NbLi

With ThisWorkbook.VBProject.VBComponents("MiModulo").CodeModule
liDeb = .ProcStartLine("MiMacroDentroDeMiModulo", 0)
NbLi = .ProcCountLines("MiMacroDentroDeMiModulo", 0)
.DeleteLines liDeb, NbLi
End With

End Sub

Kaminante dijo...

Super ayuda, genial

Anónimo dijo...

si tengo el codigo dentro del modulo de la hoja como adapto tu codigo.
ejemplo: hoja 25(POSICION)

Zz Zz dijo...

tory burch outlet store
hermes handbags
ugg boots
nike outlet
moncler outlet
ralph lauren outlet
coach outlet
canada goose sale
louis vuitton outlet
longchamp outlet online
clb1113

Publicar un comentario

Gracias por dejar tu comentario.