Sub test()
Dim Rs As Object
Set Rs = CreerRecordsetMoisMultilingue
[A1].CopyFromRecordset GetRecod(Rs, "Francais")
[B1].CopyFromRecordset GetRecod(Rs, "Chinois")
[C1].CopyFromRecordset GetRecod(Rs, "Espagnol")
End Sub
Function CreerRecordsetMoisMultilingue() As Object
    Dim rst As Object
    Dim i As Integer
    
    ' Créer un recordset dynamique
    Set rst = CreateObject("ADODB.Recordset")
    
    ' Définir les champs (langues comme noms de champs)
    With rst.Fields
        .Append "NumeroMois", 3 ' adInteger
        .Append "Francais", 202, 50 ' adVarWChar
        .Append "Anglais", 202, 50
        .Append "Chinois", 202, 50
        .Append "Espagnol", 202, 50
        .Append "Hindi", 202, 50
        .Append "Arabe", 202, 50
        .Append "Portugais", 202, 50
        .Append "Russe", 202, 50
        .Append "Japonais", 202, 50
        .Append "Allemand", 202, 50
    End With
    
    ' Ouvrir le recordset
    rst.Open
    
    ' Tableaux des mois pour chaque langue
    Dim moisFrancais As Variant
    Dim moisAnglais As Variant
    Dim moisChinois As Variant
    Dim moisEspagnol As Variant
    Dim moisHindi As Variant
    Dim moisArabe As Variant
    Dim moisPortugais As Variant
    Dim moisRusse As Variant
    Dim moisJaponais As Variant
    Dim moisAllemand As Variant
    
    moisFrancais = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", _
                    "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
moisAnglais = Array("January", "February", "March", "April", "May", "June", _
                    "July", "August", "September", "October", "November", "December")
moisChinois = Array("Yi yuè", "Èr yuè", "San yuè", "Sì yuè", "Wu yuè", "Liù yuè", _
                    "Qi yuè", "Ba yuè", "Jiu yuè", "Shí yuè", "Shí yi yuè", "Shí èr yuè")
moisEspagnol = Array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", _
                    "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")
moisHindi = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", _
                 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
moisArabe = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", _
                 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
moisPortugais = Array("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", _
                     "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro")
moisRusse = Array("Yanvar", "Fevral", "Mart", "Aprel", "May", "Iyun", _
                 "Iyul", "Avgust", "Sentyabr", "Oktyabr", "Noyabr", "Dekabr")
moisJaponais = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", _
                    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
moisAllemand = Array("Januar", "Februar", "März", "April", "Mai", "Juni", _
                    "Juli", "August", "September", "Oktober", "November", "Dezember")
    
    ' Ajouter les données
    For i = 0 To 11
        rst.AddNew
        rst("NumeroMois") = i + 1
        rst("Francais") = moisFrancais(i)
        rst("Anglais") = moisAnglais(i)
        rst("Chinois") = moisChinois(i)
        rst("Espagnol") = moisEspagnol(i)
        rst("Hindi") = moisHindi(i)
        rst("Arabe") = moisArabe(i)
        rst("Portugais") = moisPortugais(i)
        rst("Russe") = moisRusse(i)
        rst("Japonais") = moisJaponais(i)
        rst("Allemand") = moisAllemand(i)
        
        rst.Update
    Next i
    
    ' Exemple d'utilisation du recordset
    rst.movefirst
   Set CreerRecordsetMoisMultilingue = rst
    
End Function
Function GetRecod(ByVal rst As Object, Langue As String) As Object
rst.movefirst
 Set GetRecod = CreateObject("ADODB.Recordset")
 With GetRecod
       .Fields.Append "Langue", 202, 50 ' adVarWChar
       .Open
       While Not rst.EOF
       .AddNew
       !Langue = rst(Langue)
       .Update
    rst.movenext
    Wend
    .movefirst
End With