Excel bouton Anglais/Français changement langue auto formulaire

Résolu/Fermé
Signaler
-
 Sania -
Bonjour,
J'espère que vous passez des bonnes fêtes!!!

Je vous joint mon fichier.

J'aimerais avoir un bouton au haut du fichier voir Français et Anglais. Si la personne sélectionne Anglais, le texte de base des formulaires deviendrais automatiquement en anglais.

J'allais traduire le texte (présentement en français seulement et je voulais savoir si je pourrais le formater de cet façon au lieu de fournir deux fichiers à tout le monde.

Bref auriez-vous des options pour moi?

https://drive.google.com/file/d/0B41sCp0KQOTSQzZUbmdISVF2UHM/view?usp=sharing

Merci,


2 réponses

Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 667
Bonjour,

C'est faisable, relativement facilement, par macro VBA.

Dans un module, il convient de créer :
- Une variable publique :
Public Langue As String

- deux macros à relier aux cases d'option
Sub Casdoption5_Cliquer()
Langue = "Fr"
Rempli_Feuil_Summary
End Sub

Sub Casdoption2_Cliquer()
Langue = "En"
Rempli_Feuil_Summary
End Sub

- Une macro de "remplissage" des cellules concernées
Sub Rempli_Feuil_Summary()
Select Case Langue
    Case "Fr"
        Range("B2") = "Nom de l'unité:"
        'Etc...
    Case "En"
        Range("B2") = "Unit name:"
        'Etc...
    Case Else
        Debug.Print "ceci ne devrait pas se produire."
End Select
End Sub

Dans le module ThisWorkbook, initialiser la variable Langue par défaut à l'ouverture du classeur :
Private Sub Workbook_Open()
Langue = "Fr"
Rempli_Feuil_Summary
End Sub


Ton exemple en retour. Seule cellule modifiée : B2...
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 667 > Sania
De rien!
@++
>
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021

Bonjour encore :)

Dit-moi, est-ce que je peux forcer En comme langue à l'impression?
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 667 > Sania
Oui, en faisant un bouton "IMPRIMER".
Le code de ce bouton serait, dans le style :

Langue = "En"
Rempli_Feuil_Summary
Sheets("Summary").PrintOut
Langue = "Fr"
Rempli_Feuil_Summary
>
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021

Merci encore!!!!
>
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021

Salut encore, dit-moi si je veux traduire de la même façon les autres onglets mais à partir des même boutons... (donc je clique Français sur la page sommaire et tous les autres onglets deviennent FR.) Est-ce que je dois ajouter dans cette section?

Dans le module ThisWorkbook, initialiser la variable Langue par défaut à l'ouverture du classeur :

Private Sub Workbook_Open()
Langue = "Fr"
Rempli_Feuil_Summary
End Sub

Si oui est-ce que j'ajoute simplement
Rempli_Feuil_Disbursements calendar

et dans la section - Une macro de "remplissage" des cellules concernées

Sub Rempli_Feuil_Summary() est-ce que je peux simplement avoir tout les noms d'onglet sur le même principe et la même feuille de code?

Merci pour ton aide... Je ne suis pas entièrement confortable avec le VBA... donc toujours un apprentissage.
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 667
Bonjour,

Pour faire simple, une seule macro devrait suffire :

- deux macros à relier aux cases d'option

Sub Casdoption5_Cliquer()
Langue = "Fr"
Rempli_FeuilS
End Sub

Sub Casdoption2_Cliquer()
Langue = "En"
Rempli_FeuilS
End Sub



- Une macro de "remplissage" des cellules concernées

Sub Rempli_FeuilS()
Select Case Langue
    Case "Fr"
        With Sheets("Summary")
            .Range("B2") = "Nom de l'unité:"
            'Etc...
        End With
        With Sheets("Disbursements calendar")
            .Range("C4") = "Bonne Année"
        End With
    Case "En"
        With Sheets("Summary")
            .Range("B2") = "Unit name:"
            'Etc...
        End With
        With Sheets("Disbursements calendar")
            .Range("C4") = "Happy new year"
        End With
    Case Else
        Debug.Print "ceci ne devrait pas se produire."
End Select
End Sub

N'oublie pas les points devant les Range qui se trouvent à l'intérieur des blocs With.

Si ta macro est trop longue, dis le...

Dans le module ThisWorkbook, initialiser la variable Langue par défaut à l'ouverture du classeur :

Private Sub Workbook_Open()
Langue = "Fr"
Rempli_FeuilS
End Sub

Merci pour ta réponse! Très apprécié et désolé du délais!!! Je t'en redonnes des nouvelles sous peu. Bonne année!!! :)
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 667 > Sania
De rien.
Bonne année également.
@++
Oubli sa tout est fonctionnel j'avais oublié d'arrêter l'enregistrement. Une vraie blonde!!!!