buenas... hola como estan... como siempre uno obsecionado con eso de la programacion estuve intentando realizar una funcion que deberia funcionar pero... no funciona ahi les va:
esta funcion es llamada desde otra funcion
private sub otra_funcion()
on error goto error
if t=0 then
shell"c:windowsdx.exe",vbnormalfocus
else
end if
exit sub
ERror:
call checarerror ''''aqui hablo a mi otra funcion
end sub
private sub checarerror()
on error goto error
dim conta as string
conta="1"
DEnuevo:
select case conta
case 1: ''''aqui ya esta ecte cte ctc funcion y se va a
conta=conta+1
goto DEnuevo
case 2: hace lo mismo en
case 3:todos
case 4:los casos
case 5:lo mismo manda a goto de nuevo
case 6:salvo el ultimo caso que termina la funcion exit sub
end select
goto Denuevo
exit sub
error:
goto Denuevo
end sub
'''''''''''' el caso es que cuando lo hace solo hasta el caso 2 y luego regresa a la funcion que lo llamo.... y no acaba de correr todos los casos osea el 3,4,5,6 etc y pues no se por que ayudemne si?
gracias
Mira en primer lugar lo que estas usando sos procedimientos no funciones. Las funciones se declaran Function y terminan en End Function.
El problema que tiene checarerror() es conta="1". Despues cuando haces conta=conta+1 lo maximo que va a llegar es 2 porque cuando haga el goto denuevo, conta se va a reiniciar a 1.
No entiendo bien lo que hace tu programa asi que no te puedo ayudar mas.
Espero que te haya servido.
perdon.. estaba mal echo.... ya lo edite... lo que pasa entonces quedaria la etiqueta despues de establacer a conta="1" entonces por ese lado no hay problema... la situacion es que necesito que recorra el desde el primero hasta el ultimo caso entonces en cADA caso se va a aumentando un uno si era 1a 2 y 3 etc entoces entraria al caso 1 y 2 y 3 etc pero solo hace dos casos y de ahi sale del procedimiento y se va de nuevo de donde fue llamado osea al procedimiento otra_funcion y entonces no corre todos los casos...
Pd gracias entei por tormarte la molestia de revisar el codigo y perdon pero estaba mal editado(lo mal postee no es como el que esta en mi proyecto ) ahora ya lo corregi pero es de agradecerce que te tomes la molestia de revisar el codigo grax.. y espero me puedan ayudar con el codigo... gracias
no llama a la funcion porque nunca encuentra la llamada,...
private sub otra_funcion()
on error goto error
if t=0 then
shell"c:windowsdx.exe",vbnormalfocus
else
end if
exit sub
ERror:
call checarerror ''''''''aqui hablo a mi otra funcion
end sub
el problema es que pones el exit sub antes de llamar a la otra funcion, lo que hace entons es salirse de la funcion y nunca llega a la linea de call,...
no deberira estar el call en el else? no entiendo porque pones el goto :s
saludos
Mi pregunta es: ¿Como te das cuenta cuando pasa a la otra funcion?
solo llamaria a la funcion si fue error:
private sub otra_funcion()
on error goto error
if t=0 then
shell"c:windowsdx.exe",vbnormalfocus
else
end if
exit sub
ERror:
call checarerror ''''''''aqui hablo a mi otra funcion
end sub
entonces si hay error brinca a la etiqueta error
y de ahi llama checarerror entonces ahi entra error
pero no ahi el problema.... cuando quiero que recorra los casos del 1 al ultimo caso entonces solo corre dos casos y ya regresa a otra funcion de nuevo despues de la linea que lo llamo osea seria end sub de ahi sale.... y no funca,.... XD