no me funciona el codigo de error 18

13/11/2006 - 09:54 por isaac | Informe spam
tengo este codigo en objetos de excel "hoja2", no me detecta el error
18 que se da en otros modulos alguien sabe por que, gracias Isaac

Private Sub Worksheet_Calculate()
On Error GoTo uno
Application.EnableCancelKey = xlErrorHandler
uno:
If Err = 18 Then
MsgBox "USTED CANCELO LA EJECUCION DE LA MACRO"
'GoTo line15
End If
If Range("A233") = 1 Then bloquear_listas
End Sub

Preguntas similare

Leer las respuestas

#1 KL
13/11/2006 - 11:31 | Informe spam
If Err.Number = 18 Then...

Saludos,
KL


"isaac" wrote in message news:
tengo este codigo en objetos de excel "hoja2", no me detecta el error
18 que se da en otros modulos alguien sabe por que, gracias Isaac

Private Sub Worksheet_Calculate()
On Error GoTo uno
Application.EnableCancelKey = xlErrorHandler
uno:
If Err = 18 Then
MsgBox "USTED CANCELO LA EJECUCION DE LA MACRO"
'GoTo line15
End If
If Range("A233") = 1 Then bloquear_listas
End Sub

Respuesta Responder a este mensaje
#2 isaac
13/11/2006 - 21:42 | Informe spam
KL

Sigo teniendo el mismo error, cuando interrumpo cualquier macro que
esta los modulos, me lleva a esta macro y no me detecta el error 18
solamente me dice "Se ha producido el error num 18 en tiempo de
ejecucion: se ha producido una interrupcion por parte del usuario"

esta es la macro corregida como me comentaste;

Private Sub Worksheet_Calculate()
On Error GoTo uno
Application.EnableCancelKey = xlErrorHandler
uno:
If Err.Number = 18 Then
MsgBox "USTED CANCELO LA EJECUCION DE LA MACRO"
End If
End Sub

ISaac






On 13 nov, 04:31, "KL" wrote:
If Err.Number = 18 Then...

Saludos,
KL



"isaac" wrote in messagenews:
> tengo este codigo en objetos de excel "hoja2", no me detecta el error
> 18 que se da en otros modulos alguien sabe por que, gracias Isaac

> Private Sub Worksheet_Calculate()
> On Error GoTo uno
> Application.EnableCancelKey = xlErrorHandler
> uno:
> If Err = 18 Then
> MsgBox "USTED CANCELO LA EJECUCION DE LA MACRO"
> 'GoTo line15
> End If
> If Range("A233") = 1 Then bloquear_listas
> End Sub- Ocultar texto de la cita -- Mostrar texto de la cita -
Respuesta Responder a este mensaje
#3 Héctor Miguel
14/11/2006 - 08:06 | Informe spam
hola, isaac !

tengo este codigo en objetos de excel "hoja2", no me detecta el error 18 que se da en otros modulos alguien sabe por que...
Private Sub Worksheet_Calculate()
On Error GoTo uno
Application.EnableCancelKey = xlErrorHandler
uno:
If Err = 18 Then
MsgBox "USTED CANCELO LA EJECUCION DE LA MACRO"
'GoTo line15
End If
If Range("A233") = 1 Then bloquear_listas
End Sub



1) podrias ser mas 'especifico' en cuanto a 'que acciones' tratas de controlar -> en el evento '_calculate' de una hoja ?

2) [hasta donde se] un control de errores 'debe' ir en el procedimiento donde pudieran 'provocarse' los errores ;)
[y al codigo que expones, -como que- le faltan lineas -> con acciones y tiempo para que un usuario pudiera 'cancelarlas'] -?-

3) no me parece que un re/calculo de tu modelo pueda ser 'manipulado' por los codigos expuestos -?-

comentas los detalles que se quedaron 'en el tintero' ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 isaac
15/11/2006 - 01:40 | Informe spam
Hola Hector:

en concreto el error que me presenta es el siguiente:

en los codigos de todas las macros inserte las siguientes lineas
(abajo) con la finalidad de que si el usuario interrumpe la macro me
capture el error num 18 para que se disparen una lineas del mismo
codigo que me cierran de manera correcta la macro y no se quede a
medias, por que mi proyecto al correr macros abre hojas ocultas y luego
las cierra, tambien las desproteje, pero si se queda a medias me las
deja abiertas y hasta desprotegidas.Todo funciona bien pero cuando
inserto el evento Worksheet_Calculate() en la hoja2 (que es donde
trabajo) me da el aviso interno de error 18 y me lleva al codigo
worsheet_calculate, de hecho le quite las lineas de codigo y aun asi al
interrumpir una macro siempre me lleva al codigo de hoja.

