plantilla con macro que genere un .xls sin macro

05/12/2003 - 17:02 por Javier Avila | Informe spam
Hola a todos, saludos!

Tengo unos archivos de plantilla (.xlt) en las que tengo escritos
algunas macro para autogenerar archivos .xls el problema está en que la
macro tambien es 'heredada' al nuevo archivo .xls y cuando abro este me
vuelve a correr la macro y se crea una especie de bucle.
Necesito saber el codigo para que cuando abra el archivo .xls (fruto de
la macro en la plantilla) ya no tenga codigo macro en él, se puede? aqui
va mi codigo:

Dim TC As String
Dim SI As String



Private Sub workbook_open()
'If Not ThisWorkbook.FileFormat = xlTemplate Then Exit Sub
'If Me.FileFormat = xlTemplate Then Exit Sub
Worksheets("ayacucho").Protect UserInterfaceOnly:=True
Const strRuta As String = "C:\Documents and
Settings\Javier\Escritorio\" 'Directorio donde se almacenarán los libros
Me.SaveAs Filename:=strRuta & "Ayacucho" & "-" & Day(Now())
& "-" & Month(Now()) & "-" & Year(Now()), FileFormat:=xlWorkbookNormal
TC = InputBox("Porfavor, ingrese la TC de hoy", "Tasa de Cambio")
SI = InputBox("Porfavor, ingrese su saldo incial", "Saldo Inicial")
'ActiveSheet.Unprotect "oki"
Range("K41") = SI
Range("b4") = TC
Range("B3") = Now()
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True, Password:="oki"
End Sub

Notese que tengo 4 lineas con ' para dejarlas de lado ya que he
intentado que si bien se genere la macro esta pueda evaluar el tipo de
archivo y se anule si es que es .xls pero no me ha dado resultado asi
que la tengo desactivada, espero sugerencias, muchas gracias.


Javier
 

Leer las respuestas

#1 Héctor Miguel
05/12/2003 - 22:04 | Informe spam
hola, Javier !

... archivos de plantilla (.xlt) ... algunas macro para autogenerar archivos .xls
... problema ... la macro ... es 'heredada' al ... .xls y cuando abro este ... vuelve a correr ... una especie de bucle.
... codigo para que ... el ... .xls ... ya no tenga codigo macro en el [...]



en septiembre 9, recuerdo haberte ofrecido tres posibles alternativas para...

1.- deshabilitar macro en ese 'archivo resultado' para que no siga autogenerando mas archivos
=>If Not ThisWorkbook.FileFormat = xlTemplate Then Exit Sub<
2.- que al generar el archivo ya no lleve la macro de autogeneracion
a) 'hacer que' el archivo 'resultante' sea SOLO [la copia de] las hojas 'necesarias'
[suponiendo que el codigo esta SOLO en el modulo del libro 'ThisWorkbook']
b) [una vez 'creado' el archivo 'resultante'] SE ELIMINEN los modulos con una macro =>puse un ejemplo del codigo<
1) no mencionas cual es el error, la falla, o porque no 'funciona' esta propuesta :((
2.b) [al parecer] con esta alternativa tuviste algunos 'problemillas' por versiones de la libreria [extensibility] :((
2.a) no se si has probado con la alternativa 2.a [suponiendo que NO existe algun 'otro' codigo 'util' en la plantilla]

suponiendo que no has hecho la prueba con la alternativa 2.a, y que el 'unico' objetivo de la plantilla es...
'generar' una copia de 'ayacucho' con algunos datos 'frescos' SIN las macros de la plantilla [NINGUNA]
en el modulo de codigo del libro-plantilla ==Private Sub Workbook_Open()
Dim Ruta As String, Hoja As String, Fecha As String, TC As String, SI As String
Ruta = "C:\Documents and Settings\Javier\Escritorio\"
Hoja = "Ayacucho"
Fecha = Format(Date, "-dd-mm-yy")
With Me.Worksheets(Hoja)
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="oki", UserInterfaceOnly:=True
TC = InputBox("Porfavor, ingrese la TC de hoy", "Tasa de Cambio")
SI = InputBox("Porfavor, ingrese su saldo incial", "Saldo Inicial")
.Range("k41") = TC
.Range("b4") = SI
.Range("b3") = Now()
.Copy
End With
ActiveWorkbook.SaveAs FileName:=Ruta & Hoja & Fecha, FileFormat:=xlWorkbookNormal
Me.Close False
End Sub

si hay situaciones 'diferentes' a considerar... ¿comentas?
saludos,
hector.

Preguntas similares