Changer la propriété caption

A

Alguiche

Guest
Bonjour à tous,

J'utilise un userform que je voudrais bilingue et à l'aide de deux boutons passer d'un langue à l'autre en modifiant la proprités Caption des différents contrôles. J'ai essayé, naïvement, et tourné autour d'un truc de ce genre :

Private Sub CommandButton1_Click()
Dim Ctrlx As Control

For Each Ctrlx In Controls
Ctrlx.Caption = Array('aaa', 'bbb', 'ccc', 'ddd')
Next
End Sub

mais bien entendu ça ne marche pas

merci pour un peu d'aide
 

Spock

XLDnaute Occasionnel
A ça, j'ai fait souvent....
Fait chaud aujourd'hui, donc je vais être un peu léger.

J'avais fait des copier coller de tout les caption existant.
Genre : Cmd1.Caption = 'Bonjour'
Genre : Cmd1.Caption = 'Hello'
Genre : Cmd1.Caption = 'Dag'
Genre : Cmd1.Caption = 'Bonjourno'


Y a plus qu'a traduire et l'affeter a une commande.

Sorry pour pas clair, mais chaudddddddddddddddddd

Longue vie et prospérité.
 
A

Alguiche

Guest
Salut Spock,

Merci d'avoir répondu, mais j'ai oublié de préciser que j'avais retenu la solution que tu proposes, mais que je cherchais à faire qqch avec une boucle.

Désolé de t'avoir fait suer
Alguiche
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir Alguiche, bonsoir Spock, bonsoir le forum,

J'ai comme l'impression que Spock est encore un extra-terrestre de plus dans ce forum... Mêêê, revenons à nos moutons.

Je m'étais tapé un délire sur une application de traduction en 4 langues. J'avais procédé comme ça. Dans une feuille (que j'avais caché ensuite) il n'y avait rien en colonne A, Français en B, Anglais en C, Espagnol en D et Portugais en E. Dans une seconde feuille, 4 boutons de langue (non pas sur la langue !!!). La macro, en fonction du bouton, affichait en colonne A les mots de la langue choisie.
Aucun élément n'était nommé directement (UserForm, Label, Commandbutton, Messages, etc...). Tous faisait référence à une cellule de la colonne A de la feuille 1. En pièce jointe une démo trois langues avec très peu d'éléments. Au début ça peut paraître long mais je pense que ce n'est pas une si mauvaise méthode ?

Peut-être cela t'aidera.
[file name=MultiLangue.zip size=21485]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/MultiLangue.zip[/file]
 

Pièces jointes

  • MultiLangue.zip
    21 KB · Affichages: 28

Hervé

XLDnaute Barbatruc
Bonjour alguiche, spock, robert, le forum

:)

Sinon , une autre idée si vraiment tu n'a que deux langues à traiter.

Passer par la propriété tag des controls.

le caption initial en francais et le tag en anglais.

Private Sub CommandButton2_Click()
Dim ctrl As Control
Dim texte As String

For Each ctrl In UserForm1.Controls
   
If ctrl.Tag <> '' Then
&nbsp; &nbsp; &nbsp; &nbsp; texte = ctrl.Caption
&nbsp; &nbsp; &nbsp; &nbsp; ctrl.Caption = ctrl.Tag
&nbsp; &nbsp; &nbsp; &nbsp; ctrl.Tag = texte
&nbsp; &nbsp;
End If
Next ctrl

With Me.CommandButton2
&nbsp; &nbsp; .Caption = IIf(.Caption = 'Anglais', 'Francais', 'Anglais')
End With
&nbsp; &nbsp;
End Sub


Salut
[file name=Classeur3_20050717102659.zip size=9927]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur3_20050717102659.zip[/file]
 

Pièces jointes

  • Classeur3_20050717102659.zip
    9.7 KB · Affichages: 25
A

Alguiche

Guest
Salut tout le monde,

Merci pour vos diverses solutions que je vais étudier et voir laquelle s'adapte le mieux à mon projet et à d'autres en perspectives.

Grâce à vous tous j'en apprend chaque jour un peu plus, merci

Bonne fin de week end
 

Statistiques des forums

Discussions
312 493
Messages
2 088 950
Membres
103 989
dernier inscrit
jralonso