Saltar al contenido

INSERTAR COMENTARIO EN CELDA DEL CALENDARIO


Recommended Posts

publicado

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

publicado

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

 

 

 

 

publicado

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.

  • Silvia bloqueó este tema

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.