Message box avec choix du language ouverture classeur excel

max77_stage

XLDnaute Nouveau
Bonjour le forum,

J'aurais voulu savoir si il était possible lors de l'ouverture d'un classeur excel d'afficher une message box (ça j'ai réussi) mais que en plus du message de bienvenue j'ai le choix de choisir entre l'anglais et le Français et que bien sur en fonction de ce choix s'affiche les pages concernées que j'ai crée.

Merci d'avance de votre aide.
 

Papou-net

XLDnaute Barbatruc
Re : Message box avec choix du language ouverture classeur excel

Bonjour max77_stage,

Ce que tu veux obtenir oblige quasiment à passer par un formulaire (UserForm) au lieu d'un MsgBox.

Voici un fichier exemple, avec affichage du choix de la langue à l'ouverture du classeur. Si tu choisis le français, la feuille 1 est visible et la feuille 2 est masquée. C'est exactement l'inverse pour l'anglais. Bien sûr, il te faudra adapter le nom de la (ou des) feuille(s) de ton application.

Si tu as besoin d'explications complémentaires, n'hésite pas.

A +

Cordialement.
 

Pièces jointes

  • Exemple max77_stage.xlsm
    17.6 KB · Affichages: 60

max77_stage

XLDnaute Nouveau
Re : Message box avec choix du language ouverture classeur excel

Re-bonjour,

Merci de la réponse je regarde de suite et je donne des nouvelles^^

edit : j'ai bien regardé votre fichier et il conviendrait parfaitement à mes besoins. Cependant j'ai un poblème dans votre fichier j'ai récupéré votre userform je l'ai exporté et inséré dans le mien. Ensuite j'ai bien recopié le code pour que cela s'affiche à l'ouverture du classeur jusque là pas de problèmes. Ensuite j'ai renommé en fonction de mes feuilles (mvt1(fr),mvt1(eng),mvt2(fr),mvt2(eng),mvt3(fr),mvt3(eng)) et c'est la que ça se complique pour moi. Lorsque je lance mon fichier excel tout s'affiche correctement mais des lors que je choisis Français ou anglais, il me met une erreur "object requis".

voilà le code que j'ai mis :

Private Sub CommandButton1_Click()
If OptionButton1 = True Then
mvt1(fr).Visible = True
mvt1(eng).Visible = False
mvt2(fr).Visible = True
mvt2(eng).Visible = False
mvt3(fr).Visible = True
mvt3(eng).Visible = False

Else
mvt1(fr).Visible = False
mvt1(eng).Visible = True
mvt2(fr).Visible = False
mvt2(eng).Visible = True
mvt3(fr).Visible = False
mvt3(eng).Visible = True

End If
Unload Me
End Sub

Je précise que j'ai aussi essayé de renommer mes feuilles de la même manière (Feuil1,Feuil2) sans plus de réussite.

Voilà si tu peux me dire quoi faire ça serait super^^car ta solution me convient parfaitement.



edit2: c'est bon problème résolu j'ai capté que j'avais mis le nom de l'onglet et pas celui de la feuille =) ca marche beaucoup mieux du coup ^^ encore merci problème résolu grâce à toi
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Message box avec choix du language ouverture classeur excel

Bonjour Pierrot,

RE: @ max77_stage,

A la lecture de ton dernier message, je te propose de reprendre le code comme suit:

Code:
Private Sub CommandButton1_Click()
Dim Lang1 As String, Lang2 As String, sh As Worksheet

If OptionButton1 + OptionButton2 = 0 Then
  MsgBox "Veuillez choisir une langue !", vbOKOnly + vbExclamation, "LANGUE"
  Exit Sub
End If
Lang1 = IIf(OptionButton1 = True, "fr", "eng")
Lang2 = IIf(OptionButton1 = True, "eng", "fr")
For Each sh In Sheets
  If sh.Name Like "*" & Lang1 & "*" Then sh.Visible = True
  If sh.Name Like "*" & Lang2 & "*" Then sh.Visible = False
Next
Unload Me
End Sub
Un des principaux avantages est que, ne faisant pas nommément appel aux feuilles, tu peux ajouter ou supprimer des feuilles dans l'avenir sans avoir à te soucier d'adapter le code.

A +

Cordialement.
 

Pièces jointes

  • Copie 01 de Exemple max77_stage.xlsm
    21.2 KB · Affichages: 40

max77_stage

XLDnaute Nouveau
Re : Message box avec choix du language ouverture classeur excel

Re-bonjour,

Merci pour toutes ces réponses et désolé de ne pas avoir répondu avant mais pas d'accès internet le week-end.
Pour le moment la première méthode me convient parfaitement car je n'ai que 3 feuilles qui sont copié à l'identique au besoin.
Cependant je me suis aperçu d'un problème, en effet je récupère sur chaque feuille différentes cellules que je stocke dans une feuille récapitulatif (cela marche nickel), mais je souhaite que lors du choix de la langue lorsque je récupère ces données à l'aide d'une macro les données de la langue que n'est pas concerné ne soit pas récupérées ce qui n'est pas le cas car les feuilles sont juste caché et non "inactive".
Je pensais faire une petite macro qui lorsque qu'une langue n'est pas sélectionnée bouge les cellules pour que les données ne soient pas récupérées par la suite. Je ne sais pas si cela est possible ou si vous avez une solution plus simple. Je suis à l'écoute de toute proposition^^

Merci d'avance pour l'aide.
 

Papou-net

XLDnaute Barbatruc
Re : Message box avec choix du language ouverture classeur excel

Bonjour max77_stage,

Je pensais faire une petite macro qui lorsque qu'une langue n'est pas sélectionnée bouge les cellules pour que les données ne soient pas récupérées par la suite. Je ne sais pas si cela est possible ou si vous avez une solution plus simple. Je suis à l'écoute de toute proposition
Pourquoi créer une macro? Le plus simple serait d'ajouter un test conditionnel du genre:

Code:
If sh.Visible = True Then
...
End If
Si besoin, envoie une copie de ton fichier ou du code concernant la copie.

A +

Cordialement.
 

max77_stage

XLDnaute Nouveau
Re : Message box avec choix du language ouverture classeur excel

Re-bonjour,

Alors pour l'idée de la macro, c'était juste une supposition. Donc effectivement le test conditionnel pourrai convenir mais je ne sais vraiment pas quoi mettre dedans car il faut que lorsque je ré-ouvre ce fichier Excel si je fais le choix de l'autre langue que mes feuilles soient toujours disponible. Je vais essayer de fournir un fichier en enlevant certaines infos confidentiels.
Quoi qu'il en soit merci pour l'aide
 

max77_stage

XLDnaute Nouveau
Re : Message box avec choix du language ouverture classeur excel

je joint un fichier (dsl il ne ressemble plus à grand chose car j'ai du supprimé la quasi totalité de mes feuilles mais j'ai laissé mes macros)

Désolé je voulais éditer mon message précèdent mais j'en ai ajouté un nouveau.
 

Pièces jointes

  • pb_choixlangue.xlsm
    70.5 KB · Affichages: 41
  • pb_choixlangue.xlsm
    70.5 KB · Affichages: 49
  • pb_choixlangue.xlsm
    70.5 KB · Affichages: 44
Dernière édition:

max77_stage

XLDnaute Nouveau
Re : Message box avec choix du language ouverture classeur excel

Euh il doit avoir un bug car la je suis sur de l'avoir mis correctement, il se trouve dans le message #9.
Dans le doute je le met également sur ce message.
En espérant que ça fonctionne cette fois^^
 

Pièces jointes

  • pb_choixlangue.xlsm
    70.5 KB · Affichages: 52
  • pb_choixlangue.xlsm
    70.5 KB · Affichages: 50
  • pb_choixlangue.xlsm
    70.5 KB · Affichages: 59

Papou-net

XLDnaute Barbatruc
Re : Message box avec choix du language ouverture classeur excel

RE:

Et oui, ça a fonctionné cette fois.

Voici donc comment ajouter la condition de visibilité des feuilles dans le code:

Code:
Sub TabDonnees()
 Dim WS As Worksheet
 Dim i As Byte

 i = 1

 For Each WS In Worksheets
 If WS.Name <> "Tableau de données-Data table" And WS.Visible = True Then
 With Sheets("Tableau de données-Data table")
 .Range("C" & i + 3) = WS.Name
 .Range("E" & i + 3) = WS.Range("D40")
 i = i + 1
 End With
 End If
 Next
 End Sub
En principe, ça devrait répondre à tes soucis.

Cordialement.
 

max77_stage

XLDnaute Nouveau
Re : Message box avec choix du language ouverture classeur excel

Re,

Alors tout d'abord merci ça marche nickel, je vais faire tout les test nécessaires histoire de ne pas louper quelque chose j'aurais juste aimé comprendre pourquoi juste avec l'ajout de And WS.Visible = True par rapport au code de base cela fonctionne.

En tout cas merci à toi pour l'aide précieuse
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa