Matriz días de la semana

Necesito crear una matriz con los días de la semana, empezando en "Lunes" hasta llegar a "Domingo". Y necesito llevar a cabo los pasos necesarios que de tal manera me devuelva el nombre del día de la semana en la celda B1, a partir de un número digitado en la celda A1.

Esta es la macro pero no consigo dar con ella.

Sub matriz()
Dim días(7) As String ' has la posición numero 5' empiezan en cero
días(0) = "Lunes"
días(1) = "Martes"
días(2) = "Miércoles"
días(3) = "Jueves"
días(4) = "Viernes"
días(5) = "Sábado"
días(5) = "Domingo"
'Range("a1").Select
For i = 0 To 7 'hasta 5
Range("a1").Value
Range("b1").Value = días
Next
End Sub

1 respuesta

Respuesta
1

Veo que hay un pequeño lio con los números.

¿Quieres que los números vayan de

0=lunes a 6=Domingo o de

1=Lunes a 7=Domingo?

si claro si dígito en la celda a1 0 que este me indique en la celda b1 "lunes" ó si dígito 2 que que me indique en la celda b1 "martes"

La macro que escribiría eso es:

Sub matriz()
Dim dias()
dias = Array("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sabado", "Domingo")
If InStr("0 1 2 3 4 5 6", [A1]) <> 0 And [A1] <> "" Then
   [B1] = dias([A1])
Else
   [B1] = ""
End If
End Sub

Pero debes ejecutar la macro tras poner el número, no es cómodo.

Si quieres que lo escriba automáticamente debes transformar esto en una función de usario, entonces sería de esta forma

Function PonerDia(Celda As Range) As String
Dim dias()
dias = Array("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sabado", "Domingo")
If InStr("0 1 2 3 4 5 6", Celda) <> 0 And Celda <> "" Then
   PonerDia = dias(Celda)
Else
   PonerDia = ""
End If
End Function

Y en la celda B1 debes poner la formula

= PonerDia(A1)

La función puedes ponerla en la celda que quieras y la celda donde está el número también puedes cambiarla, por ejemplo, en B2 puedes poner

=PonerDia(A2)

EXCELENTE. MIL GRACIAS. la verdad es usted un experto. He tratado de conseguir un libros de excel de programación avanzado en excel en mí país y no he podido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas