Excel - Ayuda con If

 
Vista:

Ayuda con If

Publicado por Diego (31 intervenciones) el 03/07/2007 15:10:35
Buenos dias a todos, que tal. Tengo una duda y quiero saber si me puede decir porque me esta pasando esto. Tengo un sistema que hace varias operaciones, entre ellas unos If que son los siguientes:

Dim FHDA As Double

If FHDA Mod 1 = 0.25 Then FHDA = FHDA - 0.25
If FHDA Mod 1 = 0.75 Then FHDA = FHDA + 0.25

Lo que se supone que esto deberia de hacer es, por ejemplo FHDA vale 9.25 con el primer If lo bajaria a 9.0 y si fuera 9.75 lo subiria a 10. No se que estoy haciendo mal, no me toma en cuenta estos If y me deja el resultado ya sea en 9.25 o 9.75.

De antemano gracias por su ayuda y estoy para servirles.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:Ayuda con If

Publicado por Abraham Valencia (2415 intervenciones) el 03/07/2007 21:36:27
Como le das valor a FHDA??? que es FHDA???? porque DOuble???? et cetc

Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con If

Publicado por Diego (31 intervenciones) el 04/07/2007 00:25:35
Que tal Abraham, gracias por tu interes. FHDA es una variable que obtiene su valor cuando hago una importacion de datos a una hoja en especifico de excel desde un archivo plano. FHDA es el valor de una de esas celdas y es double, porque quiero que me tome en cuenta y aparescan los decimales (en caso de que haya) y para poder manipularlos (segun yo) con esos If que puse anteriormente. Para el resultado final es muy importante que si el residuo de FHDA es .25 baje a .00 y si es .75 suba a 1.00 . De antemano muchas gracias por tu ayuda y estoy para servirte.

P.D. No se si esto responde a tus preguntas, si no solo dime y tratare de explicarlo mas a fondo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:Ayuda con If

Publicado por Abraham Valencia (2415 intervenciones) el 04/07/2007 00:39:05
Ejemplo, suponiendo que en A1 esta el valor:

Sub h()
Dim FHDA As Integer
FHDA = [a1]
If FHDA Mod 1 = 0.25 Then FHDA = FHDA - 0.25
If FHDA Mod 1 = 0.75 Then FHDA = FHDA + 0.25
MsgBox FHDA
End Sub

Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con If

Publicado por Diego (31 intervenciones) el 04/07/2007 02:10:26
Gracias por tu respuesta Abraham, ya lo habia probado asi, pero igualmente lo hice de nuevo y si funciona, el .25 lo baja a .oo y el .75 lo sube a 1.00 . Pero que pasa si tengo un .50 , ese .50 se debe de quedar como tal y con la forma que me diste lo baja a .00 igual que hace con el .25 .

Probe esto pero no me funciona, cuando lo hago me vuelve a dejar las cantidades sin modificacion, el .25 como .25 , .50 como .50 y .75 como .75 , no les hace cambio alguno. Tienes alguna sugerencia?.

Sub h()
Dim FHDA As Integer
FHDA = [a1]
If FHDA Mod 1 = 0.25 Then FHDA = FHDA - 0.25
If FHDA Mod 1 = 0.5 Then FHDA = FHDA <---- si pongo esto no altera las cantidades, si lo quito si
If FHDA Mod 1 = 0.75 Then FHDA = FHDA + 0.25
MsgBox FHDA
End Sub

Gracias por tu ayuda, Diego
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con If

Publicado por Diego (31 intervenciones) el 04/07/2007 05:27:52
Ya se lo que pasa, el FHDA Mod 1 me regresa un valor 0 y por eso no toma en cuenta los if, pero no se porque regresa un 0 si el valor de FHDA si contiene valor con decimales. Ayudame por favor Abraham.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:Ayuda con If

Publicado por Abraham Valencia (2415 intervenciones) el 04/07/2007 18:48:22
Digo, ante una pregunta planteada a medias, siempre habra una respuesta a medias. Es una critica constructiva.

Ahora, cuales son las cantidades posibles que puede tenes "tu celda"??? En que cantidad deberia convertirse cada una?

Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con If

Publicado por Diego (31 intervenciones) el 04/07/2007 19:10:40
Gracias por la critica Abraham, siempre son bien recibidas de mi parte. La celda en el primer paso tiene cantidades enteras, pero luego se puede convertir en entero con decimal, ya que se realizan algunas operaciones sobre el valor original y cambia de valor, para ser mas especifico se saca el promedio de esa celda y otras mas, pero el resultado siempre va a esa celda. Osea que por ejemplo puede tener un 23, 23.25, 23.5, 23.75 o 24. Lo cual deberia quedar de la siguiente forma con estos If:

FHDA As Double

If FHDA Mod 1 = 0.25 Then FHIA = FHIA - 0.25
If FHDA Mod 1 = 0.5 Then FHDA = FHDA
If FHDA Mod 1 = 0.75 Then FHIA = FHIA + 0.25

Con el primero la celda deberia de quedar en 23, si el valor fuera 23.25.
Con el segundo la celda deberia de quedar en 23.5, si el valor fuera 23.5.
Con el tercero la celda deberia de quedar en 24, si el valor fuera 23.75.
El segundo If no creo que sea necesario ya que si es 23.5, pues no le hago nada y se queda asi, pero lo pongo para ver si opinas lo mismo.
Si es 23 o 24 no se mueve porque es entero.

Lo que me di cuenta es que el "Mod" me esta regresando 0 aunque el valor tenga decimales, por ejemlo si tengo 23.75 y hago un MsgBox (FHDA) abajo de los If me manda 0, la verdad no se porque sea y si pongo como entero la variable no me funciona bien tampoco porque si el decimal esta abajo del .5 lo baja todo y si esta arriba lo sube, pero aun asi no me toma en cuenta los If.

Gracias por la ayuda.

Diego
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:Ayuda con If

Publicado por Abraham Valencia (2415 intervenciones) el 04/07/2007 23:01:06
No le coloques DOUBLE sino INTEGER, sino, te seguira devolviendo cero. Si haces el cambio y persiste el problema, podria ser que el formato de la celda, de donde sacas el valor de FHDA, sea de texto, y si es de numero, posiblemente tenga que ver con que de dodne lo importasd

Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar