Equivalent d'une formule en VBA

  • Initiateur de la discussion Initiateur de la discussion Charles
  • Date de début Date de début

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 !

C

Charles

Guest
Bonjour tout le monde,

Meilleurs voeux pour cette nouvelle année !

J'aimerais écrire l'équivalent de cette formule sous Excel en VBA :

GAUCHE(B133;CHERCHE("-";B133)-1)

Si dans la cellule B133 on a 8,4-16,8 alors il prend tout ce qu'il y a avant le tiret dont il renvoie 8,4

Par avance merci et très bonne journée,

Charles
 
Salut Charles !

Il y a un moyen simple, quand tu veux écrire un code que tu ne connais pas.

C'est de lancer l'enregistreur de macro et soit de faire ta manip ou d'écrire ta formule.

Et tu as déjà une partie de ta réponse.

Dans ton cas, j'ai fait de cette façon et voilà ce que ça a donné :

Sub Macro1()
Range("E5").Select
ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],SEARCH(""-"",RC[-1])-1)"
Range("E6").Select
End Sub

A savoir j'avais écrit 8,4-16,8 en D5 et ai écrit la formule en E5.

A toi d'adapter !

@ +

Moa
 
Bonjour,

Tu peux la créer en utilisant l'enregistreur de macro automatique en faisant comme suit :

1. vas dans via menu / outils / macro et choisis "nouvelle macro".
2. Dans ta feuille, mets ton cuseur dans la cellule (ici B133) où la formule doit être placée
3. Ecris ta formule = Gauche ...., puis Enter
4. Arrete ta macro via menu / outils / macro / arreter enregistrement ou via l'icone "Macro" en principe devant toi sur ta feuille.

Pour voir ta macro, tu fais ALT+F11 sur ton clavier. Ceci te montre une fenetre VBA project (a gauche). Ensuite tu ouvres le dossier Module pour visualiser ta macro.

Bon travail

@+

Dan
 
Merci à tous les deux pour cette aide !
En fait, c'est bien ce que j'ai fait mais la traduction une fois adaptée ne marchait pas, c'est à dire qu'il me traduisait Cherche par Search (comme vous apparement) mais qd je lance la macro il me dit ne pas comprendre Search !
Avec InStr ca a l'air de marcher , qu'en pensez-vous ?
 
Ca y'est, voilà en fin de compte ce que ca donne !

Arrivee = Left(Range("B133"), InStr(Range("B133"), "-") - 1)

Depart = Right(Range("B133"), Len(Range("B133")) - InStr(Range("B133"), "-"))

Si on rentre une tranche horaire type 9h-13h30, ca permet d'isoler le 9h (Arrivee) et le 13h30 (Depart). Je rajoute ca pour quiconque intéressé par ça 🙂

A bientôt
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
438
Retour