Ir al contenido principal

crear un calendario con funciones

Un lector necesita tener en su planilla de cálculos un almanaque que le muestre 6 meses. Si, como esos que generalmente las empresas o comercios regalan a su clientela, y que nosotros tan contentos colgamos de la pared o heladera. Esto también, al igual que siempre, tiene muchas formas de ser resuelto. Ya hablé en otras entradas sobre el control calendario (activeX), el cual puede ser inserto en nuestra hoja y de allí seleccionar la fecha que necesitemos. Una de las posibles soluciones sería colocar 6 de estos controles y listo. Pero habrá que ver si nuestro proyecto soporta este tipo de objetos, cosa que se complica si el archivo será utilizado en distintos ordenadores.
crearemos un calendario similar, solo con funciones.
[+/-] Ver el resto / Ocultar

Comentarios

  1. Hola, tengo Excel 2007 y armé un calendario para registrar las vacaciones, y lo que hago es ingresar la fecha de inicio de vacaciones, luego la fecha final, y finalmente coloreo cada celda que se corresponde con las fechas ingresadas. Hay alguna función que automatice esta parte (la de colorear las casillas de los días de vacaciones)??? Desde ya muchas gracias. Raúl - rabel01@gmail.com

    ResponderEliminar
  2. te dejo un archivo con el link al post que levanté con tu consulta:
    http://damianexcel.blogspot.com/2011/12/colorear-fechas-con-formato-condicional.html

    cualquier cosa me avisas.
    gracias x tu mensaje

    ResponderEliminar
  3. buenas tardes apoyandome en tu excelente funcion realice esta macro para obtener un calendario del año completo solo tienes que seleccionar la celda d5 y corres la macro lo que faltaria es agregar el formato deseado al calendario

    Sub calendario2()
    Dim i As Integer
    Dim fecha As Date
    Dim aumento As Integer
    Dim s As Integer
    Dim contador
    s = 1
    'tomo la fecha inicial de cualquier año
    fecha1 = CDate(InputBox("ingrese la fecha, bajo el formato dd/mm/aaaa, Ejemplo: 01/12/2012 "))
    'con un bucle recorro todos los meses del año inicio en 0 para que tome el mes de la fecha que le_
    'anexamos al principio
    contador = 0
    For aumento = 0 To 11
    contador = contador + 1
    fecha2 = DateSerial(Year(fecha1), Month(fecha1) + aumento, Day(fecha1))
    ' voy aumentando un mes a la fecha inicial

    fecha = DateSerial(Year(fecha2), Month(fecha2), Day(fecha2))
    'para quenos quede la fecha a utilizar en la macro

    año = Year(fecha) ' tomo el año de la fecha
    mes = Month(fecha) ' tomo el mes de la fecha
    inicio = Weekday(DateSerial(año, mes, 1), vbMonday) ' el dia inicial tomando en cuanta para mi gusto que lunes es el primer dia de la semana
    fin = Day(DateSerial(año, mes + 1, 1) - 1)
    j = 1 ' primer dia del mes
    p = inicio ' de lun a vier que colocamos el valor de los dia dependiendo del mes
    For x = 1 To fin


    ActiveCell.Offset(j - 1, p - 1) = x
    ActiveCell.Offset(-2, 0).Value = DateSerial(año, mes, 1)
    ActiveCell.Offset(-2, 0).NumberFormat = "mmmm-yyyy"
    ActiveCell.Offset(-2, 0).Interior.ColorIndex = Int(Rnd * 55) + 1

    ActiveCell.Offset(-1, 0).Value = "Lu"
    ActiveCell.Offset(-1, 1).Value = "Ma"
    ActiveCell.Offset(-1, 2).Value = "Mi"
    ActiveCell.Offset(-1, 3).Value = "Ju"
    ActiveCell.Offset(-1, 4).Value = "Vi"
    ActiveCell.Offset(-1, 5).Value = "Sá"
    ActiveCell.Offset(-1, 6).Value = "Do"

    If p = 7 Then
    p = 0
    j = j + 1

    End If
    p = p + 1
    Next

    ActiveCell.Offset(0, 9).Select
    If contador = 3 Or contador = 6 Or contador = 9 Or contador = 12 Then
    ActiveCell.Offset(9, -27).Select
    End If


    Next

    End Sub

    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ó

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

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