Transcrire formule en vba

rudymagny

XLDnaute Occasionnel
Bonjour à tous,
J'avais ouvert un fil dans la mauvaise section https://www.excel-downloads.com/threads/extraire-donnees-chaine-de-caractere.195895/
Je remercie JDCL, Modeste, Victor21, Staple1600 et modeste geedee pour leurs réponses ;-)

D'ailleurs la solution suivante sous forme de formule étant concluante :
Code:
=SIERREUR(GAUCHE(H2;3)&DROITE(H2;NBCAR(H2)-3)*1;"")

Cependant je voudrais réaliser la même chose sous forme VBA dans cet esprit :
Code:
L3 = Sheets("Feuil1").Range("E65536").End(xlUp).Row
        For i = 2 To L3
            ancien_ref = Cells(i, 5).Value
            nouvelle_ref = SIESTNA(GAUCHE(ancien_ref;3)&DROITE(ancien_ref;NBCAR(ancien_ref)-3)*1;"")
            cells(i,5).value=nouvelle_ref
            MsgBox nouvelle_ref
        Next i

Mais je n'arrive pas à faire fonctionner le code ;-(

Comment puis je transcrire la formule d'origine sous forme VBA ?

Merci d'avance @ vous
 

rudymagny

XLDnaute Occasionnel
Re : Transcrire formule en vba

Je complète mon message en clarifiant le résultat, je ne veux pas insérer la formule dans une cellule mais remplacé la valeur de la cellule par le résultat de cette formule.

En utilisant l'enregistreur de macro voic le résultat
Code:
        For i = 2 To L3
            ancien_ref = Cells(i, 5).Value
            'nouvelle_ref = SIERREUR(GAUCHE(L2;3)&DROITE(L2;NBCAR(L2)-3)*1;"")
            nouvelle_ref = "=IFERROR(LEFT(ancien_ref,3)&RIGHT(ancien_ref,LEN(ancien_ref)-3)*1,"""")"
            MsgBox nouvelle_ref
        Next i

Mais forcément ça m'insère la formule mais pas le résultat ...

Merci d'avance
 

rudymagny

XLDnaute Occasionnel
Re : Transcrire formule en vba

J'ai essayé ceci mais le résultat est vide

Code:
        For i = 2 To L3
            ancien_ref = Cells(i, 5).Value
            'nouvelle_ref = SIERREUR(GAUCHE(L2;3)&DROITE(L2;NBCAR(L2)-3)*1;"-")
            nouvelle_ref = Evaluate("=IfError(Left(" & ancien_ref & ", 3) & Right(" & ancien_ref & ", Len(" & ancien_ref & ") - 3) * 1, """")")
            MsgBox nouvelle_ref
        Next i
 
Dernière édition:

rudymagny

XLDnaute Occasionnel
Re : Transcrire formule en vba

Bon bah après avoir fais travailler mes doigts et accessoirement mon cerveau, j'ai trouvé l'équivalence :
Code:
        'Suppression des 0 inutiles des références des tickets et avis
        For i = 2 To L3
            nouvelle_ref = Evaluate("=IfError(Left(E" & i & " , 3) & Right(E" & i & ", Len(E" & i & ") - 3) * 1, """")")
            MsgBox nouvelle_ref
        Next i

Bonne journée
 

Discussions similaires

Réponses
37
Affichages
2 K
Réponses
1
Affichages
1 K

Statistiques des forums

Discussions
312 194
Messages
2 086 066
Membres
103 110
dernier inscrit
Privé