none
Fórmula IF en VB6 RRS feed

  • Pregunta

  •  

    Estoy desarrollando una aplicación vb6 y Excel 2003 y tengo un problema con una formula que contiene un SI.

     

    Estoy intentando cargar en unas celdas una condición, que seria algo así:

     

    .cells("A1").Formula = "=IF(A2='';0;B2/A2)"

     

    Cuando vb6 intenta cargar en Excel la fórmula me da un error 1004, y por experiencias anteriores, se que es por que Excel no interpreta de forma correcta la fórmula que quiero poner en la celda.

     

    ¿Podría alguine decirme cual es el formato del "SI" de excel para Vb6 o .net?

     

     

    UN saludo y muchas gracias

     

    Juan Eguras

     

     

    lunes, 1 de octubre de 2007 13:40

Respuestas

  • Por fin, después de muchas pruebas lo he sacado

     

    .Range(Chr(81) & i).Formula = "=IF(P" & i & "="""",0,O" & i & "/P" & i & ")"

     

    Y SOLO ERAN LOS ";"!!!!

     

    Como he dicho, creo que es por que al pasar formulas de vb6 a Excel deben estar en formato inglés/Americano y el se encarga de "traducirlo"

     

    Muchas gracias por las respuestas y por las lecturas

    martes, 2 de octubre de 2007 9:21

Todas las respuestas

  • En realidad, hay un par de cosas que no entiendo de tu codigo, pero me imagino que se te "pasaron" cuando lo tipeaste para enviar el mensaje:

    .cells("A1").Formula = "=IF(A2='';0;B2/A2)"

     


    ----> .Cell("A1") <----- ¿cells?

    ----> A2="; <-----  ¿="?


    Supongo que querias colocar asi:

    .Range("A1").Formula = "IF(A2="""";0;B2/A2)"

    Abraham

    lunes, 1 de octubre de 2007 20:01
  • Hombre... El código era este pero por simplifacar un poco...

     

     For i = 2 To Filas
                        .Range(Chr(81) & i).Formula = "=IF(P" & i & "="""";0;Q" & i & "/P" & i & ")"

    NexT

     

    El problema lo tengo en el IF que me da un error 1004... Seguramente que es por la estructura del  "IF", por que he tenido el mismo problema al cargar un "BUSCARV", y el problema que encontré es que para lanzar una formula desde VB6 tiene que estar en formato , creo, que inglés y no castellano. Pero no encuentro la forma de lanzar la formula del "SI"

     

    Muchas gracias

    martes, 2 de octubre de 2007 6:29
  • Por fin, después de muchas pruebas lo he sacado

     

    .Range(Chr(81) & i).Formula = "=IF(P" & i & "="""",0,O" & i & "/P" & i & ")"

     

    Y SOLO ERAN LOS ";"!!!!

     

    Como he dicho, creo que es por que al pasar formulas de vb6 a Excel deben estar en formato inglés/Americano y el se encarga de "traducirlo"

     

    Muchas gracias por las respuestas y por las lecturas

    martes, 2 de octubre de 2007 9:21
  • Hola, que bueno que lo resolviste. PAra no usar la formula en ingles, en lugar de:

    .Range(Chr(81) & i).Formula = "=IF(P" & i & "="""",0,O" & i & "/P" & i & ")"


    Podrias colocar asi:

    .Range(Chr(81) & i).FormulaLocal = "=SI(P" & i & "="""",0,O" & i & "/P" & i & ")"

    Wink

    Abraham

    martes, 2 de octubre de 2007 15:54