Traduction dans fichier excel sans fichier supplémentaire


Description

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.

Codes Sources

A voir également

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.