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ó:

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.
Respuesta Responder a este mensaje
#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ó:

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ó:

> 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.
Respuesta Responder a este mensaje
#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 __
... tengo un segmento de codigo asociado a un boton que me funciona perfectamente en Excel 2007
sin enbargo en 2003 manda error. A continuacion el codigo:
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 accion del metodo.
Respuesta Responder a este mensaje
#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ó:

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 __
> ... tengo un segmento de codigo asociado a un boton que me funciona perfectamente en Excel 2007
> sin enbargo en 2003 manda error. A continuacion el codigo:
> 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 accion del metodo.



Respuesta Responder a este mensaje
#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ó:

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ó:

> 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 __
> > ... tengo un segmento de codigo asociado a un boton que me funciona perfectamente en Excel 2007
> > sin enbargo en 2003 manda error. A continuacion el codigo:
> > 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 accion del metodo.
>
>
>
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida