OVH Cloud OVH Cloud

Fichier multilangue

8 réponses
Avatar
Tuesmondieu
Bonjour,
Je suis en train de cr=E9er un fichier multilangue, dans lequel on peut
modifier la langue affich=E9 dans toutes les cellules an cliaquant sur
un bouton.
Ca marche nickel, sauf pour les boutons que j'ai sur mes feuilles :

With sheets("Langue")
Set MonDoc =3D Sheets("Index")
MonDoc.Shapes("etape1").Characters.Text =3D .Cells(4,
quelle_langue).Value '=3D Sheets("Langue").Cells(4, quelle_langue).Value
End with

Me balance un erreur.

quelle_langue est un chiffre qui m'indique quelle colonne prendre.

Merci pour votre aide et bonne soir=E9e,

T=2E

8 réponses

Avatar
Michel Gaboly
Bonsoir,

Il faut utiliser TextFrame :

MonDoc.Shapes("etape1").TextFrame.Characters.Text = .Cells(4, quelle_la ngue).Value '= Sheets("Langue").Cells(4,
quelle_langue).Value


Voici un extrait d'une de mes applis :

Private Sub TraductionBoutons()
Dim s As Shape
Langue = FDico.Evaluate("Langue")
For Each s In FStart.Shapes
' La valeur 1 correspond à msoAutoShape. Les symboles des éventuels commentaires appartiennent aussi à la
collection
' Shapes, comme les boutons, mais Type renvois 4, qui corres pond à msoButton.
If s.Type = 1 Then
With s.TextFrame
Select Case s.Name
Case "NewHotel"
.Characters.Text = Traduction( "NouvelHôtel")
Case "BChoix"
.Characters.Text = Traduction( "ChoixHôtel")
Case "BVentesBB", "BVentesBBAuto"
.Characters.Text = Traduction( "VentesBAndB")


J'ai fait une feuille Dico avec une colonne par langue, et j'ai nommé c haque ensemble de 3 cellules sur chaque ligne de
traduction.

Ensuite une fonction, "Traduction" renvoie le texte dans la bonne langue (2 arguments, un nom défini dans la feuille
dico, et le numéro de langue, qui détermine la bonne colonne.



Bonjour,
Je suis en train de créer un fichier multilangue, dans lequel on peut
modifier la langue affiché dans toutes les cellules an cliaquant sur
un bouton.
Ca marche nickel, sauf pour les boutons que j'ai sur mes feuilles :

With sheets("Langue")
Set MonDoc = Sheets("Index")
MonDoc.Shapes("etape1").Characters.Text = .Cells(4,
quelle_langue).Value '= Sheets("Langue").Cells(4, quelle_langue).Valu e
End with

Me balance un erreur.

quelle_langue est un chiffre qui m'indique quelle colonne prendre.

Merci pour votre aide et bonne soirée,

T.




--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
Tuesmondieu
Bonjour Michel,
Merci pour ta réponse, mais est-il possible de le faire sans avoir à
sélectionner chaque forme ?
Comme il y aura plusieurs feuille, j'aurais aimé pouvoir modifier le
texte toutes les formes de toutes mes feuilles, de manière rapide ezst
quasi transparente pour l'utilisateur.
Et j'en profite, mais c'est par paresse : comment marche ta fonction
traduction ?
Merci encore pour ton aide.
T.


Bonsoir,

Il faut utiliser TextFrame :

MonDoc.Shapes("etape1").TextFrame.Characters.Text = .Cells(4, quelle_la ngue).Value '= Sheets("Langue").Cells(4,
quelle_langue).Value


Voici un extrait d'une de mes applis :

Private Sub TraductionBoutons()
Dim s As Shape
Langue = FDico.Evaluate("Langue")
For Each s In FStart.Shapes
' La valeur 1 correspond à msoAutoShape. Les symboles des éventuels commentaires appartiennent aussi à la
collection
' Shapes, comme les boutons, mais Type renvois 4, qui corres pond à msoButton.
If s.Type = 1 Then
With s.TextFrame
Select Case s.Name
Case "NewHotel"
.Characters.Text = Traduction( "NouvelHôtel")
Case "BChoix"
.Characters.Text = Traduction( "ChoixHôtel")
Case "BVentesBB", "BVentesBBAuto"
.Characters.Text = Traduction( "VentesBAndB")


J'ai fait une feuille Dico avec une colonne par langue, et j'ai nommé c haque ensemble de 3 cellules sur chaque ligne de
traduction.

Ensuite une fonction, "Traduction" renvoie le texte dans la bonne langue (2 arguments, un nom défini dans la feuille
dico, et le numéro de langue, qui détermine la bonne colonne.



Bonjour,
Je suis en train de créer un fichier multilangue, dans lequel on peut
modifier la langue affiché dans toutes les cellules an cliaquant sur
un bouton.
Ca marche nickel, sauf pour les boutons que j'ai sur mes feuilles :

With sheets("Langue")
Set MonDoc = Sheets("Index")
MonDoc.Shapes("etape1").Characters.Text = .Cells(4,
quelle_langue).Value '= Sheets("Langue").Cells(4, quelle_langue).Value
End with

Me balance un erreur.

quelle_langue est un chiffre qui m'indique quelle colonne prendre.

Merci pour votre aide et bonne soirée,

T.




--
Cordialement,

Michel Gaboly
www.gaboly.com



Avatar
Michel Gaboly
Bonsoir,

Dans l'exemple de code que je t'indique, il n'y pas de sélection des fo rmes :

For Each s In FStart.Shapes

où FStart est le CodeName d'une feuille du classeur, nommée "Start", qui est la page d'accueil avec les boutons.

Parmi les boutons, 3 drapeaux (images .Gif récupérées sur le Web) p our choisir la langue


Pour la fonction Traduction, elle est on ne peut + simple :

Public Function Traduction(c As String)
Traduction = FDico.Range(c).Cells(1, Langue)
End Function

FDico est le CodeName de la feuille "Dico" où sont regroupées les tra ductions (Col. A français, Col. B italien, Col.C
anglais)

Par exemple avec Langue qui est un numéro, et la plage nommée "Nouvel Hôtel" composée des 3 cellules A50:C50

Traduction("NouvelHôtel")

renverra

"Nouvel hôtel" si Langue = 1
"Nuovo albergo" si Langue = 2
"New hotel" si Langue = 3

Le + long est de devoir mettre à jour la feuille Dico chaque fois qu'on a un un nouveau texte (dans une cellule, un
label de UserForm ou un texte à afficher avec Msgbox).

Voilà.

Bonjour Michel,
Merci pour ta réponse, mais est-il possible de le faire sans avoir à
sélectionner chaque forme ?
Comme il y aura plusieurs feuille, j'aurais aimé pouvoir modifier le
texte toutes les formes de toutes mes feuilles, de manière rapide ezs t
quasi transparente pour l'utilisateur.
Et j'en profite, mais c'est par paresse : comment marche ta fonction
traduction ?
Merci encore pour ton aide.
T.


Bonsoir,

Il faut utiliser TextFrame :

MonDoc.Shapes("etape1").TextFrame.Characters.Text = .Cells(4, quelle _langue).Value '= Sheets("Langue").Cells(4,
quelle_langue).Value


Voici un extrait d'une de mes applis :

Private Sub TraductionBoutons()
Dim s As Shape
Langue = FDico.Evaluate("Langue")
For Each s In FStart.Shapes
' La valeur 1 correspond à msoAutoShape. Les symboles d es éventuels commentaires appartiennent aussi à la
collection
' Shapes, comme les boutons, mais Type renvois 4, qui cor respond à msoButton.
If s.Type = 1 Then
With s.TextFrame
Select Case s.Name
Case "NewHotel"
.Characters.Text = Traducti on("NouvelHôtel")
Case "BChoix"
.Characters.Text = Traducti on("ChoixHôtel")
Case "BVentesBB", "BVentesBBAuto"
.Characters.Text = Traducti on("VentesBAndB")


J'ai fait une feuille Dico avec une colonne par langue, et j'ai nommé chaque ensemble de 3 cellules sur chaque ligne de
traduction.

Ensuite une fonction, "Traduction" renvoie le texte dans la bonne lang ue (2 arguments, un nom défini dans la feuille
dico, et le numéro de langue, qui détermine la bonne colonne.



Bonjour,
Je suis en train de créer un fichier multilangue, dans lequel on pe ut
modifier la langue affiché dans toutes les cellules an cliaquant su r
un bouton.
Ca marche nickel, sauf pour les boutons que j'ai sur mes feuilles :

With sheets("Langue")
Set MonDoc = Sheets("Index")
MonDoc.Shapes("etape1").Characters.Text = .Cells(4,
quelle_langue).Value '= Sheets("Langue").Cells(4, quelle_langue).Va lue
End with

Me balance un erreur.

quelle_langue est un chiffre qui m'indique quelle colonne prendre.

Merci pour votre aide et bonne soirée,

T.



--
Cordialement,

Michel Gaboly
www.gaboly.com





--
Cordialement,

Michel Gaboly
www.gaboly.com



Avatar
Tuesmondieu
Génial !
Merci.


Bonsoir,

Dans l'exemple de code que je t'indique, il n'y pas de sélection des fo rmes :

For Each s In FStart.Shapes

où FStart est le CodeName d'une feuille du classeur, nommée "Start", qui est la page d'accueil avec les boutons.

Parmi les boutons, 3 drapeaux (images .Gif récupérées sur le Web) p our choisir la langue


Pour la fonction Traduction, elle est on ne peut + simple :

Public Function Traduction(c As String)
Traduction = FDico.Range(c).Cells(1, Langue)
End Function

FDico est le CodeName de la feuille "Dico" où sont regroupées les tra ductions (Col. A français, Col. B italien, Col.C
anglais)

Par exemple avec Langue qui est un numéro, et la plage nommée "Nouvel Hôtel" composée des 3 cellules A50:C50

Traduction("NouvelHôtel")

renverra

"Nouvel hôtel" si Langue = 1
"Nuovo albergo" si Langue = 2
"New hotel" si Langue = 3

Le + long est de devoir mettre à jour la feuille Dico chaque fois qu'on a un un nouveau texte (dans une cellule, un
label de UserForm ou un texte à afficher avec Msgbox).

Voilà.

Bonjour Michel,
Merci pour ta réponse, mais est-il possible de le faire sans avoir à
sélectionner chaque forme ?
Comme il y aura plusieurs feuille, j'aurais aimé pouvoir modifier le
texte toutes les formes de toutes mes feuilles, de manière rapide ezst
quasi transparente pour l'utilisateur.
Et j'en profite, mais c'est par paresse : comment marche ta fonction
traduction ?
Merci encore pour ton aide.
T.


Bonsoir,

Il faut utiliser TextFrame :

MonDoc.Shapes("etape1").TextFrame.Characters.Text = .Cells(4, quelle _langue).Value '= Sheets("Langue").Cells(4,
quelle_langue).Value


Voici un extrait d'une de mes applis :

Private Sub TraductionBoutons()
Dim s As Shape
Langue = FDico.Evaluate("Langue")
For Each s In FStart.Shapes
' La valeur 1 correspond à msoAutoShape. Les symboles d es éventuels commentaires appartiennent aussi à la
collection
' Shapes, comme les boutons, mais Type renvois 4, qui cor respond à msoButton.
If s.Type = 1 Then
With s.TextFrame
Select Case s.Name
Case "NewHotel"
.Characters.Text = Traducti on("NouvelHôtel")
Case "BChoix"
.Characters.Text = Traducti on("ChoixHôtel")
Case "BVentesBB", "BVentesBBAuto"
.Characters.Text = Traducti on("VentesBAndB")


J'ai fait une feuille Dico avec une colonne par langue, et j'ai nomm é chaque ensemble de 3 cellules sur chaque ligne de
traduction.

Ensuite une fonction, "Traduction" renvoie le texte dans la bonne lang ue (2 arguments, un nom défini dans la feuille
dico, et le numéro de langue, qui détermine la bonne colonne.



Bonjour,
Je suis en train de créer un fichier multilangue, dans lequel on pe ut
modifier la langue affiché dans toutes les cellules an cliaquant sur
un bouton.
Ca marche nickel, sauf pour les boutons que j'ai sur mes feuilles :

With sheets("Langue")
Set MonDoc = Sheets("Index")
MonDoc.Shapes("etape1").Characters.Text = .Cells(4,
quelle_langue).Value '= Sheets("Langue").Cells(4, quelle_langue).Va lue
End with

Me balance un erreur.

quelle_langue est un chiffre qui m'indique quelle colonne prendre.

Merci pour votre aide et bonne soirée,

T.



--
Cordialement,

Michel Gaboly
www.gaboly.com





--
Cordialement,

Michel Gaboly
www.gaboly.com





Avatar
Michel Gaboly
Quand même pas ;-)))

Génial !
Merci.


Bonsoir,

Dans l'exemple de code que je t'indique, il n'y pas de sélection des formes :

For Each s In FStart.Shapes

où FStart est le CodeName d'une feuille du classeur, nommée "Start ", qui est la page d'accueil avec les boutons.

Parmi les boutons, 3 drapeaux (images .Gif récupérées sur le Web ) pour choisir la langue


Pour la fonction Traduction, elle est on ne peut + simple :

Public Function Traduction(c As String)
Traduction = FDico.Range(c).Cells(1, Langue)
End Function

FDico est le CodeName de la feuille "Dico" où sont regroupées les traductions (Col. A français, Col. B italien, Col.C
anglais)

Par exemple avec Langue qui est un numéro, et la plage nommée "Nou velHôtel" composée des 3 cellules A50:C50

Traduction("NouvelHôtel")

renverra

"Nouvel hôtel" si Langue = 1
"Nuovo albergo" si Langue = 2
"New hotel" si Langue = 3

Le + long est de devoir mettre à jour la feuille Dico chaque fois qu 'on a un un nouveau texte (dans une cellule, un
label de UserForm ou un texte à afficher avec Msgbox).

Voilà.

Bonjour Michel,
Merci pour ta réponse, mais est-il possible de le faire sans avoir à
sélectionner chaque forme ?
Comme il y aura plusieurs feuille, j'aurais aimé pouvoir modifier l e
texte toutes les formes de toutes mes feuilles, de manière rapide e zst
quasi transparente pour l'utilisateur.
Et j'en profite, mais c'est par paresse : comment marche ta fonction
traduction ?
Merci encore pour ton aide.
T.


Bonsoir,

Il faut utiliser TextFrame :

MonDoc.Shapes("etape1").TextFrame.Characters.Text = .Cells(4, quel le_langue).Value '= Sheets("Langue").Cells(4,
quelle_langue).Value


Voici un extrait d'une de mes applis :

Private Sub TraductionBoutons()
Dim s As Shape
Langue = FDico.Evaluate("Langue")
For Each s In FStart.Shapes
' La valeur 1 correspond à msoAutoShape. Les symboles des éventuels commentaires appartiennent aussi à la
collection
' Shapes, comme les boutons, mais Type renvois 4, qui c orrespond à msoButton.
If s.Type = 1 Then
With s.TextFrame
Select Case s.Name
Case "NewHotel"
.Characters.Text = Traduc tion("NouvelHôtel")
Case "BChoix"
.Characters.Text = Traduc tion("ChoixHôtel")
Case "BVentesBB", "BVentesBBAut o"
.Characters.Text = Traduc tion("VentesBAndB")


J'ai fait une feuille Dico avec une colonne par langue, et j'ai nomm é chaque ensemble de 3 cellules sur chaque ligne de
traduction.

Ensuite une fonction, "Traduction" renvoie le texte dans la bonne la ngue (2 arguments, un nom défini dans la feuille
dico, et le numéro de langue, qui détermine la bonne colonne.



Bonjour,
Je suis en train de créer un fichier multilangue, dans lequel on peut
modifier la langue affiché dans toutes les cellules an cliaquant sur
un bouton.
Ca marche nickel, sauf pour les boutons que j'ai sur mes feuilles :

With sheets("Langue")
Set MonDoc = Sheets("Index")
MonDoc.Shapes("etape1").Characters.Text = .Cells(4,
quelle_langue).Value '= Sheets("Langue").Cells(4, quelle_langue). Value
End with

Me balance un erreur.

quelle_langue est un chiffre qui m'indique quelle colonne prendre.

Merci pour votre aide et bonne soirée,

T.

--

Cordialement,

Michel Gaboly
www.gaboly.com



--
Cordialement,

Michel Gaboly
www.gaboly.com





--
Cordialement,

Michel Gaboly
www.gaboly.com





Avatar
Tuesmondieu
De quoi ????


Quand même pas ;-)))

Génial !
Merci.


Bonsoir,

Dans l'exemple de code que je t'indique, il n'y pas de sélection des formes :

For Each s In FStart.Shapes

où FStart est le CodeName d'une feuille du classeur, nommée "Start ", qui est la page d'accueil avec les boutons.

Parmi les boutons, 3 drapeaux (images .Gif récupérées sur le Web ) pour choisir la langue


Pour la fonction Traduction, elle est on ne peut + simple :

Public Function Traduction(c As String)
Traduction = FDico.Range(c).Cells(1, Langue)
End Function

FDico est le CodeName de la feuille "Dico" où sont regroupées les traductions (Col. A français, Col. B italien, Col.C
anglais)

Par exemple avec Langue qui est un numéro, et la plage nommée "Nou velHôtel" composée des 3 cellules A50:C50

Traduction("NouvelHôtel")

renverra

"Nouvel hôtel" si Langue = 1
"Nuovo albergo" si Langue = 2
"New hotel" si Langue = 3

Le + long est de devoir mettre à jour la feuille Dico chaque fois qu 'on a un un nouveau texte (dans une cellule, un
label de UserForm ou un texte à afficher avec Msgbox).

Voilà.

Bonjour Michel,
Merci pour ta réponse, mais est-il possible de le faire sans avoir à
sélectionner chaque forme ?
Comme il y aura plusieurs feuille, j'aurais aimé pouvoir modifier le
texte toutes les formes de toutes mes feuilles, de manière rapide e zst
quasi transparente pour l'utilisateur.
Et j'en profite, mais c'est par paresse : comment marche ta fonction
traduction ?
Merci encore pour ton aide.
T.


Bonsoir,

Il faut utiliser TextFrame :

MonDoc.Shapes("etape1").TextFrame.Characters.Text = .Cells(4, quel le_langue).Value '= Sheets("Langue").Cells(4,
quelle_langue).Value


Voici un extrait d'une de mes applis :

Private Sub TraductionBoutons()
Dim s As Shape
Langue = FDico.Evaluate("Langue")
For Each s In FStart.Shapes
' La valeur 1 correspond à msoAutoShape. Les symboles des éventuels commentaires appartiennent aussi à la
collection
' Shapes, comme les boutons, mais Type renvois 4, qui c orrespond à msoButton.
If s.Type = 1 Then
With s.TextFrame
Select Case s.Name
Case "NewHotel"
.Characters.Text = Traduc tion("NouvelHôtel")
Case "BChoix"
.Characters.Text = Traduc tion("ChoixHôtel")
Case "BVentesBB", "BVentesBBAut o"
.Characters.Text = Traduc tion("VentesBAndB")


J'ai fait une feuille Dico avec une colonne par langue, et j'ai nomm é chaque ensemble de 3 cellules sur chaque ligne de
traduction.

Ensuite une fonction, "Traduction" renvoie le texte dans la bonne la ngue (2 arguments, un nom défini dans la feuille
dico, et le numéro de langue, qui détermine la bonne colonne.



Bonjour,
Je suis en train de créer un fichier multilangue, dans lequel on peut
modifier la langue affiché dans toutes les cellules an cliaquant sur
un bouton.
Ca marche nickel, sauf pour les boutons que j'ai sur mes feuilles :

With sheets("Langue")
Set MonDoc = Sheets("Index")
MonDoc.Shapes("etape1").Characters.Text = .Cells(4,
quelle_langue).Value '= Sheets("Langue").Cells(4, quelle_langue). Value
End with

Me balance un erreur.

quelle_langue est un chiffre qui m'indique quelle colonne prendre.

Merci pour votre aide et bonne soirée,

T.

--

Cordialement,

Michel Gaboly
www.gaboly.com



--
Cordialement,

Michel Gaboly
www.gaboly.com





--
Cordialement,

Michel Gaboly
www.gaboly.com







Avatar
Jacquouille
Sissi.

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"Michel Gaboly" a écrit dans le message de news:

Quand même pas ;-)))

