MACRO

23/01/2006 - 14:27 por mproys | Informe spam
Saludos amigos.

Tengo el siguiente algoritmo, quisiera que por favor me ayuden a
convertirlo en macro :


Si (Avance_de_produccion < Total_de_produccion) Y (Fecha Limite < F_actual
ENTONCES

Duracion = (Fecha actual - Fecha limite), de lo contrario que se mantenga
[Duracion]

Como veran lo que deseo es incrementar la duracion cuando la cantidad de
produccion no se llega alcanzar con la duracion inicial.

La ayuda que necesito, es como hacerlo en una macro.

Gracias por toda ayuda o recomendaciones.

Monica.

Preguntas similare

Leer las respuestas

#6 mproys
25/01/2006 - 01:09 | Informe spam
Cuando mencionaba Una 'tarea vacia' me referia a que cuando tengo un
proyecto nuevo sin ninguna tarea y ejecuto la macro sale error, asi
tambien cuando el cursor esta en un lugar en donde todavia no se a
ingresado ninguna tarea.

Creo que la forma de poder resolverlo es preguntando previamente si existe
un numero de ID de tarea,,, como puedo consultar si existe el ID??

Gracias.

Monica.

David wrote:

¿Qué es una tarea vacà­a?

La solución irà­a encaminada a encontrar alguna forma de identificarla en
base a algàºn campo. Por ejemplo, si la tarea està¡ vacà­a porque no tiene
nombre, podrà­a utilizarse

Len(ActiveProject.Tasks(2).Name)<>0

como condición para ejecutar la operación.

Me cuentas...


"Monica Rodriguez" escribió:

> Gracias David, ya funciona, lo puse dentro de un For para trabajar en
> todas las tareas del proyecto.. Tambien tengo la otra opcion para
> actualizar la duracion sobre una tarea especifica.
>
> Solo que no se como superar el error cuando el calculo se realiza por
> equivocacion sobre una tarea vacia,, alli me sale error. Existe alguna
> funcion que me permita controlarlo?
>
> Gracias.
>
> Monica.
>
> David wrote:
>
> > Hola, MàƒÂ³nica.
>
> > Voy a cambiar un poco tu algoritmo. Revisa si procede...
>
> > Primero:
> > Estoy suponiendo que "Avance_de_produccion" es el campo personalizado
> > "Number5", y que "Total_de_produccion" es el campo personalizado


"Number6".
> > Esto para poder probarlo en un proyecto màƒÂ­o en el que ya he utilizado


los
> > campos Number1...4.
>
> > Segundo:
> > No creo muy conveniente que utilices el campo Fecha LàƒÂ­mite


("DeadLine").
> En
> > mi criterio, si lo que quieres es aumentar la duraciàƒÂ³n de la tarea,
> deberàƒÂ­as
> > utilizar el campo "Final" ("Finish"). AquàƒÂ­ podràƒÂ­amos diferir en
> criterios,
> > pero revisa la làƒÂ³gica del proceso, y tàƒÂº decides cuàƒÂ¡l seràƒÂ¡ la


mejor
> opciàƒÂ³n.
>
>
> > Considera las siguientes làƒÂ­neas de càƒÂ³digo, en la que (como te


decàƒÂ­a) tomo
> > como ejemplo a la tarea No.5:
>
> > If ActiveProject.Tasks(5).Number5 < ActiveProject.Tasks(5).Number6 _
> > And Int(ActiveProject.Tasks(5).Finish) < Date Then
> > ActiveProject.Tasks(5).Finish = Date & " " & Time
> > End If
>
> > Si se cumple la condiciàƒÂ³n, cambio la fecha final de la tarea a la


fecha y
> > hora del reloj del sistema, lo que automàƒÂ¡ticamente define una nueva
> duraciàƒÂ³n
> > para la tarea en cuestiàƒÂ³n. PruàƒÂ©balo con una tarea x de tu


proyecto, y si
> > procede, podràƒÂ­as utilizar
>
> > ActiveProject.Tasks.Count
>
> > para hacer un ciclo que recorriera todas las tareas de tu proyecto.


Otra
> > idea, podràƒÂ­as evaluar con:
>
> > ActiveProject.Tasks( j ).Summary
>
> > si la tarea es una tarea sumario, y no aplicarle el cambio de fecha.
>
> >
>
> > Espero que estas ideas te sirvan como punto de partida. Nos cuentas.
>
> > Saludos cordiales...
>
>
>
>
> > "Monica Rodriguez" escribiàƒÂ³:
>
> > > Saludos amigos.
> > >
> > > Tengo el siguiente algoritmo, quisiera que por favor me ayuden a
> > > convertirlo en macro :
> > >
> > >
> > > Si (Avance_de_produccion < Total_de_produccion) Y (Fecha Limite <


F_actual
> > > ENTONCES
> > >
> > > Duracion = (Fecha actual - Fecha limite), de lo contrario que se


mantenga
> > > [Duracion]
> > >
> > > Como veran lo que deseo es incrementar la duracion cuando la cantidad


de
> > > produccion no se llega alcanzar con la duracion inicial.
> > >
> > > La ayuda que necesito, es como hacerlo en una macro.
> > >
> > > Gracias por toda ayuda o recomendaciones.
> > >
> > > Monica.
> > >
> > >
>
>
>
Respuesta Responder a este mensaje
#7 David
25/01/2006 - 01:29 | Informe spam
La primera línea de tu macro debería ser:

On Error GoTo NoExiste

Al final de tu macro, antes del EndSub, escribe lo siguiente:

NoExiste:

Cuando se produzca el error en la tarea no existente, el flujo del programa
se transferirá a esta línea, y el macro terminará sin que se ejecute ninguna
acción adicional.


"Monica Rodriguez" escribió:


Cuando mencionaba Una 'tarea vacia' me referia a que cuando tengo un
proyecto nuevo sin ninguna tarea y ejecuto la macro sale error, asi
tambien cuando el cursor esta en un lugar en donde todavia no se a
ingresado ninguna tarea.

Creo que la forma de poder resolverlo es preguntando previamente si existe
un numero de ID de tarea,,, como puedo consultar si existe el ID??

Gracias.

Monica.

David wrote:

> ¿Qué es una tarea vacà­a?

> La solución irà­a encaminada a encontrar alguna forma de identificarla en
> base a algàºn campo. Por ejemplo, si la tarea està¡ vacà­a porque no tiene
> nombre, podrà­a utilizarse

> Len(ActiveProject.Tasks(2).Name)<>0

> como condición para ejecutar la operación.

> Me cuentas...


> "Monica Rodriguez" escribió:

> > Gracias David, ya funciona, lo puse dentro de un For para trabajar en
> > todas las tareas del proyecto.. Tambien tengo la otra opcion para
> > actualizar la duracion sobre una tarea especifica.
> >
> > Solo que no se como superar el error cuando el calculo se realiza por
> > equivocacion sobre una tarea vacia,, alli me sale error. Existe alguna
> > funcion que me permita controlarlo?
> >
> > Gracias.
> >
> > Monica.
> >
> > David wrote:
> >
> > > Hola, MàƒÂ³nica.
> >
> > > Voy a cambiar un poco tu algoritmo. Revisa si procede...
> >
> > > Primero:
> > > Estoy suponiendo que "Avance_de_produccion" es el campo personalizado
> > > "Number5", y que "Total_de_produccion" es el campo personalizado
"Number6".
> > > Esto para poder probarlo en un proyecto màƒÂ­o en el que ya he utilizado
los
> > > campos Number1...4.
> >
> > > Segundo:
> > > No creo muy conveniente que utilices el campo Fecha LàƒÂ­mite
("DeadLine").
> > En
> > > mi criterio, si lo que quieres es aumentar la duraciàƒÂ³n de la tarea,
> > deberàƒÂ­as
> > > utilizar el campo "Final" ("Finish"). AquàƒÂ­ podràƒÂ­amos diferir en
> > criterios,
> > > pero revisa la làƒÂ³gica del proceso, y tàƒÂº decides cuàƒÂ¡l seràƒÂ¡ la
mejor
> > opciàƒÂ³n.
> >
> >
> > > Considera las siguientes làƒÂ­neas de càƒÂ³digo, en la que (como te
decàƒÂ­a) tomo
> > > como ejemplo a la tarea No.5:
> >
> > > If ActiveProject.Tasks(5).Number5 < ActiveProject.Tasks(5).Number6 _
> > > And Int(ActiveProject.Tasks(5).Finish) < Date Then
> > > ActiveProject.Tasks(5).Finish = Date & " " & Time
> > > End If
> >
> > > Si se cumple la condiciàƒÂ³n, cambio la fecha final de la tarea a la
fecha y
> > > hora del reloj del sistema, lo que automàƒÂ¡ticamente define una nueva
> > duraciàƒÂ³n
> > > para la tarea en cuestiàƒÂ³n. PruàƒÂ©balo con una tarea x de tu
proyecto, y si
> > > procede, podràƒÂ­as utilizar
> >
> > > ActiveProject.Tasks.Count
> >
> > > para hacer un ciclo que recorriera todas las tareas de tu proyecto.
Otra
> > > idea, podràƒÂ­as evaluar con:
> >
> > > ActiveProject.Tasks( j ).Summary
> >
> > > si la tarea es una tarea sumario, y no aplicarle el cambio de fecha.
> >
> > >
> >
> > > Espero que estas ideas te sirvan como punto de partida. Nos cuentas.
> >
> > > Saludos cordiales...
> >
> >
> >
> >
> > > "Monica Rodriguez" escribiàƒÂ³:
> >
> > > > Saludos amigos.
> > > >
> > > > Tengo el siguiente algoritmo, quisiera que por favor me ayuden a
> > > > convertirlo en macro :
> > > >
> > > >
> > > > Si (Avance_de_produccion < Total_de_produccion) Y (Fecha Limite <
F_actual
> > > > ENTONCES
> > > >
> > > > Duracion = (Fecha actual - Fecha limite), de lo contrario que se
mantenga
> > > > [Duracion]
> > > >
> > > > Como veran lo que deseo es incrementar la duracion cuando la cantidad
de
> > > > produccion no se llega alcanzar con la duracion inicial.
> > > >
> > > > La ayuda que necesito, es como hacerlo en una macro.
> > > >
> > > > Gracias por toda ayuda o recomendaciones.
> > > >
> > > > Monica.
> > > >
> > > >
> >
> >
> >



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida