¿Cómo inserto fecha en excel 2010 mediante calendario?

Estoy trabajando el uso de un calendario para insertar fechas en excel 2010, hasta ahora lo he logrado bien mediante la opción MonthView, hasta maquillado genere el calendario, me deposita la fecha seleccionada sin problemas. Apareciendo cuando doy click en la celda como es un rango en el que aplica la opción he utilizado el siguiente VBA:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Application.Intersect(Target, Range("C17:C411")) Is Nothing Then UserForm1.Show End If
End Sub

Mi problema es que este aparece siempre que se selecciona una fila completa, ejemplo selecciono la fila 18, como la celda C18 esta dentro de esta selección y ademas le aplica el pop up del calendario este aparece, volviendo muy molesto el uso de la la herramienta ya que aparece sin uno necesitarlo:

Se me ocurren dos posibles soluciones para lo que acudo a ustedes:

Tener la opción de que cuando me ubico en la celda que debe contener la fecha, aparezca la imagen pequeña de n calendario, si esta se selecciona entonces si sale el pop up completo de selección, (tipo pagina de internet). La otra poder tener la opción dentro de la misma macro que solo al seleccionar la celda especifica aparezca y no todas las veces que se selección por filas o columnas. Que sea un target mas especifico.

Ojala me haya hecho entender.

Quedo atento a sus respuestas.

1 respuesta

Respuesta
1

Para la segunda opción que mencionas en tu consulta, coloca el siguiente código en el evento Change, no donde lo tienes que es en SelectionChange.

Private Sub Worksheet_Change(ByVal Target As Range)
'Celda a evaluar
Celda = "C25"
'Cualquier cambio que se produzca en Celda
If Not Application.Intersect(Target, Range(Celda)) Is Nothing Then
'La siguiente opción es un filtro adicional.
'la cual comprueba que el valor introducido en Celda sea 1
If Range(Celda) = 1 Then
MsgBox "hola"
'UserForm1.Show
End If
End If
End Sub

Esto te permitirá hacer un target mas especifico.

Un Abrazo

Juan Carlos

Juan Carlos buenas tardes, de agradezco la respuesta, pero veo que seguimos hablando de una sola celda... como se haría la macro para un rango de celdas en una columna, o sea C3:C511?

Excusame por la mala lectura, prueba este código.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Celda, Columna
'Tu rango
Celda = "C3:C511"
If Not Application.Intersect(Target, Range(Celda)) Is Nothing Then
Columna = Target.Column
'Columna C=3
If Columna = 3 Then
UserForm1.Show
End If
End If
End Sub

Juntando lo tuyo y consultando otros amigos lo resolví asi:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Union(Target, Range("C17:C411")).Address = Range("C17:C411").Address Then UserForm1.Show End If End Sub

Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas