Ir al contenido principal

controlar el teclado con macros

En muchísimas ocasiones (quizás mas de las deseadas), necesitamos si o si controlar la entrada de datos en nuestras planillas de cálculos. Las variaciones pueden ser miles: solo números, solo números mayores a cierta cifra, letras, ciertas letras (algunas sí, otras no), números y letras.... y podemos seguir combinando por varios años. En otros casos se nos presentará el siguiente problema: si los usuarios presionan "Control + P" quiero evitar que se imprima, o bien deseo evitar la combinación de ciertas teclas, como "Control + C". 
En situaciones normales: ¿que sucede al presionar F1? Aparece la Ayuda. ¿F2? Entramos en el "modo edición" de celda. ¿F5? Aparece el cuadro "Ir a...". ¿Y si quiero personalizar dichas teclas y que, por ejemplo, si presionan F1 se agregue una nueva hoja al libro?
en mas de una ocasión nos vemos en la necesidad de colocar "controles de formularios" (activex) dentro del proyecto, para así chequear que datos ingresan los usuarios, mediante el uso de sus eventos KeyAscii y/o KeyDown. A partir de ahora nos será factible prescindir de ellos.
[+/-] Ver el resto / Ocultar

Comentarios

  1. como puedo ingresar la fecha actual automaticamente pero que no se actualice tal como si usara la combinación ctrl+;

    ResponderEliminar
  2. si pones la función =HOY() en cualquier celda, esta se actualizará automaticamente cada vez que se recalcule el libro.
    se me ocurren dos opciones:

    1) menú herramientas/opciones/pestaña calcular. seleccionas la opcion "manual". esto hará que excel deje de calcular automaticamente, pero si tienes funciones.... dejarán de andar. y tiene el gran problema que la fecha se actualizará apenas se recalcule el libro. considero muy mala esta opción, estimo que vos necesitas guardar una fecha determinada y que esta no varíe nunca.

    2) no queda otra que recurrir a las macros. te vas a VBA (alt + f11) y haces click sobre el objeto ThisWorkbook para abrir la ventana de código y pegás esto:
    Private Sub Workbook_Open()
    range("a1").value = date
    End Sub
    ¿que hace esto? cada vez que se abra el libro colocará la fecha del sistema en la celda A1. deberías cambiar el nombre del rango por el que vos necesites en tu proyecto.

    espero que te sirva, cualquier cosa me avisas, pero creo que la única solución es mediante macros, ya que una función si o si se actualizará cada vez que recalcules el libro.
    si necesitas mas ayuda al respecto quedo al aguardo de tus noticias.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

macros: como enviar mails desde Excel (vba)

Un gran amigo "on-line", Johan Moreno, de Colombia , me hizo llegar la inquietud de cómo enviar mails desde Excel . Si bien contaba con algunas líneas de código sobre el particular, decidí retomar mi ejemplo y adaptarlo mejor a las circunstancias. Hace unos minutos termino de remitirle un correo con la solución a Johan... desde Excel y con un archivo adjunto, mismo que transcribo a continuación para ayudar a todos con esta tarea. Veamos primero las dos formas principales de enviar mails: mediante Outlook o nuestro Web Mail ( yahoo, gmail, hotmail, etc, etc ) No soy usuario de Outlook en lo absoluto: no confío en los agujeros de seguridad que continuamente aparecen y, por otro lado, t eniendo a mi alcance una herramienta tan poderosa (y gratuita) como Gmail, la cual ahora también permite sincronizar los mensaje con la Pc para verlos offline (deben activarlo en "google labs") ... no creo que me haga usuario ni hoy ni mañana. Igualmente mas adelante daré una solució...

sopa de letras en excel

Un lector me comenta que pudo visualizar varias sopas de letras en YouTube, realizadas con Excel. Inmediatamente me dirigí a dicho sitio y busqué información al respecto. Los ejemplos son buenos y si, efectivamente, podemos armar una muy buena "sopa de letras", salvo que (digamos) es un trabajo bastante manual, cosa que intento evitar a toda costa en mis proyectos. Obviamente que la tarea de automatización incluye Macros, lo cual me insume tiempo, pero queda mucho mejor. Vamos primero a explicar muy brevemente la forma de realizar esta juego "a la clásica", para luego pasar a un desarrollo mucho mas complejo, pero también automatizado y realista. la clásica grilla de una sopa de letras [+/-] Ver el resto / Ocultar Bien, analicemos un poco la imagen superior: 1) es una grilla de 20 filas x 20 columnas, aunque bien podríamos hacerla del tamaño que quisiéramos. 2) Cada celda tiene una letra, que fue generada  mediante la anidación de dos funciones. 3) Vean ahora la ba...

funciones: convertir numeros a letras con excel

En realidad hace tiempo que vienen consultándome sobre esto... quizás cinco o seis años . Debe ser una de las funciones mas buscadas de Excel, por lejos: la posibilidad de escribir: 1.534,63 y que en una celda aparezca magicamente "un mil quinientos treinta y cuatro c/15/100". Aquí les dejo una solución, basada en funciones , sin utilizar macros, la cual preparé exclusivamente para este Blog. A pesar de los millones de usuarios que requieren esta herramienta, no viene incorporada en Excel, debemos armarla nosotros mismos .  Luego de la imagen irá la explicación de como llegué a lograr esto, dado que es un proceso medianamente complejo , que utiliza tres o cuatro funciones básicas y requiere de varios pasos. así quedará nuestra planilla y siempre devolverá en letras el valor que ingresemos en A1 [+/-] Ver el resto / Ocultar Desde ya aclaro: esta no es " la forma " de hacerlo, simplemente es una mas, evitando el uso de macros. Sobre esta base, comencemos: 1) El núme...