Borrar con vba todos los proyectos excepto uno

Deseo por medio de un código vba borrar todos los proyectos del mismo libro excepto uno que se llame por ejemplo "esteno"

Como puedo adaptar el siguiente código, ¿qué borra todas las macros y formularios del libro?

Desde ya. Muchas gracias!

Sub borrar_todas_las_macros2()
Dim VBcomp As Object
Dim VBproj As Object
Set VBproj = ActiveWorkbook.VBProject
For Each VBcomp In VBproj.VBComponents
Select Case VBcomp.Type
Case Is = vbext_ct_StdModule, vbext_ct_ClassModule, vbext_ct_MSForm
VBproj.VBComponents.Remove VBcomp
Case Is = vbext_ct_Document
With VBcomp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBcomp
End Sub

1 Respuesta

Respuesta
1

[Hola

Si te refieres a que no quieres borrar un módulo "standard", agrega lo siguiente:

Case Is = vbext_ct_StdModule, vbext_ct_ClassModule, vbext_ct_MSForm
If VBcomp.Name <> "Módulo1" Then
VBproj.VBComponents.Remove VBcomp
End If

En donde "Módulo1" es el nombre del módulo que no quieres que se borre. 

Comentas

Abraham Valencia

PD: Podrías ser el nombre de un módulo de clase o de un "USerform" también

¡Gracias! , El lunes la pruebo, muchas gracias por tu tiempo

Hola, Abraham, muchas gracias, funciona lo que me comentaste pero solo con los módulos,

¿Si quisiera no eliminar un proyecto llamado por ejemplo "esteno"? Que debo modificar, porque solo me funciona con el modulo y no con los nombres

Desde ya. Muchas gracias!


End Sub

[Hola

Como recordatorio: Se le dice proyecto VBA al conjunto de módulos, código, objetos, userform, etc. que son parte de un libro/archivo Excel dentro del entorno VBA. Podríamos decir que un libro con macros de Excel tienen un proyecto VBA.

Probablemente te refieras a un rutina (Sub), de ser así, no tengo algo en específico que borre todo menos una rutina en especial, por lo que sugiero que mires por aquí:

https://bettersolutions.com/vba/visual-basic-editor/extensibility-sample-code.htm 

Saludos]

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas