/ / Fonction de remplacement allemand - excel, vba, excel-vba, excel-formula

Fonction de remplacement allemand - excel, vba, excel-vba, excel-formula

J'ai utilisé une fonction de remplacement manuellement tousle temps, qui a bien fonctionné mais a été très lent. Par conséquent, je veux le changer maintenant en macro mais quand j'essaye de l'insérer dans mon code cela ne fonctionne pas; juste une partie du code est dans la bonne ligne dans le développeur (ici dans stackoverflow il fonctionne comme vous pouvez voir ci-dessous) et le reste de la fonction est collé aux lignes suivantes.

Ceci est mon code:

Tabelle1.Range("H2:H20001").Formula.Local =
"=WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WENN(G2=""___"";""___"";GROSS2(F2));
""Mr "";"""");
""Mrs "";"""");
""Dr. "";"""");
""Mba "";"""");
""Di "";"""");
""MSc "";"""");
""Msc "";"""");
""Kr "";"""");
""Gp%"";""general partner"");
""mbh"";""mbH"");
""Mbh"";""mbH"");
""M.B.H."";""m.b.H."");
"" Kg"";"" KG"");
"" Ag "";"" AG "");
"" Og "";"" OG "");
"" Sa "";"" SA "");
"" Se "";"" SE "");
"" Ab "";"" AB "");
"" Inc"";"" Inc."");
"" Ltd"";"" Ltd."");
""D.O.O."";""d.o.o."");
""S.R.L."";""S.r.l."");
""S.Ar.l."";""SARL"");
"" Sarl"";"" SARL"");
""S.P.A."";""S.p.A."");
"" Spa"";"" S.p.A."");
""S.p.A.r"";""Spar"");
"""S"";"""s"");
""Self Owned"";""Self-Owned"");
""Oesterreich"";""Österreich"");
""Oö"";""OÖ"");
""Nö"";""NÖ"");
""Aws"";""AWS"");
""Foerderung"";""Förderung"");
""Mit "";""mit "");
""Beschränkt"";""beschränkt"");
"" Innovative"";"" innovative"");
""Und "";""und "");
""Von "";""von "");
""Für "";""für "");
""Zur "";""zur "");
""Der "";""der "");
""Des "";""des "");
""Das "";""das "");
""U. "";""u. "");
""Buergerlich"";""bürgerlich"");
""Bürgerlich"";""bürgerlich"");
"".At"";"".at"");
"".De"";"".de"");
"".Ch"";"".ch"");
"".Se"";"".se"");
""Ii"";""II"");
""Iii"";""III"");
"" Llp"";"" LLP"");
"" Fp Lp"";"" FP LP"");
"" Bl.P"";"" BL.P."")"

Est-ce que quelqu'un sait comment faire fonctionner celui-ci? J'ai aussi trouvé https://stackoverflow.com/a/36384529/9456216 cette solution pour un problème similaire (je n'ai pas plus de 64 nid) mais je n'ai pas compris comment l'appliquer à mon cas.

Réponses:

2 pour la réponse № 1

Il s'agit de la première étape avec VBA (voir comment créer des fonctions personnalisées dans VBA ici):

Option Explicit

Public Function ReplacingForFun(rangeToReplace As Range) As String

Dim changeFrom      As Variant
Dim changeTo        As Variant
Dim returnString    As String

Application.Volatile

returnString = rangeToReplace.Value2
changeFrom = Array("Mr", "Gp%")
changeTo = Array("", "general partner")

Dim cnt

For cnt = LBound(changeFrom) To UBound(changeTo)
returnString = Replace(returnString, changeFrom(cnt), changeTo(cnt))
Next cnt

ReplacingForFun = returnString

End Function

Comme vous le voyez, vous définissez deux tableaux, changeFrom et changeTo. Chaque position du tableau indique en conséquence ce qui doit être changé en quoi. Donc Mr serait changé en "" et Gp% à general partner.

Cela fonctionne comme ceci:

entrer la description de l'image ici

Dans un deuxième temps, si vous souhaitez suivre quelques bonnes pratiques, ce serait une bonne idée de définir Arrays dans des gammes spécifiques, il serait donc plus facile à entretenir.