onglets de feuille variables mais fixes ?

Y

ya_v_ka

Guest
salut tout le monde

et oui grace à vos nombreuses idées et solutions, j'arrive bientôt au bout de mon fichier parfaitement bilingue (à noter que sous créé par, j'ai ajouté: avec l'aide du forume xld... Redde Caesari quae sunt Caesaris, et quae sunt Dei Deo !"comme disait Jésus") mais:

1. comment rendre variable juste les onglets de feuilles en sachant qu'ils rentrent dans beaucoup de macros ?

2. quelle est la manière la plus simple d'avoir un messagebox qui change de langue (en créer 2 avec un booléen, ou avoir le texte en variable sur une feuille... et comment le référencer ?)

voilà... si comme d'hab quelqu'un à une idée, une solution ou une question... je suis preneur

Merci d'avance

ya'v
 
R

Robert

Guest
Bonsoir Ya_v_ka, bonsoir le forum,

pour une appli multi-langues j'ai trouvé le subterfuge suivant qui marche assez bien (voir pièce jointe) :

Peut-être ça t'intéressera... Si tu veux voir vraiment ce que ça donne télécharge dans la rubrique "Sport et Loisirs" l'appli Euro 2004 RB. Attention le fichier fait 5 Mo ! ADSL recommandée !

À plus,

Robert
 

Pièces jointes

  • Polyglotte.zip
    16.3 KB · Affichages: 22
Y

ya_v_ka

Guest
salut robert et merci

pour le fichier polyglotte, c'est pas mal, mais si on change l'ordre des feuilles ca bug... ennuyeux...

pour l'euro je vais étudier, mais y'en a pour 22 secondes de téléchargement !!!! (eh eh ADSL 1200 merci)...

ya'v
 
Y

ya_v_ka

Guest
re...

euh oui super... mais les onglets sont toujours en espagnol(ou italien)...
et ce sont des userform et non des msgbox... ce qui ne répond que peu à mes questions...


merci quand même, c'était pas loin

ya'v
 
C

CHti160

Guest
Salut"ya_v_ka" et Salut" Robert"
Bonjour le"FORUM"
je suis ce post mais je ne comprends pas tous mais là je pense qu'il y à un challenge(lol) ,donc expliques moi ,tu veux renommer tes feuilles en fonction de la langue choisie(bi)
Quels noms doivent avoir ces feuilles celon le Choix (Feuil1,Sheets(1) par ex)?
pourquoi l'ordre des feuilles peut il être changé?
as tu mis sur le forum ton fichier
A+++
Jean Marie
 
Y

ya_v_ka

Guest
Salut CHtil,

1. Non, mon fichier de 3 Mo n'est pas en ligne
2. c'est un classeur de formulaires portant chacun un nom(ex: d'autres corps, subsistance intermédiaire, décompte commune... ou en allemand: von andere Korps, Zwichenverpflegungs, Gemeindeabrechnung. On abrège par ex en: d_autres, subs_int, déc_com ou en allemand: Von, ZwiVpf, Gabr) ce qui fait qu'il est difficile de nommer les onglets que d'une seule manière si tout le reste du fichier se traduit...
3. Les feuilles peuvent être eventuellement "mélangée" par la suite, ou une feuille supplémentaire insérée entre 2 autres... ce qui fait que nommer les feuilles par leur position est dangereux
4. avantage: si les feuilles sont nommées une fois au début d'une manière X, le nom n'a plus besoin de changer par la suite, et jusqu'à ce moment, aucune modification n'a été effectuée sur mon fichier xlt.(kesskeje m'éxplique mal! autrement dit: si les feuilles peuvent être nommées lors de la première ouverture du fichier le tour est joué (j'ai une feuille de choix de langue qui n'apparait qu'à la première ouverture et qui se masque (xlveryhidden) ensuite)).
voilà, j'éspère avoir été plus clair... sinon j'essayerais de mettre un 1/4 de fichier online...

quant aux msgbox, j'ai solutionné avec un boolean... ca fonctionne à merveille (je pensais plus compliqué sur ce coup !)

merci encore à tous ceux qui s'y interessent

ya'v
 
Y

ya_v_ka

Guest
je tente de me reexpliquer:

à l'ouverture d'un nouveau fichier depuis le .xlt, une feuille demande à l'utilisateur de choisir la langue, ensuite cette feuille se masque (xlveryhidden) donc si je pouvais, à ce moment, nommer les onglets le tour serait ptet joué, et avec une variable qui pointerais sur une référence de base pour les noms de feuille, les autres macros seraient ptet encore jouables !

une variable public F1 = worksheets("x").Range("a1").value pour une feuille
F2 = ....("a2") pour la suivante... etc

et l'attribution des noms d'onglets lors du choix de langue...


mais est-ce seulement faisable...

ya'v
 
Y

ya_v_ka

Guest
Yepee... onglets de feuille variables mais fixes ?

salut tous et merci

CA MARCHE

petite explication:

le classeur s'ouvre sur la feuille("Y") qui donne le choix de langue et modifie la celulle "A1" de la feuille("Trad") ce qui a pour effet :

