Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Transcrire formule en vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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:
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
37
Affichages
3 K
Réponses
1
Affichages
1 K
N
Réponses
5
Affichages
3 K
Nicocotte125
N
R
Réponses
8
Affichages
1 K
R
V
Réponses
2
Affichages
2 K
vynmarius
V
Réponses
6
Affichages
5 K
K
Réponses
5
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…