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
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
Essaye ça...
=MONTH(DATEVALUE(A1&"1"))
Où A1
cellule contient le nom du mois.
une autre formule Excel où A1
est l'identifiant de la cellule avec le nom du mois:
=TEXT(DATEVALUE(A1&" 1"), "m")
Sub month()
Dim monthh As Integer
monthh = month(Date)
MsgBox monthh
End Sub
essaye ça.
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))
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