Aplicar función según el contenido de una celda

Entrada núm: 3 of 4 de la serie Editor de programacion

Mi amigo Drazen Hanzic, de Labo d.o.o en Zagreb, necesita que dado un conjunto de argumentos, se les aplique una u otra fórmula de Excel de acuerdo al contenido de una determinada celda, que alimentaremos mediante una lista de validación. Excel tiene capacidad de sobra para interpretar el texto que escribamos en una celda como fórmula, y nos devolverá el valor de salida, siempre que la sintaxis sea perfecta.

Pero después de hacer y subir el video en inglés, con Excel configurado en inglés, me di cuenta de que hay ciertas consideraciones a tener en cuenta respecto al idioma que estamos usando. Si tenemos Excel configurado en español e intentamos usar el nombre de las funciones en Excel en español, y el separador de argumentos por defecto en español, que es el punto y coma (;), la subrutina no funcionará. Es curioso que VBA hace de forma automática la transformación de nombre nativo de la función en inglés, al idioma de configuración de Excel, y también transforma el separador nativo en inglés, la coma (,), al separador del idioma de configuración. Pero si partimos de nuestra configuración local, VBA nos dará errores.

El error del nombre de la función no es grave, pues basta editar la celda para que todo se normalice. Pero si introducimos como separador el punto y coma, tendremos un error en tiempo de programación que nos estropeará todo el desarrollo. Por supuesto, hay toda una serie de precauciones que debemos tomar si pensamos usar esta técnica en algún desarrollo. Observemos que estamos introduciendo los argumentos de una forma muy extraña, y que debemos asegurarnos de que son los adecuados para las funciones que vamos a emplear. Deberíamos, por tanto, pensar en la forma de limitar la introducción de argumentos o controlarla para que sea la apropiada y la función no nos devuelva error.

El método evaluate, por otra parte, resulta ser algo que usamos muchas veces cuando programamos en VBA, aunque no somos conscientes de ello, ya que figura de forma implícita en todas las sentencias que implican el retorno de un valor basado en una expresión numérica, en una cadena…

Eloy, con Charles Williams y Drazan Hanzic (Gracias por la foto, Drazen)
Charles Williams, Drazan Hanzic y un servidor en la Universidad de Delft, año 2014 (Gracias por la foto, Drazen)

Series Navigation<< Formulario para entrada de datosEliminar filas según criterios múltiples >>

Comments

So empty here ... leave a comment!

Deja tu comentario aquí:

Sidebar



A %d blogueros les gusta esto: