VBA Excel Funcion Mes Completo

Estoy aprendiendo el diseño de macros a través de VBA Excel y solicito su apoyo.

Consulta: ¿Cómo obtener el nombre completo del mes basado en el dato de una celda?

Tengo un userform que busca la última fila vacía para registrar una serie de datos. En la columna #7 se ingresa la fecha de registro de la información y necesito que en la columna #8 se coloque automáticamente el nombre completo del mes de la fecha de registro y en la columna #9 el año de la fecha de registro.

Actualmente tengo este código, pero me devuelve el número del mes y necesito el mes completo.

Dim Mes As String

ult = Cells(Rows.Count, 1).End(xlUp).Row

For Y = 300 To ult

Mes = Month(Cells(Y, 7))

Cells(Y, 8) = Mes

Next

End Sub

2 respuestas

Respuesta
1

Si los meses te valen en inglés; sería fácil, solo cambiando:

Cells(Y,8)=Mes   por

Cells(y, 2) = Application.WorksheetFunction.Text(Range("G" & y), "mmmm")

cómo imagino que los quieres en español pon este código:

Sub Poner_Mes()
Dim Mes As String
ult = Cells(Rows.Count, 1).End(xlUp).Row
For Y = 1 To ult
    Select Case Month(Cells(Y, 1))
        Case 1:   Mes = "Enero"
        Case 2:   Mes = "Febrero"
        Case 3:   Mes = "Marzo"
        Case 4:   Mes = "Abril"
        Case 5:   Mes = "Mayo"
        Case 6:   Mes = "Junio"
        Case 7:   Mes = "Julio"
        Case 8:   Mes = "Agosto"
        Case 9:   Mes = "Septiembre"
        Case 10:   Mes = "Octubre"
        Case 11:   Mes = "Noviembre"
        Case 12:   Mes = "Diciembre"
    End Select
Cells(Y, 2) = Mes
Next
End Sub

Si te ha valido la respuesta.

Efectivamente, al utilizar la función Format, se puede conseguir el mes (en el idioma seleccionado en el ordenador), de una fecha:

Cambia:

Cells(Y,8)=Mes   por:

Cells(Y, 8) = Format(Cells(Y, 7), "mmmm")

Respuesta
1

Con el formato puedes recuperar el nombre del mes

Sub x()
    Dim Mes As String
    ult = Cells(Rows.Count, 1).End(xlUp).Row
    For Y = 300 To ult
        Cells(Y, 8) = Format(Cells(Y, 7), "mmmm")
        Cells(Y, 9) = Year(Cells(Y, 7))
    Next
End Sub

Saludos.Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas