Code vb SOS

Résolu
lobnaw Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
bonjour,
j'ai trouver ce code ici, il m'a vraiment aidé mais malheureusement il ne remplace que des textes j'ai besoin qu'il remplace une chaine de caractère, est ce possible que quelqu'un peut m'aider, c'est vraiment urgent

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Dim txt$, i As Integer, trad As Variant
txt = Application.Trim(Target)
For i = 0 To UBound(Split(txt, " "))
trad = Application.VLookup(Split(txt, " ")(i), Sheets("dico").Range("A:B"), 2, 0)
If Not IsError(trad) Then txt = Replace(txt, Split(txt, " ")(i), trad)
Next
Application.EnableEvents = False
Target = txt
Application.EnableEvents = True
End Sub
A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

l ne remplace que des textes j'ai besoin qu'il remplace une chaine de caractère
Un texte n'est rien d'autre qu'une chaine de caractères. Non?

Soit donc plus explicite et dis nous ce que tu souhaites faire exactement.
Un fichier serait également le bienvenu. Pour cela, utilise un site de pièce jointe comme cjoint et reviens coller le lien fourni ici.
0
lobnaw Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
merci pijaku
j'arrive pas à joindre le fichier
bon voilà la situation: j'ai plusieurs feuilles contenant des nom des établissements en arabes je veux ajouter au classeur une autre feuille qui contient la liste de tous les établissements en deux version arabe et français et je veux créer un macro qui permet de remplacer ce qui est en arabe par celui qui lui corresponds en français dans la liste.
dans le code "dico" est la feuille qui contient la liste en deux versions et le résultat doit etre affiché dans la feuille1
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Que se passe t'il lorsque tu le fais sans macro?

Supposons, dans n'importe qu'elle feuille de ton classeur :
- en A1 : colle un "mot" (chaine de caractère) extraite de ton nom d'établissement en Arabe,
- en B1 : saisir la formule :
=RECHERCHEV(A1;dico!A:B;2;FAUX)
0
lobnaw Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
il y'a plusieurs feuilles et dans chacune il y'a plusieurs tableau, je veux utiliser un macro pour gagner le temps sinon rechercher remplacer fera l'affaire...
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761 > lobnaw Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Peux tu essayer ce que je t'ai demandé et me dire quel résultat tu obtiens s'il te plait?
0
lobnaw Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
ça donne #N/A
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761 > lobnaw Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Donc, la RECHERCHEV de chaines de caractères en arabe ne fonctionne pas. Pourquoi? je ne le sais pas, mais c'est ce qu'il te faut trouver pour que ta macro fonctionne. En effet, ta macro ne fait que des RECHERCHEV en boucle (Application.VLOOKUP).
0