Crear una macro para eliminar módulos y formularios de usuario.

Resuelto
yao.chris Mensajes publicados 95 Estado Miembro -  
yao.chris Mensajes publicados 95 Estado Miembro -
Bonjour,

¿conocen la manera de crear una macro que permita eliminar módulos, userforms, el código de thisworkbook y el código de la hoja?
He intentado con los códigos que encontré en internet, pero ninguno funciona.

Gracias por su ayuda.
yao

5 respuestas

  1. Mytå Mensajes publicados 4246 Fecha de registro   Estado Colaborador Última intervención   957
     
    Hola, Foro

    ¿Has añadido la referencia
    "Microsoft Visual Basic For Application Extensibility x.x"?

    Mytå

    --
    Gracias por responder a tu pregunta, no somos robots...
    « Si la depuración es el arte de quitar errores, entonces la programación debe ser el arte de crearlos. »
    0
  2. yao.chris Mensajes publicados 95 Estado Miembro 2
     
    Hola Myta,

    Gracias por tu respuesta.
    Sí, lo he hecho pero sin resultados.
    ¿Hay alguna manera de crear una macro sin añadir esta referencia?

    Gracias por tu ayuda.
    yao
    0
  3. Mytå Mensajes publicados 4246 Fecha de registro   Estado Colaborador Última intervención   957
     
    Hola el Foro

    Para eliminar los módulos de código.
     Sub SuprimeModulo() 'Macro para eliminar los módulos de código del libro Dim i As Integer For i = ThisWorkbook.VBProject.VBComponents.Count To 1 Step -1 If ThisWorkbook.VBProject.VBComponents.Item(i).Type = 1 Then ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents.Item(i) End If Next i End Sub 

    En la parte de seguridad de las macros tienes una pestaña "Editores aprobados".
    En esta pestaña hay que marcar "Confiar en el proyecto de Visual Basic".

    Mytå
    --
    Gracias por dar respuesta a su pregunta, no somos robots...
    « Si la depuración es el arte de eliminar errores, entonces la programación debe ser el arte de crearlos. »
    0
    1. Mytå Mensajes publicados 4246 Fecha de registro   Estado Colaborador Última intervención   957
       
      Re el Foro

      Complemento de información
       Tipo 1: Módulo Estándar
      Tipo 2: Módulo de Clase
      Tipo 3: Userform
      Tipo 100: Módulo de Hoja o ThisWorkbook
      Mytå
      0
  4. yao.chris Mensajes publicados 95 Estado Miembro 2
     
    Buenas noches Mytå,

    Acabo de aplicar tu macro.
    Todo funciona muy bien excepto el Tipo 100, tengo un error de ejecución en el Focus.

    Lo más importante para mí era eliminar los Userforms y los módulos.
    Los Tipos 1 y 3 funcionan de maravilla.

    Muchas gracias por tu ayuda.

    Buenas noches.
    yao
    0
    1. Mytå Mensajes publicados 4246 Fecha de registro   Estado Colaborador Última intervención   957
       
      Re el Foro

      Para borrar todos los módulos VBA del archivo.
       Sub DeleteAllCodeInModule() Dim VBCodeMod As Object Dim I As Long With ThisWorkbook.VBProject For I = 1 To .VBComponents.Count Set VBCodeMod = .VBComponents(I).CodeModule VBCodeMod.DeleteLines 1, VBCodeMod.CountOfLines Next I End With End Sub

      Mytå
      0
  5. yao.chris Mensajes publicados 95 Estado Miembro 2
     
    Hola Mita,

    ¡Entonces, bravo!
    Es exactamente lo que buscaba y funciona muy bien.

    Gracias por tu ayuda preciosa.

    Que tengas un buen día y gracias de nuevo.
    yao
    0