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