Datos variables en celdas

Saludos, mi duda es la siguiente: Si Coloco en a1 una lista desplegable con los meses y año, al seleccionar un mes especifico, desde b1 hasta af1 se coloque la fecha comenzando desde 1 hasta 31. Y en b2 hasta af2 se coloquen los días. Y si selecciono otro mes y año, cambie como en un calendario. Gracias!

1 Respuesta

Respuesta
1
Con este código creo que se puede hacer lo que quieres:
Entiendo que en la celda A1 seleccionas una fecha por ejemplo "01-02-2010" que te muestra Febrero del 2010, y a partir de esa selección se despliega los días del mes del 1 al 31 y en la senda fila yo he colocado 1-Febrero-2010 y los sucesivos, si lo que querías es el día de la semana (lunes- martes - etc...) habría que cambiar una linea, pero eso ya me lo dirás...
El código en cuestión es :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ultimoDia As Date
If Target.Address = "$A$1" Then
Range("b1:af2") = ""
mimes = Format(Range("a1"))
ultimoDia = "1-" & (Format(Range("a1"), "m") + 1) & "-" & (Format(Range("a1"), "yyyy"))
ultimoDia = ultimoDia - 1
midia = Val(Format(ultimoDia, "d"))
For nd = 1 To midia
Cells(1, nd + 1) = nd
Cells(2, nd + 1) = Range("a1") - 1 + nd
Next
End If
End Sub
Si necesitas más aclaración pídela.
El código para que te marque el día de la semana (lunes, martes, etc..) es :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ultimoDia As Date
If Target.Address = "$A$1" Then
Range("b1:af2") = ""
mimes = Format(Range("a1"))
ultimoDia = "1-" & (Format(Range("a1"), "m") + 1) & "-" & (Format(Range("a1"), "yyyy"))
ultimoDia = ultimoDia - 1
midia = Val(Format(ultimoDia, "d"))
For nd = 1 To midia
Cells(1, nd + 1) = nd
Cells(2, nd + 1) = Format((Range("a1") - 1 + nd), "dddd")
Next
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas