Rechercher-Remplacer dans plusieurs feuilles et sur plusieurs termes

sdevers

XLDnaute Nouveau
Bonjour chers forumeurs,

Je vous explique le but à atteindre: j'ai un fichier excel qui est à traduire dans trois langues. Via un petit formulaire, l'utilisateur décide de la langue dans laquelle il veut travailler aujourd'hui. La langue est ensuite envoyée vers une cellule C1 de la sheet "data". Le 1 pour le Français, le 2 pour le Néerlandais et le 3 pour l'Anglais.

J'ai une autre feuille où j'ai traduit tous les termes de toutes les feuilles dans les 3 langues. Par défaut mon fichier est en français mais j'ai déjà créé les tables de concordance dans la sheet "traduction". J'ai plus de 500 traductions en tout...

Mon but serait de créer une macro qui ferait un rechercher/remplacer pour tous les termes de ma colonne A de ma sheet "traduction" (la colonne A étant celle en français) et qui remplacerait ces termes dans toutes les autres pages de mon classeur. Evidemment, le rechercher/remplacer serait influencé par le choix de la langue (2ème colonne pour le néerlandais et 3ème colonne pour l'anglais).

J'ai vu sur différents forums (celui-ci et d'autres) les explications concernant la macro rechercher/remplacer mais je ne vois pas comment je l'adapterais pour qu'il choississe le premier terme de ma colonne A de la sheet "traduction", le remplace partout puis passe au 2ème terme, etc.

Enfin si, j'ai un début de solution mais ça consisterait à copier 500 fois ma formule. Je suppose que ce n'est pas la bonne solution...
J'avais au départ pensé changer les termes dans toutes mes sheets en utilisant une fonction index (avec des fonctions equiv) mais ça veut dire que je dois adapter toutes mes pages. De nouveau ça serait fastidieux. Et puis, ça m'obligerait à modifier la formule si je fais des ajouts par la suite alors qu'avec une macro, je pourrais me contenter de venir ajouter une ligne à ma sheet "traduction" et elle serait automatiquement adaptée avec mon rechercher/remplacer.

Je vous annexe juste trois pages de mon fichier, la page "data" avec juste le choix de la langue, celle avec toutes les traductions et une des pages de contenu qui devra être traduite. Il y a des liens qui ne fonctionneront plus pour vous mais c'est sans importance pour le point qui nous occupe :D Vous n'avez pas le formulaire avec le choix de la langue. Celui-ci est déjà plein de macros et je ne souhaitait pas vous encombrer ;) Vous avez juste la première ligne avec le choix de la langue.

Je vous remercie d'avance pour vos solutions ou vos idées. Toute amélioration est bonne à prendre.

Bonne soirée à vous,
 

Pièces jointes

  • exemple traduction.xlsx
    54.6 KB · Affichages: 74

sdevers

XLDnaute Nouveau
Re : Rechercher-Remplacer dans plusieurs feuilles et sur plusieurs termes

Bonjour CPk et les autres,

Je ne sais pas si je dois m'en réjouir mais j'ai visiblement réussi à te poser une colle ;)

Lorsque j'ajoute le On Error Resume Next, ça ne donne plus du tout le même résultat. Dans le dernier fichier que j'ai envoyé, il me traduit bizarrement les pages "evolution" et "dividende" sans que je n'arrive à expliquer pourquoi (pour le moment).

J'ai fait le test en ajoutant ces deux sheets dans mon ancien fichier de test, et je me rend compte que ce sont elles qui posent problème. Ma procédure fonctionne parfaitement sans ces feuilles mais dès que je les ajoute (l'une, l'autre ou les deux), le problème revient.

Je suis entrain de chercher pourquoi. Il n'y a pourtant rien de différent (a priori) sur ces feuilles...

Si je trouve, je ferai partager ma découverte...

A+
 

sdevers

XLDnaute Nouveau
Re : Rechercher-Remplacer dans plusieurs feuilles et sur plusieurs termes

J'ai un début de réponse: ces deux feuilles contiennent des formules "Bob-OLE". Bob-OLE est en fait une macro développée par l'éditeur de notre logiciel comptable qui permet de faire le lien entre le logiciel comptable et Excel.
Si je supprime toutes les formules "Bob-OLE", la macro fonctionne à nouveau... reste à comprendre pourquoi.
 

CPk

XLDnaute Impliqué
Re : Rechercher-Remplacer dans plusieurs feuilles et sur plusieurs termes

Bonjour, je pense qu'il faut se poser les questions suivantes : le truc "bob OLE" fait quoi ? à quel moment ? et sur quelle cellule? Car s'il vient perturber le fonctionnement de l'autre c'est qu'il y a zone commune d'interaction.

Peut-être faudrait il faire une cartographie du fichier pour savoir a quel moment qui fait quoi et pouvoir faire intervenir chaque macro en temps et en heure pour éviter un téléscopage (?)

D'autre parts, dans la feuille dividende, certains Mots/groupes de mot ne sont pas traduit car ils n'existent pas dans la feuille traduction.
 

sdevers

XLDnaute Nouveau
Re : Rechercher-Remplacer dans plusieurs feuilles et sur plusieurs termes

Re,

Je pense que j'ai trouvé d'où vient mon message d'erreur Type mismatch. En fait, il survient dans chaque feuille où une formule renvoie un message d'erreur:
- evolution (si on ne fait pas le lien avec Bob-OLE (macro complémentaire faisant le lien entre mon programme de comptabilité et Excel et grâce à laquelle je peux récupérer automatiquement des données). Si elle n'est pas active, elle renvoie un message #NAME?)
- dividende (idem)
- tax1 (4 formules renvoie actuellement #DIV/0!) car je n'ai encore rien complété comme données. Division par 0 impossible.
- tax4 (dans ma colonne AK, il y a une autre division par 0 car les données ne sont pas complétées).

Si je modifie ces données pour qu'elles ne renvoient pas de message d'erreur, ma macro passe sans difficultés.

Pour les divisions par 0, je peux créer un If (... = 0; 0; formule) directement dans Excel pour qu'elles n'affichent jamais de message d'erreur. Par contre, pour le lien avec Bob-OLE, la décision appartient à l'utilisateur de lier ou non le fichier Excel.

Avec ton code CPk (On Error Resume Next), ça me modifie certaines formules (pourquoi certaines, je ne sais pas encore). Est-ce qu'il existe une alternative en VBA?

Pour répondre à ta dernière question, Bob-OLE est une macro complémentaire qui s'ouvre au démarrage d'Excel, avant même mes macros. Je n'ai pas le droit d'y toucher - responsabilité de notre département IT - (et a priori ça ne devrait pas me gêner).

Bien à toi,
 

CPk

XLDnaute Impliqué
Re : Rechercher-Remplacer dans plusieurs feuilles et sur plusieurs termes

Bonjour, pour le moment je rame complètement. La macro s'arrête à différent endroit sans trop que je ne sache pourquoi.
Petit point que j'ai relevé : dans la feuille traduction, en A1 il y a d'écrit : "Référence" cela pose des problèmes pour la traduction car il y en a un autre en colonne B , du coup la macro s'arrête sur le premier qu'elle trouve.
 
Dernière modification par un modérateur:

CPk

XLDnaute Impliqué
Re : Rechercher-Remplacer dans plusieurs feuilles et sur plusieurs termes

Bonjour, celle-ci est fonctionnelle.


Sub traduction()Dim Ws As Worksheet
For Each Ws In ActiveWorkbook.Sheets
If Not Ws.Name = "data" And Not Ws.Name = "traductions" And Not Ws.Name = "background" Then
Dim c As Range
colf = Sheet03.Range("D1")
For Each c In Ws.UsedRange
On Error Resume Next
If c.Value <> "" And Left(c, 1) <> "=" And Left(c, 1) <> "+" Then
Set trouve = Sheet02.[A1].CurrentRegion.Find(c, lookat:=xlWhole)
If Not trouve Is Nothing Then
c = Sheet02.Cells(trouve.Row, colf + 1)
End If
End If
Next c
End If
Next Ws
End Sub

Par contre dans la feuille traductions en cellule A1 il faut changer "Référence" par un autre nom car cela pose des problèmes pour la traduction.
 

Discussions similaires

Statistiques des forums

Discussions
315 094
Messages
2 116 146
Membres
112 669
dernier inscrit
Guigui2502