Problema con las instrucciones DisplayAlerts y ActiveWorkbook.Save

12/11/2007 - 15:47 por Noriel Alejandro | Informe spam
Buenos días, tengo un segmento de codigo asociado a un boton que me funciona
perfectamente en Excel 2007, sin enbargo en 2003 manda error. A continuación
el código:

ThisWorkbook.Sheets(1).Unprotect ("12345") ' Esto porque el libro esta
inicialmente protegido

With Application

.DisplayAlerts = False '****En esta linea esta enviando error

If (Dir("c:\FormPreparacion", vbDirectory) = "") Then
MkDir ("c:\FormPreparacion")
End If

nomfile = "c:\FormPreparacion\" & "FrmSolicitud" & Range("F3") & ".xls"

.ActiveWorkbook.SaveCopyAs Filename:=nomfile '****En esta linea esta
enviando error

.DisplayAlerts = True

End With

ThisWorkbook.Sheets(1).Protect ("12345")

Los dos mensajes de error que esta enviando en 2003 son: que no puede
ejecutar la acción del metodo.

De antemano gracias por la ayuda que me puedan brindar.

NCA.

Preguntas similare

Leer las respuestas

#1 David
12/11/2007 - 16:41 | Informe spam
Hola, Noriel.

Podrías utilizar la propiedad:

Application.Version

para detectar la versión de Excel donde está corriendo tu macro, y en base a
ella decidir si ejecutas o no las instrucciones que te causen conflicto en
versiones anteriores.

Comentas si esto te da los resultados esperados.

Saludos...



"Noriel Alejandro" escribió:

Mostrar la cita
#2 Noriel Alejandro
12/11/2007 - 17:43 | Informe spam
Gracias por contestar, en realidad creo que no se trata de problemas de
versión, el mensaje de error especifico que sale es "Variable de objeto o
bloque With no establecido".

El codigo original era:

Application.DisplayAlerts = False

If (Dir("c:\FormPreparacion", vbDirectory) = "") Then
MkDir ("c:\FormPreparacion")
End If

nomfile = "c:\FormPreparacion\" & "FrmSolicitud" & Range("F3") & ".xls"

ActiveWorkbook.SaveAs Filename:=nomfile, FileFormat:=xlNormal,
ReadOnlyRecommended:=False

Application.DisplayAlerts = True


Entonces como comenzo a salir este mensaje lo cambie, lo curioso es que esto
me funcionaba bien en 2003, sin embargo ahora no funciona.

Saludos,

NCA


"David" escribió:

Mostrar la cita
#3 Héctor Miguel
12/11/2007 - 18:48 | Informe spam
hola, Noriel !

la siguiente fraccion de codigo usando propiedades del objeto application en un bloque with
(punto antes de sus propiedades) no debiera presentar falla en ninguna version de excel (97 a 2007):

With Application
.DisplayAlerts = False
Msj = "Alertas 1: " & .DisplayAlerts & vbCr
Msj = Msj & .ActiveWorkbook.Name & vbCr
.DisplayAlerts = True
Msj = Msj & "Alertas 2: " & .DisplayAlerts
End With
MsgBox Msj

a menos que... en la pc donde falle existan referencias a/o librerias perdidas en el proyecto de macros
-> revisa en "esa" pc, desde el editor de vba en (menu) herramientas / referencias...
por alguna que diga: FALTA: xxx o MISSING: xxx

comentas (si hubiera) algun detalle adicional ?
saludos,
hector.

__ la consulta original __
Mostrar la cita
#4 Noriel Alejandro
12/11/2007 - 19:42 | Informe spam
Hola Hector, lo que dices me hace sentido y ya lo habia rebisado, sin embargo
no hace falta ninguna referencia.

Se esta quedando en la linea de:

.ActiveWorkbook.SaveCopyAs Filename:=nomfile

y me dice: " Error 91 en tiempo de ejecución, la variable de objeto o bloque
with no está establecido.

Me suena que tiene que ver con referencias, pero no doy con cual es que hay
que referenciar.

Saludos,

NCA.


"Héctor Miguel" escribió:

Mostrar la cita
#5 David
12/11/2007 - 20:21 | Informe spam
Tienes razón. Supuse que utilizabas alguna propiedad,método o instrucción
propia de Office 2007, pero no es así. Aparentemente se filtró un salto de
línea. Prueba remover todos los comentarios, y utilizar multilínea para
generar líneas más cortas:

With Application

.DisplayAlerts = False

If (Dir("c:\FormPreparacion", _
vbDirectory) = "") Then
MkDir ("c:\FormPreparacion")
End If

nomfile = "c:\FormPreparacion\" _
& "FrmSolicitud" & Range("F3") _
& ".xls"

.ActiveWorkbook.SaveCopyAs Filename:=nomfile

.DisplayAlerts = True

End With


PD: Así me funciona sin errores...



"Noriel Alejandro" escribió:

Mostrar la cita
Ads by Google
Search Busqueda sugerida