Merci à Icem@n pour sa version de traduction (
http://www.vbfrance.com/codes/CREER-APPLICATION-MULTILANGUE-INI_2948.aspx), mais je voulais absolument tout inclure dans le même fichier.
Source / Exemple :
' MODULE 1 :
Public Function Translation(ByVal OldText As String)
Dim ColNumber, RowNumber As Integer
' la cellule LanguageChoice contient la valeur liée aux boutons option
ColNumber = ThisWorkbook.Sheets("Languages").Range("LanguageChoice").Value + 1
' OldText est le nom de la cellule dans la colonne "A"
RowNumber = ThisWorkbook.Sheets("Languages").Range(OldText).Row
Translation = ThisWorkbook.Sheets("Languages").Cells(RowNumber, ColNumber).Value
End Function
Public Sub Sheet1_Refresh()
Dim RowCounter, ColumnCounter As Integer
ThisWorkbook.Sheets("Sheet1").Unprotect
ThisWorkbook.Sheets("Sheet1").Range("OldLengthTitle").Value _
= ThisWorkbook.Sheets("Sheet1").Range("OldLengthTitle").Formula
ThisWorkbook.Sheets("Sheet1").Range("OldWidthTitle").Value _
= ThisWorkbook.Sheets("Sheet1").Range("OldWidthTitle").Formula
ThisWorkbook.Sheets("Sheet1").Range("CorrectionText").Value _
= ThisWorkbook.Sheets("Sheet1").Range("CorrectionText").Formula
ThisWorkbook.Sheets("Sheet1").Range("CheckText").Value _
= ThisWorkbook.Sheets("Sheet1").Range("CheckText").Formula
ThisWorkbook.Sheets("Sheet1").Protect
End Sub
Sub Sheet1_OptionButton1_Click()
Call Sheet1_Refresh
End Sub
Sub Sheet1_OptionButton2_Click()
Call Sheet1_Refresh
End Sub
Sub Sheet1_OptionButton3_Click()
Call Sheet1_Refresh
End Sub
Conclusion :
Ce fichier contient une feuille "languages" qui permet de mettre les traductions par colonne.
Les cellules dans la colonne "A" sont nommées, puis l'appel de la fonction "=Translation(Nom-De-La-Cellule)" suffit pour traduire ce que vous voulez.
Il suffit d'ajouter un bouton-option avec une nouvelle langue et de remplir la colonne suivante sur la feuille "languages" pour avoir la traduction supplémentaire à dispo.
Il suffit de compléter une nouvelle ligne sur cette même feuille, en nommant la cellule "A" pour avoir la traduction d'un nouveau texte à dispo.
J'ai du ajouter un SUB Sheet1_Refresh pour raffraichir ma page d'exemple, parce que je n'ai pas trouvé autre moyen de le faire.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.