AIDE MACRO - traduire francais / anglais

Bonjour,

J'ai un petit souci avec ma boucle de mon codage vba

Je vous explique le principe :

Je voudrais traduire si on trouve :

  • Marié(e) ou PACS en Married
  • Divorcé(e) ou Célibataire ou Veuf(ve) en Single
  • Concubin(e) en Single with partner

Ma boucle marche pour PACS et Célibataire, mais pas pour le reste

Je pense que vba n'aime pas les parenthèses après le mot (ex:Marié(e))

Quelqu'un aurait il une solution ?

Merci de votre aide.

Je vous joint ma boucle

If F6.Range("F" & j).Value = "Marié(e)" Or F6.Range("F" & j).Value = "PACS" Then

F6.Range("F" & j).Value = "Married"

Else

If F6.Range("F" & j).Value = "Concubin(e)" Then

F6.Range("F" & j).Value = "Single with partner"

Else

If F6.Range("F" & j).Value = "Divorcé(e)" Or F6.Range("F" & j).Value = "Célibataire" Or F6.Range("F" & j).Value = "Veuf(ve)" Then

F6.Range("F" & j).Value = "Single"

End If

End If

End If

Bonjour,

Comment est rempli ton tableau ?

Dans les cellules, il est bien marqué Marié(e) ou tu peux avoir Marié ou Mariée ? Idem pour Veuf Ou Veuve ?

Je pense qu'effectivement le problème vient de la, si ce n'est pas écrit exactement de la même façon, la fonction considère la comparaison comme fausse.

En gros, pour chaque possibilité ou il y a plusieurs orthographes, soit tu t'arranges pour que cela soit toujours écrit de la même façon (avec une liste déroulante par exemple) soit dans ta macro, tu rajoutes les tests pour "Marié", "Mariée", "Veuf", "Veuve", "Concubin", "Concubine",...

Cordialement,

Bonjour

Une autre idée

Tu peux faire aussi un tableau à 2 colonnes

Colonne 1 en Français

Colonne 2 en Anglais

Un simple Find fera l'affaire

Cela sera plus facile pour la mise à jour ou pour rajouter des termes à traduire

Bonjour,

zirak : Il y a juste Marié(e) , pas de Marié ou Mariée (pareil pour le reste)

Banzai64 : comment utiliser le find ?

Voulez vous mon fichier pour un exemple plus concret de mon souci ?

Merci de votre aide

Oui Pourquoi pas, cela sera plus simple avec le fichier, car si le contenu a bien la même orthographe, cela devrait marcher.

Bonjour

Ok je me suis un peu trop avancé avec mon Find (c'est possible mais il faut écrire toutes les variantes possibles du mot - et ça ce n'est pas pratique)

Mais essayes ton code modifié

Sub Test()
Dim J As Long

  For J = 2 To 7
    If F6.Range("F" & J).Value = "Marié(e)" Or F6.Range("F" & J).Value = "PACS" Then
      F6.Range("F" & J).Value = "Married"
    ElseIf F6.Range("F" & J).Value = "Concubin(e)" Then
      F6.Range("F" & J).Value = "Single with partner"
    ElseIf F6.Range("F" & J).Value = "Divorcé(e)" Or F6.Range("F" & J).Value = "Célibataire" Or F6.Range("F" & J).Value = "Veuf(ve)" Then
      F6.Range("F" & J).Value = "Single"
    End If
  Next J
End Sub

Bonjour,

Le problème est résolu, je sais pas pourquoi vba n'aime pas réécrire sur une cellule déjà occupé donc j'ai juste décalé sur une autre colonne

Merci de votre aide

Bonjour

kurapiika a écrit :

j'ai juste décalé sur une autre colonne

La macro que j'ai modifiée ne fonctionne pas ?

Bonjour,

Ta macro me donne le même résultat que la mienne.

Bonjour

kurapiika a écrit :

Ta macro me donne le même résultat que la mienne.

Donc celle qui ne fonctionnait pas

Essayes ce fichier

108traduction.zip (9.52 Ko)

Bonjour,

Moi aussi j'ai testé ma macro sur un fichier comme ça (qui marche bien)

C'est juste que sur mon fichier avec x personnes, la macro ne ré-écrit pas par dessus

Donc au final j'ai rajouté une colonne à coté de celle où la situation familiale est écrite et ça marche,

Merci pour ton aide

Rechercher des sujets similaires à "aide macro traduire francais anglais"