Jump to content

INSERTAR COMENTARIO EN CELDA DEL CALENDARIO


JUANJG

Recommended Posts

Buenas Tardes Amigos del Foro, estoy tratando de personalizar una plantilla del calendario en excel en la cual lo que se busca es que a través de una macro me coloque el comentario colocado en la hoja parámetros para cada fecha festiva.

Ejemplo: En la hoja parametros Celda F36 "Frenta a la fecha 2016-01-01" coloco año nuevo; lo que debería hacer la macro es colocar Año Nuevo como comentario a la celda G13 de la hoja Calendario.

Adjunto archivo con lo que llevo del código en el evento Worksheet_Change

Espero haber sido claro en la ayuda que requiero y todos sus aportes serán bienvenidos.

Gracias

Calendario Formulado.xlsm

Link to comment
Share on other sites

saludos @juanjg, cambia tu macro por esta (NOTA: Recuerda colocar el nombre del mes al resto de los meses, como le colocaste al primer mes Mes_1)

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim celda As Range
    Dim celdaTarget As Range
    Dim rMes As Range
    Dim sMes As String
    
    'Validar si el cambio es en la columna F y que además haya una fecha valida en columna E
    If Target.Column = 6 And IsDate(Cells(Target.Row, 5)) Then
        'Recorrer cada celda en caso de selección múltiple
        For Each celdaTarget In Target.Cells
            'Validar si se capturó texto en la celda y proceder a insertar comentario
            If Trim(celdaTarget.Value) <> "" Then
                'Insertar comentario en el mes de la fecha modificada
                sMes = "Mes_" & Month(celdaTarget.Offset(0, -1).Value)
                Set rMes = Application.Evaluate(sMes)
                For Each celda In rMes
                    If celda <> "" Then
                        If DateSerial([año], Month(celdaTarget.Offset(0, -1).Value), celda.Value) = celdaTarget.Offset(0, -1).Value Then
                            celda.ClearComments
                            celda.AddComment celdaTarget.Value
                        End If
                    End If
                Next celda
            'La celda está vacía por lo tanto hay que eliminar comentario
            Else
                'Eliminar comentario del día del mes de la fecha modificada
                sMes = "Mes_" & Month(celdaTarget.Offset(0, -1).Value)
                Set rMes = Application.Evaluate(sMes)
                For Each celda In rMes
                    If celda <> "" Then
                        If DateSerial([año], Month(celdaTarget.Offset(0, -1).Value), celda.Value) = celdaTarget.Offset(0, -1).Value Then
                            celda.ClearComments
                        End If
                    End If
                Next celda
            End If
        Next celdaTarget
    End If
End Sub

 

 

 

 

Link to comment
Share on other sites

Muchas Gracias @bigpetroman el codigo funciona perfectamente, únicamente le agregue a la siguiente linea del código la fraccion "- [Mes] + 1" ya que no siempre Enero es el mes 1.

sMes = "Mes_" & Month(celdaTarget.Offset(0, -1).Value) - [Mes] + 1

   Excelente su ayuda, muchas gracias. y se puede dar por resuelto el tema.

Link to comment
Share on other sites

  • Silvia locked this topic

Archived

This topic is now archived and is closed to further replies.

Guest
This topic is now closed to further replies.
  • Crear macros Excel

  • Posts

    • Simplemente pon Tema Solucionado, aunque luego si me da tiempo lo miro
    • Estimados buenos días, En vista de que no sé como eliminar este tema que inicié, les informo que ya pude solucionar el problema, la única solución que pude darle fue realizar las ejecuciones por tiempo, es decir que primero me importe la información que contenga coincidencias entre ambas hojas, me realice los cálculos y luego envíe la información a las hojas correspondientes, luego importa la información que no tienen coincidencia y ahí no realiza ningún cálculo ya que no hay información, entonces esa información la pasa a las hojas respectivas. Lo estuve probando y funciona sin problemas, adjunto el Excel (Macro - Presupuesto) para que puedan revisarlo y si hay alguna otra sugerencia quedaría agradecido para poder ampliar mis conocimientos con respecto a todo este mundo de las Macros, Muchas gracias por su tiempo y disculpen los inconvenientes. Saludos cordiales
    • Muchas gracias a los dos. Ambas respuestas me han servido, pero por sencillez he optado por la de JSDJSD. No obstante, como comenté anteriormente, tengo que tener siempre activa una impresora (de tickets) entonces si le doy a la macro, al crearse el PDF lo hace en el formato de esa impresora. Por tanto, pensé en el inicio de ejecutar la macro poner:  Application.ActivePrinter = "Microsoft Print to PDF" Y una vez finalizada la macro, cambiar a la impresora de Tickets, pero me da error. ¿Hay alguna forma de conseguir esto que comento? Gracias.
    • Ya puedes descargar un Test de Excel, hecho con el cálculo iterativo de las fórmulas de Excel.¡Mentira!¡No lo vas a poder descargar!He incrustado el test en mi blog, y sólo vas a poder realizar el test en modo online, desde un navegador Web o con una tableta o un móvil Android o Mac.   Enlace aquí:https://pedrowave.blogspot.com/2021/10/test-de-excel-con-calculo-iterativo.html     Ventajas de tener el Test de Excel en la nube: No contiene macros VBA ni Office Script. Se actualiza automáticamente al ser un Excel en la Web. Siempre verás la versión más actualizada del Test. Todos los usuarios harán el Test en las mismas condiciones. Se puede hacer el Test en la nube, incluso sin tener Excel instalado. Puedes hacer comentarios al Test en la nube. Puedo actualizar el Test cuando quiera para añadir más preguntas. Puedo modificar su comportamiento, mejorar su uso y/o corregir errores. Puedo proteger mucho mejor mis derechos de autor, para que no se pueda copiar mi idea de este Test de Excel. Gracias anticipadas por seguirme, por tus reacciones y por tus comentarios.
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy