Bouton d'option (activeX) qui fait effet sur 2 feuilles

Résolu
Magen_879 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
 Magen_879 -

Bonjour a tous, 

Je suis assez débutante niveau VBA, et ce que je tente de faire surpasse de beaucoup ma compréhension et capacité :)

j'ai un fichier Excel qui sert de contrat et j'ai réussit a créé un module qui change la langue du formulaire grâce a un bouton d'option. Ca marche super bien pour ca.

Par contre cette première feuille est lié a une autre (un offre d'achat qui se transforme en contrat) il sont sur 2 feuilles différentes car il n'ont pas la même mise en page.

Ce que j'aimerais réussir c'est que le bouton de langue de la feuille ''Offre d'achat'' change la langue de cette feuille (jusque la pas de problème) mais aussi la langue de la feuille ''Contrat''. Ce que je n'arrive pas a faire.

J'ai fait plusieurs tests dans un autre fichier moins chargé, et il semble que le code ne prend pas réellement en compte le nom de la feuille, mais fait seulement effet sur la feuille ou se trouve les boutons...

Est ce que c'est possible ce que je veux faire??

j'avais trouvé une belle solution a mon problème en créant 2 autres bouton d'options sur ma feuille ''contrat'' qui était codé pour être activé par les bouton de la feuille ''Offre d'achat'' mais ce n'était pas un vrai clic donc le code du module de fonctionnait pas.

Donc je me dis que je pourrait initier le changement de langue en fonction de la valeur d'une cellule (ex: j'ai une case liée a un bouton et écrit vrai quand Français et faux quand c'est anglais) mais je ne comprend pas comment je pourrait écrire cette commande...

est ce que quelqu'un est en mesure de me donner une piste de solution?

Merci a l'avance :)


Windows / Chrome 108.0.0.0

A voir également:

4 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 

Bonjour,

Vous pouvez montrer le code que vous utilisez?

0
Magen_879
 

Bonjour, merci de votre réponse, je peux vous mettre un extrait de mon module de langue qui est lié a mes boutons d'options.

J'ai fait des tests aussi dans un nouveau fichier et le bouton semble seulement faire effet sur sa feuille, même si je spécifie Feuil2 par exemple.

Public Langue As String


Sub btnFrancais_Cliquer()
Langue = "Fr"
Rempli_Feuil_Feuil1
End Sub

Sub btnAnglais_Cliquer()
Langue = "En"
Rempli_Feuil_Feuil1
End Sub

Sub Rempli_Feuil_Feuil1()
Select Case Langue
    Case "Fr"
        Range("D9") = "(LE COMMERCANT)"
        Range("A10") = "NOM:"
        Range("C10") = "PRÉNOM:"
        Range("A11") = "NOM:"
        Range("C11") = "PRÉNOM:"
        Range("A12") = "ADRESSE:"
        Range("A13") = "VILLE:"


        
    Case "En"
        Range("D9") = "(THE MERCHANT)"
        Range("A10") = "LAST NAME:"
        Range("C10") = "FIRST NAME:"
        Range("A11") = "LAST NAME:"
        Range("C11") = "FIRST NAME:"
        Range("A12") = "ADRESS:"
        Range("A13") = "CITY:"

        
        
        
    Case Else
        Debug.Print "ceci ne devrait pas se produire."
End Select
End Sub

0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 

Bonjour,

essaie cela:

Option Explicit
Public Langue As String
Sub btnFrancais_Cliquer()
Langue = "Fr"
Rempli_Feuil_Feuil1
End Sub
Sub btnAnglais_Cliquer()
Langue = "En"
Rempli_Feuil_Feuil1
End Sub
Sub Rempli_Feuil_Feuil1()
Dim i As Integer
For i = 1 To 2
With Worksheets(i)
Select Case Langue
    Case "Fr"
        .Range("D9") = "(LE COMMERCANT)"
        .Range("A10") = "NOM:"
        .Range("C10") = "PRÉNOM:"
        .Range("A11") = "NOM:"
        .Range("C11") = "PRÉNOM:"
        .Range("A12") = "ADRESSE:"
        .Range("A13") = "VILLE:"
    Case "En"
        .Range("D9") = "(THE MERCHANT)"
        .Range("A10") = "LAST NAME:"
        .Range("C10") = "FIRST NAME:"
        .Range("A11") = "LAST NAME:"
        .Range("C11") = "FIRST NAME:"
        .Range("A12") = "ADRESS:"
        .Range("A13") = "CITY:"
    Case Else
        Debug.Print "ceci ne devrait pas se produire."
End Select
End With
Next i
End Sub

0
Magen_879
 

Merci :)

Ca fonctionne!!

Mon seul problème la la situation, c'est que ma feuille 1 et feuille 2 n'ont pas la même mise en page... il faudrait donc que je puisse spécifier les ''range'' pour chacune des feuilles.

Mon autre option pourrait aussi de revoir la mise en page des 2 feuilles pour qu'elles coïncident mais certain champs qui sont présent dans la première feuille ne doivent pas l'être dans la 2e.

Je continue d'explorer mes possibilités, mais merci pour le code que je conserverai précieusement!!

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 

bonjour,

tu peux aussi faire ainsi:

Sheets("Contrat").Range("D9") = "(LE COMMERCANT)"
Sheets("Offre d'achat").Range("X123") = "(LE COMMERCANT)"
0
Magen_879 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 

Oh c'est exactement cette info qui me manquais :)

merci merci!!

0