Month renvoie pas la bonne valeur

Bonjour,
J'utilise la fonction Year et Month pour extraire donc l'année et le mois

Pour l'année pas de souci.

Par contre pour le mois il me donne pas le résultat "2"

Sub test_date()
Dim li As Integer
With Worksheets("Feuil1")
    li = Cells(Rows.Count, 2).End(xlUp).Row

    Application.CutCopyMode = False
    Range("G2").Value = Year(Range("Z2")) ' Annnée en Z2
   .Range("G2").AutoFill .Range("G2:G" & li)
    Range("H2").Value = Month(Range("Z2"))
   .Range("H2").AutoFill .Range("H2:H" & li)

    Application.CutCopyMode = True
   End With
End Sub
13test-date.xlsm (17.03 Ko)

En Z2 la date s'affiche ainsi "07/01/2023"

L'année j'ai bien "2023"

Le mois j'ai bien "1" mais dès cela passe en février j'ai toujours "1"

Je voudrais aussi changer le "1" en Janvier

Le "2" en Février

Le "3" en Mars...

Je joins un fichier exemple.

Merci d'avance pour votre regard.

Hello,

Dans ton code tu ne fais pas de boucle, tu dis juste, tu m'écris "1" en H2 car basé sur Z2 et ensuite tu tires le 1 vers le bas donc tu auras uniquement du texte...

Essaie un truc de ce style :

Sub test_date()
Dim li As Integer

    li = Cells(Rows.Count, 2).End(xlUp).Row

    For i = 2 to li
        Range("G" & i) = Year(Range("Z" & i))
        Range("H" & i) = Month(Range("Z" & i))
    Next i 

End Sub 

Bonjour Baroute78

Oui effectivement je comprends mieux.

Merci cela fonctionne et j'ai réussi à transcrire le résultat en lettre avec MonthName

Sub test_date()
Dim li, i As Integer

    li = Cells(Rows.Count, 2).End(xlUp).Row

    For i = 2 To li
        Range("G" & i) = Year(Range("Z" & i))
        Range("H" & i) = MonthName(Month(Range("Z" & i)))
    Next i

End Sub

Ou comme ceci

Sub test_date()
Dim li, i As Integer

    li = Cells(Rows.Count, 2).End(xlUp).Row

    For i = 2 To li
        Range("G" & i) = Year(Range("Z" & i))
        Range("H" & i) = MonthName(Month(Range("Z" & i)), True)
    Next i

End Sub
Rechercher des sujets similaires à "month renvoie pas bonne valeur"