English translation of this post
here
IMPORTANTE:
En este enlace encontrarás una versión mejorada de esta calculadora:
Mi nueva calculadora en Excel | #ExcelPedroWave
En el artículo anterior sobre
Mentes calculadoras
mostré una calculadora escrita en Excel y ahora explicaré
cómo hacer calculadoras en Excel.
Nueva calculadora mejorada
Si os gustan los cálculos como a mí seguro que os gustará la nueva calculadora
con estas mejoras (versión 4):
- Modo de calculadora sin teclas flotantes.
- Nueva calculadora beta 5, con todas las funciones trigonométricas.
- Nueva calculadora completa 6, con todas las 67 teclas de función.
- Soft keys o teclas equivalentes para todas las teclas.
- Tooltips mejoradas con menos flicker o parpadeo.
- Calculadora internacional y geolocalizada.
-
Información y ayuda traducidas a 6 idiomas: inglés, español, francés,
italiano, alemán y portugués.
- Display de la calculadora en 56 colores.
ATENCION:
Para cambiar el color del display elegir un color de la fila 1
Descarga el fichero desde el icono (Google Drive) o desde el enlace (Microsoft
OneDrive)
CalculadoraTactilPW4.xls
No dejes de probar el modo de
Calculadora sin teclas seleccionando un
teclado del 7 en adelante. Si te sabes o te aprendes todas las tooltips o
equivalentes del teclado físico podrás calcular pulsando las teclas físicas
como en el
método ciego de mecanografía. Por ejemplo, los números e y pi se visualizan pulsando las teclas E y P
respectivamente.
Cómo se hizo la calculadora con teclas flotantes
Esta calculadora se abre inicialmente sin ninguna tecla flotante, o sea sin
ninguna forma (shape) dibujada inicialmente por defecto, todas las formas de
las teclas se generan dinámicamente cuando se selecciona un número de
calculadora.
Si la pruebas verás que es mucho más fácil calcular con ella que con la
primera calculadora electrónica de propósito general del mundo, la
ENIAC que duró unos 12 años desde la firma del contrato hasta su apagado
definitivo, aunque espero que su uso no sea para el
cálculo de las trayectorias de los proyectiles y de las bombas de
hidrógeno.
Este libro de trabajo
Al abrir se ejecuta la macro
Workbook_Open() que establece el rango
codPais de la hoja "Cod" en las celdas B2:C220 que relacionan el código de
marcación de un país con un valor para su idioma: 1-inglés; 2-español;
3-francés; 4-italiano; 5-alemán; 6-portugués, etc. Este valor se guarda en la
celda BM48 de la hoja "Calc".
Para que la función OnKey admita la tecla "/" como operación de dividir, y no
su efecto por defecto para abrir los menús, se modifica la propiedad:
Si AO48 = 1 llama a la macro
ActivaTeclado y a
dibujaTeclas con
el número de teclado de la celda BN13.
En
Workbook_BeforeClose se llama a DesactivaTeclado y se vuelve a
modificar a su valor por defecto:
Hoja Calc
Los eventos para lanzar
Worksheet_Change se producen al cambiar el
valor de las celdas:
- AO48 = 1: ActivaTeclado; = 0: DesactivaTeclado
-
AC48 para activar o desactivar las Tooltips llama a dibujaTeclas
- BM48 cambia el idioma y si AC48 = 1: dibujaTeclas
- BN13 llama a dibujaTeclas con otro número de teclado
Se ejecuta
Worksheet_SelectionChange en dos casos:
-
Cuando están activadas las Tooltips y la celda activa está en la columna
101, leyendo el valor de la celda activa que contiene la tecla equivalente
pulsada y llamando a la macro tecla
-
Si la fila es la uno y las columnas entre 21 y 76, cambia el color del
display
Módulo modAyuda
La macro
AyudaCalc va modificando el texto y la posición de la tecla
gigante de ayuda en 9 pasos, llamando a
textoAyuda que busca la
traducción en la hoja "Idiomas" con la función VLookup.
Módulo modCalc
Este módulo alberga la macro que realiza los cálculos propiamente dichos:
tecla pasándole el valor de la tecla pulsada virtualmente en los
botones de la hoja de cálculo o realmente en el teclado físico.
Cada dígito de un número va formando el número visualizado en el display.
Cambia a un color más oscuro la última tecla pulsada y, si es una operación
con dos operandos, el operador se difumina en color amarillo para recordar
cuál fue el último operador pulsado.
La función
Opera realiza las operaciones con operadores de dos
operandos que son sumar, restar, multiplicar, dividir, porcentaje, módulo,
logaritmos y potencias en base y.
Otras funciones de la calculadora son:
-
valTrigo realiza las funciones trigonométricas para grados y
radianes.
- u_fact calcula el factorial de un número entero.
- swapTeclas intercambia los dos operandos.
- visTecla oculta o muestra una tecla.
-
grabaTeclado para crear otra hoja con un nuevo número de teclado,
llamando a posTeclas
-
Traduce pasándole una clave obtiene su traducción a uno de los 6
idiomas.
Módulo modTeclado
La rutina
ActivaTeclado ejecuta la función Application.OnKey una vez
para cada tecla de la hoja "Teclado" asignando un código de la columna D a un
procedimiento de la columna E, consiguiendo asignar teclas físicas a las
teclas virtuales de la calculadora.
DesactivaTeclado hace lo contrario asignando el código por defecto a
cada tecla física.
Con
extensibilidad se puede incluir programáticamente en VBE,
Herramientas, Referencias, la referencia a
Microsoft Visual Basic for Applications Extensibility 5.3 necesaria
para crear dinámicamente procedimientos con
IncluyeSubModulo que se
debe ejecutar una única vez, y por eso está comentado en la macro
ActivaTeclado. Cada uno de estos casi 100 procedimientos generados
automáticamente llama a la macro
tecla con su tipo de tecla, como en
este ejemplo:
Módulo modTeclas
La rutina
dibujaTeclas va leyendo de una de las hojas "Teclasn", siendo
n el número de teclado de 0 a 100 (0 a 6 por defecto), cada una de las teclas
que componen el teclado y las dibuja según sus propiedades: nombre, texto,
fuente, color, tamaño, estilo, posición superior e izquierda, ancho, alto y
visible.
La rutina
posTeclas crea una nueva hoja "Teclasn" cuando se manda
grabar un nuevo teclado.
creaTecla añade una forma con
AddShape del tipo
msoShapeBevel con la apariencia de un botón, similar a una tecla.
La función
tipTecla obtiene el texto traducido de la Tooltip de una
tecla desde la columna F de la hoja "Teclado" con su operación y, entre
paréntesis, su correspondientes teclas físicas equivalentes, por ejemplo:
Número aleatorio (A) por lo que, al pulsar la tecla A se calcula un
número aleatorio.
Cómo hacer calculadoras
En este vídeo se explica cómo usar y crear calculadoras en Excel.
Lo mejor es la posibilidad de crear nuevas calculadoras, personalizando la
forma de las teclas y ampliando y mejorando el
interface gráfico del usuario al gusto de cada uno, sin saber
programación, solo con saber cómo cambiar el tamaño y el texto de las formas
de las teclas y sabiendo arrastrar y soltar los botones, cosa que se aprende
en dos minutos viendo el vídeo anterior.
Comparación con la calculadora de Windows
En cuanto a que se parezca a Micro$oft Calculadora, nada más lejos de mis
intenciones. De las 8 calculadoras que suministro, la única que he querido que
se parezca a la de Micro$oft Windows es la número 2 y sólo en su apariencia no
en sus cálculos que dejan bastante que desear por varios errores que esconde:
Resultados de la calculadora incorrectos cuando utiliza la clave de
porcentaje
Prueba en las calculadoras estándar y científica de Micro$oft:
4 sqrt - 2 = -8,1648465955514287168521180122928e-39 (cualquier
calculadora da 0)
50 + 25% da 12,5 (el resto de calculadoras dan 62,5)
50 [Inv] [Hyp] sin da 4,6052701709914238266212392672083. El arco seno
hiperbólico en grados y radianes da el mismo valor siempre en radianes, cuando
en grados debe dar 263,8625443153
0 x^y 0 = 1 (la mayoría dan 0 o mejor
un valor indeterminado o indefinido, aunque la calculadora de Google también
da 1 con 0^0. Ver:
Wikipedia potenciación
El modo científico antes de Windows 7 no tiene la tecla de raíz cuadrada
[sqrt], lo que es un auténtica porquería. Alternando entre el modo estándar y
el científico de Micro$oft Calculadora se pierden los cálculos, cosa que no
pasa con mis calculadoras flotantes en Excel. Tengo muchas más razones para no
usar nunca esa paupérrima calculadora...
Ejecución de la calculadora
La ejecuto con
CTRL + MAYUSCULAS + C como teclas de método abreviado
dentro de un acceso directo creado en el escritorio, con destino:
Métodos abreviados de teclado de Windows
La calculadora de Windows la ejecuto con
ALT + MAYUSCULAS +C y ¡¡¡tiene
una pega muy grande que la hace muy chica!!! y es que
¡¡¡¿ no se puede maximizar ni ampliar ?!!! que es por lo que empecé a
darle vueltas a la idea de hacer una en Excel, que para eso tiene Zoom...
English translation of this post
here