Esta macro se dispara desde hoja2

Sub imprimir_proyectos_ar_influ()
On Error GoTo handleCancel
Application.EnableCancelKey = xlErrorHandler
handleCancel:
If Err.Number = 18 Then
MsgBox "USTED CANCELO LA EJECUCION DE LA MACRO"
GoTo line15
Application.ScreenUpdating = False
Hoja3.Visible = True
hoja3.ActiveSheet.Unprotect Password = Y6dhet5
End If
hoja3.PageSetup.PrintArea = "imp_proy_area"
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.5)
.RightMargin = Application.InchesToPoints(0.5)
.TopMargin = Application.InchesToPoints(0.5)
.BottomMargin = Application.InchesToPoints(0.5)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperLetter
.PrintTitleRows = "$285:$285"
End With
ActiveWindow.SelectedSheets.PrintPreview
line15:
Hoja3.Visible = false
hoja2.Protect Password = Y6dhet5, DrawingObjects:=True,
Contents:=True, Scenarios:=True
hoja2. Range("b286").Select
Application.ScreenUpdating = True
End Sub

Gracias Por tu ayuda
Respuesta Responder a este mensaje
#5 Héctor Miguel
15/11/2006 - 02:59 | Informe spam
hola, isaac !

en los codigos de todas las macros inserte las siguientes lineas (abajo)
con la finalidad de que si el usuario interrumpe la macro me capture el error num 18
para que se disparen una lineas del mismo codigo que me cierran de manera correcta la macro
y no se quede a medias, por que mi proyecto al correr macros abre hojas ocultas y luego las cierra
tambien las desproteje, pero si se queda a medias me las deja abiertas y hasta desprotegidas.
Todo funciona bien pero cuando inserto el evento Worksheet_Calculate() en la hoja2 (que es donde trabajo)
me da el aviso interno de error 18 y me lleva al codigo worsheet_calculate
de hecho le quite las lineas de codigo y aun asi al interrumpir una macro siempre me lleva al codigo de hoja.



1) toma en cuenta que tus lineas SOLO 'controlan' un error 18 [cuando el usuario cancela la ejecucion de una macro]
-> cualquier otro error... sigue 'fuera de control'

2) la siguiente linea contiene errores :-( -> hoja3.ActiveSheet.Unprotect Password = Y6dhet5
a) o se trata de la 'hoja3' [en su nombre-codigo] -?-
o se trata de la 'activesheet' -?-
-> NO puedes mezclar [o tratar de hacer referencia a] ambos objetos 'a la par que juntos' :))
b) usar un argumento 'nombrado' fuera de sus parentesis: -> Unprotect Password = Y6dhet5
requiere el uso de dos puntos antes del signo '=' -> Unprotect Password:= Y6dhet5
o... aplicar el parametro SIN el nombre de su argumento: -> <hoja>.Unprotect Y6dhet5
[esto ultimo, siempre y cuando el orden de los argumentos se separe por comas a partir del segundo] ;)

3) la penultima linea del codigo: -> hoja2. Range("b286").Select
no se si se trate de un 'error' al transcribir el codigo al foro, pero 'sobra' un espacio entre el punto y el rango -?-

4) [por fin]... a cual de las hojas nos habremos de referir [si va a ser por su code-name] -> hoja2 ??? u hoja3 ???

5) [sugerencia]: antes de implementar un 'manejo de errores' [obviamente] asegura las lineas de codigo 'restantes' ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

p.d. ya tomaste el tiempo que se tarda tu codigo como para que el usuario pudiera interrumpirlo -?-

__ el codigo expuesto __
Esta macro se dispara desde hoja2
Sub imprimir_proyectos_ar_influ()
On Error GoTo handleCancel
Application.EnableCancelKey = xlErrorHandler
handleCancel:
If Err.Number = 18 Then
MsgBox "USTED CANCELO LA EJECUCION DE LA MACRO"
GoTo line15
Application.ScreenUpdating = False
Hoja3.Visible = True
hoja3.ActiveSheet.Unprotect Password = Y6dhet5
End If
hoja3.PageSetup.PrintArea = "imp_proy_area"
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.5)
.RightMargin = Application.InchesToPoints(0.5)
.TopMargin = Application.InchesToPoints(0.5)
.BottomMargin = Application.InchesToPoints(0.5)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperLetter
.PrintTitleRows = "$285:$285"
End With
ActiveWindow.SelectedSheets.PrintPreview
line15:
Hoja3.Visible = false
hoja2.Protect Password = Y6dhet5, DrawingObjects:=True, Contents:=True, Scenarios:=True
hoja2. Range("b286").Select
Application.ScreenUpdating = True
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida