Problème de mise en forme qui ne suit pas

Bonjour, j'ai un fichier excel sur lequel la mise en forme du texte ne suit pas...

Je m'explique :

En A1, j'ai une case ou l'on choisit si on veut que le fichier s'affiche en français ou en englais. De cette case dépend tout les textes présent. Pour les cellules ou il y a peu de texte, une formule du genre :

=SI(A1="français";"Bonjour, tu es prêt?";"Hi, are you ready?")

ca suffit.

Par contre j'ai certaines cellules bourrées de texte qui rend inutilisable cette formule

Je dois donc écrire "bonjour, tu es prêt?" en B1 et "Hi are you ready?" en B2 et utiliser cette formule :

=SI'A1="français";B1;B2)

Le problème, c'est que j'ai des mots écris en gras, d'autres en rouge et avec ce genre de bricolage, la mise en forme ne suit pas... Normal? Y a t'il un autre moyen?

Je pensais à une macro peut etre (avant de me taper, il faut savoir que de macro, je ne connais que le nom! je ne sais pas à quoi ca ressemble, comment ca marche... ni même à quoi ca sert!!)

Merci pour votre aide!!

Gigi

Bonjour gigi777

Je ne comprends pas car les formats sont insensibles aux formules... ou alors, il me faudrait d'autres explications, voire un exemple sur un bout de fichier.

Cordialement

Voila Amadeus

https://www.excel-pratique.com/~files/doc/TaZtOClasseur1.xls

Dans le 1er cas, c'est la formule utilisée pour un texte court

Dans le 2e cas, c'est quand j'ai un texte long

A la fin, c'est un p'tit exemple pour te montrer ce qui ne va pas, teste court ou long...

En espérant que ca éclaire ta lanterne, car la mienne ne l'est pas trop avec excel!! lol

Re bonjour

Pour ce genre d'exercice il faut effectivement une macro, et là, désolé, ce n'est pas mon truc. Laissons cela aux spécialiste VBA

Cordialement

ok, merci quand même de t'être penché sur mon problème!!

Bonjour

Voilà une petite macro qui permet de faire une copie (texte et format) des cellules originales.

Chaque cellule destination porte une nom Texte1, Texte2, ... et les cellules originales les mêmes noms avec l'extention F (français) ou E (anglais). Exemple Texte1F, Texte1E, Texte2F, ...

Avec la fonction 'Worksheet_Change', la macro s'enclenche automatiquement lorsqu'il y a une cellule qui change. On regarde alors quelle est la cellule modifiée et si elle correspond à celle du language, on recopie les cellules originales dans les cellules destinations.

https://www.excel-pratique.com/~files/doc/STqASTaZtOClasseur1.xls

J'ai mis les textes originaux sur une autre page, ainsi c'est plus discret pour les autres utilisateurs.

AU plaisir de te relire

Daniel

Bonsoir gigi, salut Dan

Une autre version

https://www.excel-pratique.com/~files/doc/AnglaisFranc.xls

Cordialement

Merci Dan et Amadeus!!

Je vais regarder ca dans la journée (ca sert d'avoir rien a faire au boutlot! lol) et vous tiendrai au courant ce soir (comme ce sera la 1ere fois que je vais voir une macro, j'aurai peut etre des questions, on sait jamais!!)

Encore merci pour votre aide!

Gigi

Bonjour, salut Amadéus et Dan,

Une autre façon de faire en pièce jointe.

Menu Affichages / Affichages personnalisés / choisir la langue

Il existe une petite fenêtre à copier / glisser dans la barre d'outils qui permet un choix direct.

https://www.excel-pratique.com/~files/doc/gigi777.xls

Amadeus, merci pour ta version... mais j'avoue que je n'ai pas réussi a trouver le code! lol

Du coup, j'ai utilisé la versin de Dan

Dre, ta version a toi est pas mal aussi... mais comment se cofigure t elle?? Par exemple, a ce jour, il n'y a que francais et anglais, mais si demain une 3e langue arrive, comment l'intégrer? (j'avoue que je rentre juste, et que j'ai pas encore trifouillé ton fichier ^^)

Re,

Menu Affichage / Affichages permet d'enregistrer la mise en page telle que définie sur la feuille, donc avec lignes et colonnes masquées.

ok, mais comment ca se parametre, je veux dire dans mon cas, ou est ce que tu dis au logiciel que si l'affichage choisis est "francais", le texte en francais doit s'afficher? (et pareil pour l'anglais)

Autre question (plus ou moins lié mon histoire de langue, mais je pense connaitre la réponse...) :

J'y crois pas trop, mais est il possible de changer le nom des feuilles selon la langue choisie? Ca m'étonnerait, a cause des liens hypertextes qui peuvent se faire d'une feuille à l'autre (comme c'est le cas dans mon fichier...)

Re,

Je ne sais vraiment pas comment te l'expliquer plus clairement !

Ecris tes textes, dans le nombre de langues que tu souhaites, même vingt ou plus si nécessaire, dans des cellules les unes à côté des autres, ou les unes sous les autres.

Ensuite, suivant la langue que tu voir s'afficher, tu masques les lignes et/ou les colonnes qui comportent les autres langues et tu enregistres cette vue sous le menu Affichage / Affichages en la nommant du nom que tu choisis, dans mon exemple "français" et "anglais"

Regarde dans les en-têtes de lignes (le long du bord gauche de ton écran) et tu verras qu'il y a des numéros qui manquent dans le numérotation, ce sont les lignes masquées qui contiennent l'autre langue.

Pour l'impression pas de problème puisque Excel n'imprime que ce qui est visible.

Tu peux également enregistrer une vue qui affiche toutes les lignes et colonnes, en la nommant par exemple "complet" ou "multilingue" ou ...

Pour les onglets, effectivement pas moyen de les modifier automatiquement.

Je me suis toujours débrouillé en employant des raccourcis compréhensibles dans plusieurs langues, par exemple "calc" pour "calcul" et calculate" ou "pri" pour "prix" et "price".

ok, la j'ai compris!!!

mais je vais continuer dans la version de DAN :

dans la tienne comme dans la sienne, je dois de toute façon taper le texte les toutes les langues. La différence c'est que sa méthode utilise une macro ( que je n'aurai qu'a modifier pour rajouter les langues en plus)

Ta méthode est pas mal aussi, mais ca collera pas pour mon fichier... a moins que je ne revois toute la mise en page de la 20aine de page qui le composent car j'ai, entr'autre, des tableaux dont le contenu doit s'afficher en francais ou en angleis mais en face des textes se trouvent des valeurs (issues de formules dont le jour ou je dois modifier 1 formule, ... )

Enfin, en tout cas, merci à DAN, AMADEUS et à toi aussi

Peut etre que vous r'entendrez parler de moi et de mon fichier!! lol !

Débutant sous EXCEL (ca fait env. 1 an que je m'y suis mis), j'ai encore beaucoup à découvrir!! et ce site fait d'ores et déja partie de mes favoris (je ne le connaissais pas avant de laisser mon 1er topic ici)

A bientot et encore merci!!

Gigi

DAN, voila mon problème avec ta macro :

https://www.excel-pratique.com/~files/doc/HWjVvSTqASTaZtOClasseur1.xls

J'ai "Texte5" en feuille3. Du coup, la macro buggue arrivée au texte 4 (puisque ce n'est plus la même feuille d'origine)

Comment puis je faire?

Bonjour Gigi

Voilà, je suis arrivé à résoudre ton problème.

https://www.excel-pratique.com/~files/doc/FRb8sTaZtOClasseur1.xls

La difficulté, dans cet exemple est faire correspondre les cellules sources et les cellules destinations.

Alors, pour obtenir cette correspondance, il a fallut organiser d'abord les cellules sources contenant les textes originaux et leur affecter une adresse de destination.

Donc, tous les textes d'une langue se trouvent les uns sous les autres par colonne avec, en entête de colonne, le nom exact de la langue.

Une fois tous ces textes organisés, il faut leur affecter une adresse de destination selon colonne A ou B.

Dans la colonne A (version facile à faire), j'ai des adresses fixes. Pour l'obtenir, il suffit d'écrire '=', puis aller choisir l'adresse de destination. Ensuite, on édite la cellule et on enlève l' '='. C'est tout !

Dans la colonne B (version complexe), le nom de l'adresse change si on déplace la cellule, par exemple.

Lorsque tout ceci est préparé, la macro va rechercher la colonne correspondant à la langue, puis va lire la colonne des adresses définie par 'ColonneAdresse'.

Tous les textes sont ainsi recopiés à leur place de destination indépendemment du nombre de feuilles.

Meilleures salutations

Dan

merci, je testerai ca demain et te tiendrai au courant

Gigi

je viens de jeter un oeil sur ton fichier... Tu vas dire que je suis casses cou***** : je te l'accorde!!

Ce que tu m'as fais est sympa, mais c'est pas trop ce que j'attend... car sur la feuille 1, dès que tu change la case francais/anglais, tu bascules directement sur la feuille3... Du coup, tu es obligé de revenir manuellement sur la feuille 1 pour lire son contenu...

Autre chose, mon fichier comporte une 20aine de feuilles!! ca complique un peu plus la donne...

Comme il est trop gros pour le mettre ici, si tu penses avoir une idée (je ne veux pas non plus monopoliser ton temps libre!!), je peux te l'envoyer par email. Il te suffit (toi ou si quelqu'un d'autre se penche sur le sujet) de me contacter ici : domercq.ghislain@neuf.fr

Gigi

Salut Gigi

Pour retourner à la feuille1, il te suffit de mémoriser l'endroit où tu étais avant le démarrage de la macro

If Target.Address = Range("Language").Address Then

FeuilleActive = ActiveSheet.Name

Puis, de retourner à cette place à la fin de celle-ci

Sheets(FeuilleActive).Select

ActiveSheet.Range("Language").Select

Voilà les 2-3 lignes à modifier dans le code

Salutations

Daniel

Tu ne me gène pas lorsque tu poses des questions pour améliorer le prgm. On est là pour s'entraider.

Salut Dan, et les autres

Merci, ta macro marche bien (grâce au code de la 1ere, j'ai pas trop bataillé pour la corriger ^^

A priori, ca marche

Par contre, j'ai un p'tit problème avec la macro :

chez moi, sous excel 2003, ca marche impeccable mais au boulot (j'ai pas pensé a voir la version mais je crois que c'est 2003 aussi, la macro plante dans 95% des cas... Ca peut venir de quoi?

Rechercher des sujets similaires à "probleme mise forme qui suit pas"