selection d'une partie d'une cellule

  • Initiateur de la discussion Initiateur de la discussion p_723
  • 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 !

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.
 
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)))))
 
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,
 
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
 
- 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.
Retour