<i>Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Set Wt = Worksheets("Trad")
Set Ws = Worksheets
If Target.Address = "$A$1" Then
Ws("BD").ValidButton1.Caption = Wt.Range("A2")
Ws("17-6").OptionButton2.Caption = Wt.Range("A72")
Ws("17-6").Label1.Caption = Wt.Range("A71")
Ws("17-12r").Label1.Caption = Wt.Range("A134")
Ws("17-12v").Label1.Caption = Wt.Range("A135")
Ws("17-13s").Label1.Caption = Wt.Range("A136")
Ws("17-13l").Label1.Caption = Wt.Range("A136")
Ws("17-13s").CommandButton1.Caption = Wt.Range("A137")
Ws("17-13s").CommandButton2.Caption = Wt.Range("A137")
Ws("17-13l").CommandButton1.Caption = Wt.Range("A137")
Ws("17-13l").CommandButton2.Caption = Wt.Range("A137")
Ws("16-18").Label1.Caption = Wt.Range("A138")
Ws("01").CommandButton1.Caption = Wt.Range("A152")
Ws("BD").Label1.Caption = Wt.Range("A4")
Ws("17-5II").CommandButton1.Caption = Wt.Range("A166")
Ws("17-26Vv").Label1.Caption = Wt.Range("A175")
Ws("17-26Vv").CommandButton1.Caption = Wt.Range("A176")
Ws("17-26V").Name = Wt.Range("A119").Value
Ws("17-5IIId").Name = Wt.Range("A111").Value
Ws("17-5IIIp").Name = Wt.Range("A112").Value
Ws("17-5II").Name = Wt.Range("A106").Value
Ws("17-5I").Name = Wt.Range("A113").Value
Ws("17-9").Name = Wt.Range("A114").Value
Ws("17-5IIv").Name = Wt.Range("A129").Value
Ws("17-33").Name = Wt.Range("A115").Value
Ws("16-18").Name = Wt.Range("A116").Value
Ws("17-52").Name = Wt.Range("A125").Value
Ws("17-14").Name = Wt.Range("A126").Value
Ws("02").Name = Wt.Range("A122").Value
Ws("021").Name = Wt.Range("A123").Value
Ws("15-5IIIv").Name = Wt.Range("A130").Value
Ws("17-31").Name = Wt.Range("A124").Value
Ws("17-5Iv").Name = Wt.Range("A128").Value
Ws("17-6").Name = Wt.Range("A103").Value
Ws("17-26Vv").Name = Wt.Range("A120").Value
Ws("01").Name = Wt.Range("A118").Value
Ws("17-12r").Name = Wt.Range("A104").Value
Ws("17-12v").Name = Wt.Range("A105").Value
Ws("17-13s").Name = Wt.Range("A107").Value
Ws("17-13l").Name = Wt.Range("A108").Value
Ws("17-5_IV").Name = Wt.Range("A109").Value
Ws("17-5IIIr").Name = Wt.Range("A110").Value
End If
End Sub</i>

ensuite l'utilisateur se retrouve avec la feuille("BD"), et il doit cliquer sur le bouton pour en sortir, ce qui donne:

<i>Private Sub ValidButton1_Click()
Dim Ws As Worksheet
Dim F1 As String 'odt
Dim F2 As String 'A_cm
Dim F3 As String 'D_cm
Dim F4 As String 'VenV
Dim F5 As String 'Crédit
Dim F6 As String 'Stat_V
Dim F7 As String 'Bon
Dim F8 As String 'Subs
Dim F9 As String 'VIVA
Dim F10 As String 'VivI
Dim F11 As String 'Gré
Dim F12 As String 'OdtI
F1 = Worksheets("Trad").Range("A119").Value
F2 = Worksheets("Trad").Range("A125").Value
F3 = Worksheets("Trad").Range("A126").Value
F4 = Worksheets("Trad").Range("A130").Value
F5 = Worksheets("Trad").Range("A128").Value
F6 = Worksheets("Trad").Range("A129").Value
F7 = Worksheets("Trad").Range("A124").Value
F8 = Worksheets("Trad").Range("A114").Value
F9 = Worksheets("Trad").Range("A115").Value
F10 = Worksheets("Trad").Range("A116").Value
F11 = Worksheets("Trad").Range("A118").Value
F12 = Worksheets("Trad").Range("A120").Value
Application.ScreenUpdating = False
Worksheets("BD").Visible = False
For Each Ws In Sheets(Array("X", "Y", "z", "tableau", "tablo", "Trad"))
Ws.Visible = xlSheetVeryHidden
Next
If CheckBox2.Value = True Then
For Each Ws In Sheets(Array(F2, F3)) '"A_cm", "D_cm"))
Ws.Visible = xlSheetVisible
Next
Else
For Each Ws In Sheets(Array(F2, F3)) '"A_cm", "D_cm"))
Ws.Visible = xlSheetHidden
Next
End If
If CheckBox3.Value = True Then
For Each Ws In Sheets(Array(F4, F5, F6)) '"VenV", "Crédit", "Stat_v"))
Ws.Visible = xlSheetVisible
Next
Else
For Each Ws In Sheets(Array(F4, F5, F6)) '"VenV", "Crédit", "Stat_v"))
Ws.Visible = xlSheetHidden
Next
End If
If CheckBox4.Value = True Then
Worksheets(F7).Visible = True '"Bon").Visible = True
Else: Worksheets(F7).Visible = False '"Bon").Visible = False
End If
If CheckBox5.Value = True Then
For Each Ws In Sheets(Array(F8, F9, F10, F11, F1, F12)) '"Subs", "VIVA", "VivI", "Gré", "Odt", "OdtI"))
Ws.Visible = xlSheetVisible
Next
Else
For Each Ws In Sheets(Array(F8, F9, F10, F11, F1, F12)) '"Subs", "VIVA", "VivI", "Gré", "Odt", "OdtI"))
Ws.Visible = xlSheetHidden
Next
End If
ActiveWindow.DisplayWorkbookTabs = True
With ActiveWindow
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
End With
Application.ScreenUpdating = True
End Sub</i>

et ca marche... mais je pense qu'il est possible de simplifier...

si quelqu'un a une idée ;-)

ya'v
 

Statistiques des forums

Discussions
312 305
Messages
2 087 070
Membres
103 455
dernier inscrit
saramachado