Eliminar macro

11/12/2007 - 18:30 por Fran | Informe spam
Alguien me puede explicar como eliminar una macro automaticamente
despues de ejecutarla?

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
12/12/2007 - 04:46 | Informe spam
hola, !

Alguien me puede explicar como eliminar una macro automaticamente despues de ejecutarla?



(seguramente) dependera de la version de excel donde se ejecute la macro (y quizas algunos otros detalles) -?-
en via de mientras, encontraras todo lo relacionado a la administracion de codigo por codigo en la pagina de Chip Pearson:
-> Programming The VBA Editor
http://www.cpearson.com/Excel/vbe.aspx

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Fran
12/12/2007 - 09:58 | Informe spam
He copiado esta macro de la pagina que me dices pero me da errores, la
verdad es que yo de esto se muy poco.





Sub DeleteAllVBACode()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule

Set VBProj = ActiveWorkbook.VBProject

For Each VBComp In VBProj.VBComponents
If VBComp.Type = vbext_ct_Document Then
Set CodeMod = VBComp.CodeModule
With CodeMod
.DeleteLines 1, .CountOfLines
End With
Else
VBProj.VBComponents.Remove VBComp
End If
Next VBComp
End Sub
Respuesta Responder a este mensaje
#3 Héctor Miguel
12/12/2007 - 22:29 | Informe spam
hola, !

He copiado esta macro de la pagina que me dices pero me da errores, la verdad es que yo de esto se muy poco...



me da la impresion de que te "saltaste" las notas y comentarios (previos) y te fuiste directo a los ejemplos de codigo -???-
mismos que no son tan sencillos como solo copiar/pegar y ejecutar macros que administran codigo-por-codigo :-((

los requisitos indispensables para el manejo de codigo×codigo (modificar/agregar/eliminar - lineas/modulos) son:

a) establecer una referencia (en vba) a la libreria -> Microsoft Visual Basic for Applications Extensibility
la version de la libreria depende de la version (de excel) -> donde se ha de utilizar (p.e.)
1) en excel 97 => NO DEBE tener numero de version.
2) en excel 2K => debiera funcionar sin problemas
3) en excel XP/2003 => REQUIERE (ademas) de un ajuste (en caso de no tenerlo ya) a las fuentes de confianza
el ajuste es en: (menu) herramientas/macros/seguridad/(pesta#a) fuentes de confianza y ...
poner una marca en: confiar en el acceso a proyectos de visual basic
4) con relacion a la version 2007... (ya mejor ni te cuento) las reglas de seguridad son (cada vez) mas estrictas

b) revisar (nuevamente) la informacion al respecto (p.e.) en paginas como esta: -> http://www.cpearson.com/excel/vbe.aspx

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ el codigo exppuesto __
Sub DeleteAllVBACode()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Set VBProj = ActiveWorkbook.VBProject
For Each VBComp In VBProj.VBComponents
If VBComp.Type = vbext_ct_Document Then
Set CodeMod = VBComp.CodeModule
With CodeMod
.DeleteLines 1, .CountOfLines
End With
Else
VBProj.VBComponents.Remove VBComp
End If
Next VBComp
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida