Página 1 de 1

[RESUELTO] aplicar valor formula a través de macro en tabla

Publicado: Mié Nov 30, 2016 7:18 pm
por rhod-wulf
Buenas tardes, tengo un archivo en el que tengo que documentar las atenciones que he realizado en un mes, no puedo subir el archivo porque está en una pc del trabajo, estoy escribiendo desde otra pc, esta es la foto de las columnas que tiene el documento:

Imagen

Lo que intento hacer es que mediante la activación de la macro al cambiar el valor de una celda se inserte el resultado de la formula en la celda correspondiente en la fila activa, estas son las macros:

Imagen

Como podrán ver en dos de las macros tengo dos fórmulas que se activan de acuerdo a una celda en específica:
La macro insertarhorainicio se activa con la columna ingreso (D), inserta la fecha para la columna E y el número de correo en la B

La macro insertarhorafinal se activa con la columna B: De baja A: atendido (J) inserta la fecha para la columna F que va a estar oculta y la columna I que es donde se muestra el tiempo de duración en minutos la formula que puse en la primera fila es =(F8-E8)*24*60 y no me percaté que solo funcionaría para la fila 8 y no para las demás

Lo que quiero lograr es que se me inserte el resultado de la formula en la columna B para los números 1 2 3 4... asi sucesivamente y en la columna I el tiempo en minutos obtenidas de las fechas de esa fila

Agradezco su colaboración

Re: aplicar valor formula a través de macro en tabla

Publicado: Mié Nov 30, 2016 7:45 pm
por mauricio
Es mejor que adjuntes un archivo con las macros y toda la información necesaria, obtendrás mejores respuestas...

Saludos

Re: aplicar valor formula a través de macro en tabla

Publicado: Mié Nov 30, 2016 8:52 pm
por rhod-wulf
Subo este, espero no les importe el formato a fin de cuentas no es el original

lo resaltado es donde las macros se activan al introducir datos

Saludos

Re: aplicar valor formula a través de macro en tabla

Publicado: Jue Dic 01, 2016 4:35 am
por rhod-wulf
Cambie setvalue por value, a pesar que no me generó error, me ponia un cero como resultado, no sirvió el experimento:(

Re: aplicar valor formula a través de macro en tabla

Publicado: Jue Dic 01, 2016 6:03 pm
por fornelasa
No se entiende lo que deseas, al menos yo no lo entendí.
Saludos.

Re: aplicar valor formula a través de macro en tabla

Publicado: Jue Dic 01, 2016 7:31 pm
por rhod-wulf
Buenas tardes, con gusto le explico con un ejemplo

correo recibido el 29/11/16
correo atendido el 1/12/16
columna C: ingreso el numero de correo (nada pasa)
columna D: ingreso la fecha de ingreso del correo a la bandeja 29/11/16 (se activa macro insertar hora inicio, ingresa fecha en que se atiende en columna E 1/12/16 y el número en la columna B)
columna G: tipo de correo (nada pasa)
columna H: dirección de correo (nada pasa)
columna J: Se ingresa por ejemplo A o B (se activa macro, insertarhorafinal, ingresa fecha en columna F que va a estar oculta y la formula del tiempo transcurrido en la columna I

En el archivo de prueba vera que las columnas que están resaltadas en amarillo son las que activan las macros con introducir valores en ellas, como sucede? a través de validación de datos en mena datos > validación, puse que longitud es igual a cero y en mensaje de error la macro en cuestión

Las columnas i y b son las que se insertan las fórmulas

El problema es que la formula que ingresa la primera fila esta bien, pero al ingresar los datos en las siguientes filas, la formula que se está ingresando es la misma de la primera fila por ejemplo

La macro ingresa la formula F8-E8*24*60 en la fila 8
En la fila 9 está ingresando la misma formula F8-E8*24*60 en vez de F9-E9*24*60, osea las celdas de la formula no está cambiando conforme van ingresando nuevas filas

Lo que quiero es que la macro ingrese la formula de acuerdo a la fila en que se encuentre si es la fila 100 ingrese la formula F100-E100*24*60

EDIT: Será posible que en vez de ingresar la formula, ingrese el resultado de la formula en la columna de tiempo?

Muchas gracias por la atención brindada

Re: aplicar valor formula a través de macro en tabla

Publicado: Vie Dic 02, 2016 5:48 am
por rhod-wulf
No logro sustituir en la formula F8-E8*24*60 el 8 por la fila que esté activa en ese momento.

Si yo estoy en la fila 10 en vez del 8 salga el 10

O mejor aún inserte el calculo de la formula en la celda

Siento que calc es más dificil y complicado que excel, no hay tanta información ni siquiera el libro de mauricio sale referencia a lo que necesito, solo ejemplo bàsico de como crear una funciòn y es estatica no dinamica, independientemente donde la pegue, el nùmero de la celda es el mismo y no la cambia por la fila correspondiente.

Re: aplicar valor formula a través de macro en tabla

Publicado: Vie Dic 02, 2016 8:22 am
por PepeOooSevilla
Hola.
rhod-wulf escribió:Si yo estoy en la fila 10 en vez del 8 salga el 10
Prueba modificando la línea del procedimiento InsertarHoraFinal():

Código: Seleccionar todo

oHoja.getCellByPosition(lCol, oDir.Row).FormulaLocal = "=(F8-E8)*24*60"
Por esta otra:

Código: Seleccionar todo

oHoja.getCellByPosition(lCol, oDir.Row).FormulaLocal = "=(F" & CStr(oDir.Row+1) & "-E" & CStr(oDir.Row+1) & ")*24*60"
Internamente las filas se numeran comenzando en el 0, si Row = 0 entonces Fila = Row + 1

Saludos cordiales.

Re: aplicar valor formula a través de macro en tabla

Publicado: Vie Dic 02, 2016 9:05 am
por PepeOooSevilla
Hola.
rhod-wulf escribió:O mejor aún inserte el calculo de la fórmula en la celda
Prueba modificando la línea del procedimiento InsertarHoraFinal() original:

Código: Seleccionar todo

oHoja.getCellByPosition(lCol, oDir.Row).FormulaLocal = "=(F8-E8)*24*60"
Por esta otra:

Código: Seleccionar todo

oHoja.getCellByPosition(lCol, oDir.Row).setValue(24*60*(CDbl(oHoja.getCellByPosition(lCol-3, oDir.Row).getValue)-CDbl(oHoja.getCellByPosition(lCol-4, oDir.Row).getValue)))
Internamente las filas se numeran comenzando en el 0, si Row = 0 entonces Fila = Row + 1.
Ídem las columnas, si Column = 0 entonces Columna = "A". Por ser lCol=8 entonces lCol-3 = Columna F y lCol-4 = Columna E.

  • Y, recuerda para próximas veces que: "una pregunta por tema y un tema por pregunta. Y, por favor, no dupliques los temas (utilizando formula en macro)".
Bueno, nadie es ferpecto ni nace sabiendo y yo el primero :D
Saludos cordiales.

Re: aplicar valor formula a través de macro en tabla

Publicado: Sab Dic 03, 2016 8:13 am
por rhod-wulf
Muchas gracias Pepe, no habría podido hacer la modificación que propusiste.

Doy por resuelta

Re: aplicar valor formula a través de macro en tabla

Publicado: Dom Dic 04, 2016 6:20 am
por PepeOooSevilla
Hola.

Si consideras que el tema está resuelto, indícalo (¿Cómo marcar como RESUELTO un tema?), ya que, de esta forma, conseguiremos un foro más ordenado.

Saludos cordiales.