DESactivar determinada macro en plantilla excel

Tengo una solicitud a hacerte que es la siguiente:

Tengo esta macro en una plantilla

Private Sub Workbook_Open()
Sheets(1).Range("I3").Value = Sheets(1).Range("I3").Value + 1
End Sub

Lleno la plantilla con lo necesario y luego la Guardo como: Nombre.xlsm.

El guardado como xlsm, ya es un documento dirigido a alguna persona o empresa y por lo tanto quiero que, al Guardar como: Nombre.xlsm se auto-elimine esta macro del Nombre.xlsm, no de la plantilla en si (plantilla original) para que cada ves que alla abran el libro, el conteo este el # cuando fue creada y no que cada ves que abran el libro, el numero siga corriendo.

Gracias DAM y que tengas un buen fin de semana

1 Respuesta

Respuesta
1

Pon lo siguiente:

En thisworkbook:

Private Sub Workbook_Open()
    contador
End Sub

En el módulo1:

Sub GuardarBorrarModulo()
'Por.Dante Amor
    ruta = ThisWorkbook.Path & "\"
    nombre = "Nombre.xlsm"
    ActiveWorkbook.SaveCopyAs ruta & nombre
    Application.EnableEvents = False
    Set l2 = Workbooks.Open(ruta & nombre)
    Application.EnableEvents = True
    '
    Set VBProj = Workbooks(nombre).VBProject
    Set VBComp = VBProj.VBComponents("Módulo2")
    Set CodeMod = VBComp.CodeModule
    '
    ProcName = "contador"
    With CodeMod
        StartLine = .ProcStartLine(ProcName, vbext_pk_Proc)
        NumLines = .ProcCountLines(ProcName, vbext_pk_Proc)
        .DeleteLines StartLine:=StartLine, Count:=NumLines
    End With
    '
    LineNum = CodeMod.CountOfLines + 1
    S = "Sub contador()" & vbCrLf & _
        "    " & vbCrLf & _
        "End Sub"
    CodeMod. InsertLines LineNum, S
    DoEvents
    L2. Save
    L2. Close
End Sub

En el módulo2

Sub contador()
    Sheets(1).Range("I3").Value = Sheets(1).Range("I3").Value + 1
End Sub

Ejecuta la macro: GuardarBorrarModulo, para guardar tu archivo "Nombre.xlsm", esa macro te crea una copia de tu archivo y quita la macro "contador" para que ya no se ejecute.


Saludos. Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas