none
Convertir mois en texte en mois en chiffre RRS feed

  • Question

  • Bonjour,

    J'ai trouvé cette formule VB sur le web pour convertir un mois en texte en mois en chiffre :

    Dim MoisEnTexte As String

    MoisEnTexte = "April"

    MsgBox Month(DateValue("01 " & MoisEnTexte & " 2016"))

    Lorsque je code ces lignes dans ma fenêtre VB et que j'exécute, j'ai le message d'erreur "Incompatibilité de type".

    Si je code MsgBox Month(DateValue("01 " & "04" & " 2016"), j'obtiens le bon résultat c'est-à-dire 4.

    Mais ce que je recherche c'est vraiment de passer la valeur littérale du mois en paramètre.

    Merci d'avance pour votre aide.

    Cdt.

    mardi 19 avril 2016 21:00

Réponses

  • Bonjour Steeves,

    Je ne connais pas de fonction prédéfinie mais je viens d'en créer une qui devrait faire l'affaire.

    Public Function MoisEnFrancais(sEnglishMonthName As String) As String
    
        ' Macro fonction : créée par Mehdi HAMMADI le 21/04/2016
        ' Objectif : Convertir le nom des mois de l'anglais au français
        
        If sEnglishMonthName = "" Then Exit Function
        
        sEnglishMonthName = LCase(sEnglishMonthName)
        
        Select Case sEnglishMonthName
            Case "january"
                MoisEnFrancais = "janvier"
            Case "february"
                MoisEnFrancais = "février"
            Case "march"
                MoisEnFrancais = "mars"
            Case "april"
                MoisEnFrancais = "avril"
            Case "may"
                MoisEnFrancais = "mai"
            Case "june"
                MoisEnFrancais = "juin"
            Case "july"
                MoisEnFrancais = "juillet"
            Case "august"
                MoisEnFrancais = "août"
            Case "september"
                MoisEnFrancais = "septembre"
            Case "october"
                MoisEnFrancais = "octobre"
            Case "november"
                MoisEnFrancais = "novembre"
            Case "december"
                MoisEnFrancais = "décembre"
            Case Else
                MsgBox "Le nom du mois saisi est érroné", vbCritical + vbOKOnly + vbApplicationModal, "Erreur !"
                MoisEnFrancais = ""
        End Select
    
    End Function

    Donc si sMois="APRIL" le code si dessous renvois 4.

    MsgBox Month(DateValue("01 " & MoisEnFrancais(sMois) & " 2016"))


    En espérant avoir pu rendre service (MehdiH)
    Retrouvez moi sur Office Users

    • Marqué comme réponse Newworld92 jeudi 21 avril 2016 20:08
    jeudi 21 avril 2016 10:32

Toutes les réponses

  • Bonjour,

    Il semble que la langue soit pris en considération. J'ai fait un test avec "avril" et cela a fonctionné.

    sMois="avril" : msgbox month(datevalue("01 " & sMois & " 2016"))



    En espérant avoir pu rendre service (MehdiH)
    Retrouvez moi sur Office Users

    mercredi 20 avril 2016 08:28
  • Ah, merci Mehdi.

    Connais-tu un moyen VBA de convertir un mois anglais en français, stp ?

    Merci d'avance.

    Steeves.

    mercredi 20 avril 2016 19:35
  • Bonjour Steeves,

    Je ne connais pas de fonction prédéfinie mais je viens d'en créer une qui devrait faire l'affaire.

    Public Function MoisEnFrancais(sEnglishMonthName As String) As String
    
        ' Macro fonction : créée par Mehdi HAMMADI le 21/04/2016
        ' Objectif : Convertir le nom des mois de l'anglais au français
        
        If sEnglishMonthName = "" Then Exit Function
        
        sEnglishMonthName = LCase(sEnglishMonthName)
        
        Select Case sEnglishMonthName
            Case "january"
                MoisEnFrancais = "janvier"
            Case "february"
                MoisEnFrancais = "février"
            Case "march"
                MoisEnFrancais = "mars"
            Case "april"
                MoisEnFrancais = "avril"
            Case "may"
                MoisEnFrancais = "mai"
            Case "june"
                MoisEnFrancais = "juin"
            Case "july"
                MoisEnFrancais = "juillet"
            Case "august"
                MoisEnFrancais = "août"
            Case "september"
                MoisEnFrancais = "septembre"
            Case "october"
                MoisEnFrancais = "octobre"
            Case "november"
                MoisEnFrancais = "novembre"
            Case "december"
                MoisEnFrancais = "décembre"
            Case Else
                MsgBox "Le nom du mois saisi est érroné", vbCritical + vbOKOnly + vbApplicationModal, "Erreur !"
                MoisEnFrancais = ""
        End Select
    
    End Function

    Donc si sMois="APRIL" le code si dessous renvois 4.

    MsgBox Month(DateValue("01 " & MoisEnFrancais(sMois) & " 2016"))


    En espérant avoir pu rendre service (MehdiH)
    Retrouvez moi sur Office Users

    • Marqué comme réponse Newworld92 jeudi 21 avril 2016 20:08
    jeudi 21 avril 2016 10:32
  • Merci beaucoup Mehdi pour ton aide.

    Cdt,

    Steeves.

    jeudi 21 avril 2016 20:07