Transformer un nombre qui est en lettres pour arriver un chiffre

Fermé
Lemangoustan Messages postés 2 Date d'inscription lundi 30 mai 2016 Statut Membre Dernière intervention 30 mai 2016 - 30 mai 2016 à 05:02
Labdreun Messages postés 12 Date d'inscription vendredi 3 juin 2016 Statut Membre Dernière intervention 7 juin 2016 - 3 juin 2016 à 16:43
Bonjour,

Je suis sur Windows 10 (malheureusement) et j'utilise Excel 13.
Je vais rechercher avec une macro sur le net des cotations d'actions et d'obligations par exemple " 34.05 USD" ou "+0.5647% ".
Seulement la plus-part du temps ces données arrivent sur ma feuille d'accueil au format texte, donc inutilisable comme tel pour calculer.
Je souhaiterais savoir comment dans ma macro je peux transformer cela en chiffres tel que 34,05 et 0,5647. En excel c'est très facile mais apparemment on ne peux pas utiliser les même formules en VBA.

Merci d'avance

Lemangoustan

A voir également:

2 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 716
30 mai 2016 à 09:47
Bonjour,

Pour transformer : variable = " 34.05 USD"
résultat = Val(variable)

Il faut tester un peu car tu risques des soucis avec point et virgule qui sont modifiables par un "replace" .
0
Labdreun Messages postés 12 Date d'inscription vendredi 3 juin 2016 Statut Membre Dernière intervention 7 juin 2016
Modifié par Labdreun le 3/06/2016 à 10:44
Bonjour,
ce que je fais mais rarement c'est effectivement écrire le code en Excel.
puis je récupère dans du code simple le contenu de la cellule.
cela me génère le code 'VB', avec une partie en absolu évidemment, après c'est du custom normal, mais le nom des fonctions, les parenthèses, et le coding est propre.
il y a longtemps que je ne l'ai plus fait, mais je crois que ça marche.
c'est une piste, je pense que d'autres pourront te donner mieux ou en complément de ma contribution.
c'est vrai que pour faire simple les deux codes ne sont pas identiques !!
Bonne Journée
Labdreun
(newbie d’aujourd’hui, mais si je peux aider ou éclairer une piste !)

je viens de retrouver ceci:
avec
range(tacellule).activate
Selection.FormatConditions.Add type:= xlExpression, Formula1: = _
"=STXT(cell;i;1)=""B"""

tu mets ta formule 'Excel' quasiment par programmation dans une cellule
j'espère que j'ai bien compris ton problème ?!
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 716
3 juin 2016 à 11:59
Bonjour,

je viens de retrouver ceci:
Tu as sans doute testé le résultat ... totalement inefficace ?

tu mets ta formule 'Excel' quasiment par programmation dans une cellule
C'est de la programmation, il n'y a rien de "quasiment"

j'espère que j'ai bien compris ton problème ?! Pas sûr ...
0
Labdreun Messages postés 12 Date d'inscription vendredi 3 juin 2016 Statut Membre Dernière intervention 7 juin 2016 > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
3 juin 2016 à 15:17
Bonjour,

le fait est qu'il SAIT faire avec la formulation Excel
et pas avec les instructions pures VBA
donc,
pour ne pas le faire dans la feuille de calcul
il peut le faire dans une programmation vba
ce qui est effectivement la même chose, évidemment
sauf que cela correspond à sa demande
qu'il peut coder le remplissage dans toute la colonne en VBA
mettre çà en ouverture du document, paramétrer, etc
il ne connait pas l'écriture des fonctions qui ne s'écrivent pas pareillement entre les deux modes.
sinon, vous lui donnez justement de la programmation à faire.
mais merci de ton enthousiasme à répondre

si cela pouvait le faire aussi, sur ma requête dans le Forum VB/VBA
j'en serai ravi !
A+
0
Labdreun Messages postés 12 Date d'inscription vendredi 3 juin 2016 Statut Membre Dernière intervention 7 juin 2016 > Labdreun Messages postés 12 Date d'inscription vendredi 3 juin 2016 Statut Membre Dernière intervention 7 juin 2016
3 juin 2016 à 16:29
re,
Voilà j'ai trouvé ce dont je parlais
cela peut aider cuxe qui ne connaissent pas le code VBA ou pas sûr 100% (comme moi)

Sub recupcode
sheets("tafeuille").select
dim b as string
'aller sur la cellule dont on a définit le code via Excel , code Excel, pas VB
Range("A4").select
b= Activecell.FormuaR1C1
'lire le contenu de b !
msgbox(b) 'le code équivalent d'Exel apparait en VB
End sub

dans le contexte de la demande cela me semble aussi connaitre
A++
0
Labdreun Messages postés 12 Date d'inscription vendredi 3 juin 2016 Statut Membre Dernière intervention 7 juin 2016
3 juin 2016 à 16:43
ActiveCell.Formula j'ai oublié le 'L'
0