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
10 Response to "Cómo hacer calculadoras en Excel"
Pedro, felicidades por tu gran trabajo, la nueva versión 4 es alucinante y además he aprendido mucho con el posicionador de teclas creadas automáticamente por código.
Me quejaba en uno de mis comentarios de lo poco que estaba comentado el código, pero eso era por que no sabia que tenias un tutorial tan detallado aquí, así da gusto amigo mío. Me lo he leído todo y he probado algunas de las funciones, las de modCalc: valTrigo, u_fact, swapTeclas, visTecla y grabaTeclado, ya iré comentando los bugs que vea mientras vaya probando el resto.
Por ahora todas bien excepto el cambio entre calculadoras que tiene una pequeña debilidad, no se si comentártela por aquí o por el foro, te lo pongo por aquí y luego ya me dices mejor como te viene mejor que ponga los fallos o posibles mejoras.
Al activar una modalidad de calculadora, está programada por defecto a tomar como posición y tamaño, los relativos al porcentaje de zoom que tengas activo y a tu fondo de escritorio, esto se traduce en teclas superpuestas en casos como el mío, en el que para ver toda la zona activa, hago un zoom para atrás.
La forma de corregir esto, ha sido restaurando el zoom original y cambiar de calculadora para luego volver a realizar el zoom para atrás. Quizás agregando a la macro en modo screenupdating=false, "Salvar posición de zoom", "ir al modo original de zoom", agregar calculadora, "restaurar zoom personalizado", aun que puede haber otras alternativas más interesantes, como crear el teclado directamente basándose en la posición de celda o en la posición relativa real al zoom+pantalla, etc…
Bueno Pedro, en serio que esta calculadora es de las mejores que he visto y desde ahora la usaré mucho, ya sabes que me la he agregado a mi menú de inicio. La única razón por la que aun no he borrado la de Windows es por que la uso para comparar algunos resultados a medida que pruebo tu MiniEniac. Lo cierto es que no me canso de cambiar de calculadora y ver como van apareciendo los botoncitos, ¡Tengo que aprender a hacer eso! Jeje
Un saludo amigo, y sigue así que eres grande.
Pedro
Definitivamente vas mas alla, con tus inventos... de verdad que me falta mucho para llegar ahi jeje, verdad versulzan?
Todas mis felicitaciones para este grandioso blog, que nos has regalado
Saludos
Gerson Pineda
Pedro
Definitivamente vas mas alla con tus inventos, me falta mucho para llegar hasta ahi jeje, verdad verzulsan?
Todas mis felicitaciones para tu blog y sigue asi ok
Saludos
Gerson Pineda
Gerson, es un honor contar contigo como seguidor de este modesto blog que, aunque no trate de Excel como tema central, sirve para compartir contigo tu gran experiencia en Excel.
Para fomentar su uso, nuestros hijos y las generaciones futuras deberían usar calculadoras escritas en Excel antes que usar las de Windows.
Un abrazo a Honduras, Pedro.
VerZul, me temo que los bugs los tendrás que poner en el blog porque el foro AyudaExcel está de capa caída y no se levanta desde hace días.
Para que lo pruebes he modificado la calculadora para que haga lo que dices respecto al Zoom. En la macro dibujaTeclas busca por: Dependencia del Zoom
Sólo para Excel 2003, si el Zoom es distinto de 100 entonces ScreenUpdating = False y ActiveWindow.Zoom = 100 y, después de dibujar una tecla, se restaura el Zoom.
En Excel 2010 lo hace automáticamente por lo que no es necesario cambiar el Zoom en VBA.
La posición (Top y Left) y el tamaño (Width y Height) de cada tecla se crea basándose en la distancia, en puntos, desde el borde superior izquierdo de la hoja de cálculo. Cuando se guarda un teclado se guardan sus valores en puntos que son independientes del Zoom.
Gracias amigo por tu apoyo desde el primer día.
Hola, disculpe, me encanto su calculadora, pero soy principiante, y sus términos son muy avanzados para mi, quisiera comenzar con una calculadora sencilla, pero no se ni como enlazar un botón, a una tecla , ni como hacer que se sombree ni nada, me intereso mucho el excel, gracias a usted, le queria preguntar si tendria un tutorial, mas simple, ya que creo que la mayoria de su audiencia esta muy avanzada, y yo apenas voy comenzando.Muchas gracias
Hola anónimo, todos hemos sido principiantes de lo que nos gusta y me alegra que este blog le interese. Para escribir mis artículos me planteo retos de cómo hacer algo que no encuentro en internet y demostrarme a mí mismo y a mis lectores que se puede conseguir. En este artículo me plantee hacer una calculadora tipo Windows en Excel que fuera personalizable, lo que aumentó la dificultad al nivel de usuarios avanzados de Excel.
Siento decirte que no publico tutoriales simples sino ejemplos avanzados o soluciones a problemas de cálculo, por lo que te recomiendo visitar otros blogs amigos para aprender Excel como el del profesor Antonio Roldán Martínez: Aprender y divertirse con la Hoja de Cálculo
Contiene muchos ejemplos de calculadoras y tutoriales de Excel. Gracias por visitar mi blog en el que iré publicando, cuando pueda, mis propias experiencias en programación de Excel para lectores interesados como tú en saber un poco más cada día lo que se puede llegar a conseguir con las hojas de cálculo.
Un par de páginas de calculadoras especializadas en Excel publicadas por el profesor de matemáticas D, Antonio Roldán: http://www.hojamat.es/contenidos/calculadoras.htm
http://hojamat.es/sindecimales/aritmetica/herramientas/herrarit.htm#calcula
pues la verdad estoy bastante desactualizado con el excel, asi que me gustaria pedir tu ayuda, viendo las capacidades que tienes y que te felicito enormemente, por esto lo que requiero hacer es una calculadora de consumes y ahorros de energia electrica coparado con los focos led, fluorescents y los viejos focos de bonbilla, este parta poder calcular el precio en pesos para mexico, sin importer que modifiques los watts, los focos y la cantidad de estos, ademas me gustaria poder tenerlo expresado en un grafica todo esto en excel.
espero puedas darme algunos consejos para poder hacer este ejercicio de calculo en excel y graficarlo con tus amplios conocimientos
mi correo es andres_9_76@yahoo.es por si puedes mandarme informacion que pueda ayurdarme a terminar este proyecto para mi colegio
mil gracias
Hola anónimo Andrés,
Siento decirte que no me dedico de momento a resolver proyectos por encargo. Si quieres busca ayuda en:
AyudaExcel.com
Foro de Ayuda Excel
Leave A Reply
Indícame las erratas que encuentres y qué es lo que te gustaría ver en los próximos artículos.