selection d'une partie d'une cellule

P

p_723

Guest
Bonjour a tous,

Voilà, je vient de finir une macro pour importer des donnees depuis internet et grosso modo, j'obtient le resultat suivant :
1 USD=0.997904 EUR

ce qui est exactement le but rechercé.

Le probleme est que j'aimerais sortir de la cellule uniquement le 0.997904 afin de pouvoir lancer des operations de conversion succesive.

Je me suis dit que puisque j'avais fais une macro pour importer la cellule 1 USD=0.997904 EUR, ne serait-il pas possible (et si oui comment ?) d'en creer une autre pour ne conserver que le taux qui m'interresse et ainsi pouvoir lancer une seulle macro qui m'importerais les donnees depuis internet, qui ferais le trie dans la cellulle specifiee et qui me ferait mes calculs de conversions ?

J'ai essayer diverses fonctions d'excel et je n'y arrive pas.

Merci d'avance de votre aide.

PS : un merci particulier a albert qui m'a enomement aide pour le script de d'importation des donnes.
 
F

Fifi

Guest
salut
tu peux utiliser une formule avec une fonction qui esxtrait du textre par exemple :

pour afficher uniquement 0.997904 tu as la formule suivante.

en A1 = ton extraction internet : 1 USD=0.997904 EUR

=GAUCHE(DROITE(A1;NBCAR(A1)-TROUVE('=';A1));NBCAR(DROITE(A1;NBCAR(A1)-TROUVE('=';A1)))-(NBCAR(DROITE(H2;NBCAR(A1)-TROUVE('=';A1)))-TROUVE(' ';DROITE(1;NBCAR(A1)-TROUVE('=';A1)))))
 

myDearFriend!

XLDnaute Barbatruc
Bonjour p_723, Fifi,

Une solution par VBA :
Sub Traitement()
Dim Plage As Range, Cellule As Range
Dim Pos As Integer
      Application.ScreenUpdating = False
      Set Plage = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants, xlTextValues)
      For Each Cellule In Plage
            With Cellule
                  Pos = InStr(.Value, '=')
                  If Pos > 0 Then
                        .Value = Val(Mid(.Value, Pos + 1))
                  End If
            End With
      Next Cellule
      Application.ScreenUpdating = True
End Sub
Cordialement,
 
P

p_723

Guest
salut a tous,

finalement j'ai fait un mixte de vos reponses et cela donne :
Sheets('fourn').Select

' calcul equivalence

Sheets('Feuil1').Select
Range('F8').Copy
Sheets('fourn').Select
Range('G8').Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range('H8').Select
Sheets('Feuil1').Select
Range('G8').Select
Sheets('fourn').Select
ActiveCell.FormulaR1C1 = '=RIGHT(RC[-1],10)'
Range('I8').Select
ActiveCell.FormulaR1C1 = '=LEFT(RC[-1],7)'
Range('I8').Select
Sheets('Feuil1').Select
Range('F29').Select
Sheets('fourn').Select
Selection.Copy
Range('F29').Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

'Remplacer un point par une virgle

ActiveCell.Replace What:='.', Replacement:=',', LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True
Cells.Find(What:='.', After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True). _
Activate
Range('E29').Select
ActiveCell.FormulaR1C1 = '=IF(RC[-3]='''','''',RC[-3]*RC[1])'
Range('A1').Select


voilà merci a tous de votre aide, grace a vous mon projet est desormais terminé.

A bientot
 

Discussions similaires

Statistiques des forums

Discussions
312 555
Messages
2 089 547
Membres
104 208
dernier inscrit
laura29180