web-dev-qa-db-fra.com

Convertir le nom du mois en nombre

J'ai une liste déroulante avec des mois peuplés. Lorsqu'un mois est sélectionné, j'aimerais le convertir en nombre de mois. Existe-t-il une fonction capable de le faire?

Par exemple. Septembre = 9

6
HL8

Autrement

Formule Excel

=MONTH(1&A1)

VBA

Sub Sample()
    Dim MonthNm As String
    MonthNm = "September"
    Debug.Print Month(DateValue("01 " & MonthNm & " 2012"))
End Sub

ou

Sub Sample()
    Dim MonthNm As String
    MonthNm = "September"
    Debug.Print Application.Evaluate("=MONTH(1&" & Chr(34) & MonthNm & Chr(34) & ")")
End Sub

Remplacer

34
Siddharth Rout

Essaye ça...

 =MONTH(DATEVALUE(A1&"1"))

A1 cellule contient le nom du mois.

5
SiB

une autre formule Excel où A1 est l'identifiant de la cellule avec le nom du mois:

=TEXT(DATEVALUE(A1&" 1"), "m")
0
ThiamTeck
Sub month()

Dim monthh As Integer

monthh = month(Date)

MsgBox monthh

End Sub

essaye ça.

0
Inaki Melchor

Cette solution ne fonctionnait pas pour moi (Excel 2010), j'ai dû raccourcir le nom du mois à 3 caractères et ajouter le numéro du jour devant la chaîne raccourcie.

=MONTH(1&LEFT(A1;3))
0
Alexus

Une autre solution VBA

Pour l'amour de l'art, en plus de la réponse valable de Siddharth :-)

Sub SampleTM()
  Dim MonthNm$: MonthNm = "September"
  Debug.Print MonthNm2Num(MonthNm)
End Sub

Function MonthNm2Num(ByVal MonthNm) As Long
    MonthNm2Num = Format(CDate(MonthNm & "/1 0"), "m") * 1&
End Function
0
T.M.