Génial !
Merci.


Bonsoir,

Dans l'exemple de code que je t'indique, il n'y pas de sélection des
formes :

For Each s In FStart.Shapes

où FStart est le CodeName d'une feuille du classeur, nommée "Start", qui
est la page d'accueil avec les boutons.

Parmi les boutons, 3 drapeaux (images .Gif récupérées sur le Web) pour
choisir la langue


Pour la fonction Traduction, elle est on ne peut + simple :

Public Function Traduction(c As String)
Traduction = FDico.Range(c).Cells(1, Langue)
End Function

FDico est le CodeName de la feuille "Dico" où sont regroupées les
traductions (Col. A français, Col. B italien, Col.C
anglais)

Par exemple avec Langue qui est un numéro, et la plage nommée
"NouvelHôtel" composée des 3 cellules A50:C50

Traduction("NouvelHôtel")

renverra

"Nouvel hôtel" si Langue = 1
"Nuovo albergo" si Langue = 2
"New hotel" si Langue = 3

Le + long est de devoir mettre à jour la feuille Dico chaque fois qu'on a
un un nouveau texte (dans une cellule, un
label de UserForm ou un texte à afficher avec Msgbox).

Voilà.

Bonjour Michel,
Merci pour ta réponse, mais est-il possible de le faire sans avoir à
sélectionner chaque forme ?
Comme il y aura plusieurs feuille, j'aurais aimé pouvoir modifier le
texte toutes les formes de toutes mes feuilles, de manière rapide ezst
quasi transparente pour l'utilisateur.
Et j'en profite, mais c'est par paresse : comment marche ta fonction
traduction ?
Merci encore pour ton aide.
T.


Bonsoir,

Il faut utiliser TextFrame :

MonDoc.Shapes("etape1").TextFrame.Characters.Text = .Cells(4,
quelle_langue).Value '= Sheets("Langue").Cells(4,
quelle_langue).Value


Voici un extrait d'une de mes applis :

Private Sub TraductionBoutons()
Dim s As Shape
Langue = FDico.Evaluate("Langue")
For Each s In FStart.Shapes
' La valeur 1 correspond à msoAutoShape. Les symboles des
éventuels commentaires appartiennent aussi à la
collection
' Shapes, comme les boutons, mais Type renvois 4, qui
correspond à msoButton.
If s.Type = 1 Then
With s.TextFrame
Select Case s.Name
Case "NewHotel"
.Characters.Text =
Traduction("NouvelHôtel")
Case "BChoix"
.Characters.Text =
Traduction("ChoixHôtel")
Case "BVentesBB", "BVentesBBAuto"
.Characters.Text =
Traduction("VentesBAndB")


J'ai fait une feuille Dico avec une colonne par langue, et j'ai nommé
chaque ensemble de 3 cellules sur chaque ligne de
traduction.

Ensuite une fonction, "Traduction" renvoie le texte dans la bonne
langue (2 arguments, un nom défini dans la feuille
dico, et le numéro de langue, qui détermine la bonne colonne.



Bonjour,
Je suis en train de créer un fichier multilangue, dans lequel on peut
modifier la langue affiché dans toutes les cellules an cliaquant sur
un bouton.
Ca marche nickel, sauf pour les boutons que j'ai sur mes feuilles :

With sheets("Langue")
Set MonDoc = Sheets("Index")
MonDoc.Shapes("etape1").Characters.Text = .Cells(4,
quelle_langue).Value '= Sheets("Langue").Cells(4, quelle_langue).Value
End with

Me balance un erreur.

quelle_langue est un chiffre qui m'indique quelle colonne prendre.

Merci pour votre aide et bonne soirée,

T.

--

Cordialement,

Michel Gaboly
www.gaboly.com



--
Cordialement,

Michel Gaboly
www.gaboly.com





--
Cordialement,

Michel Gaboly
www.gaboly.com





Avatar
Michel Gaboly
-))

Sissi.




--
Cordialement,

Michel Gaboly
www.gaboly.com