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

Autres occurence

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

Michou9

XLDnaute Occasionnel
Bonjour à tous
je souhaite extraire des nombres à l'intérieure de cellules
Ces nombres sont tous suivi d'un symbole par exemple "€"
Mon problème c'est qu'il y plusieurs symboles identiques
Pour ressortir le premier, nombre c'est facile
Pour le 2ème, j'y arrive aussi
Mais pour les suivants, je cale
Si je peux obtenir de l'aide ?
Merci d'avance

exemple d'une cellule :
F:\House\A-85\1\ZZ\4 machin 315€Net 330€ 333€ 344€ 385€ 122m 130m 900m 987m 2588€m @2023 TypeA 597€an
Je souhaite donc ressortir 315€ 330€ 344€ 385€ et ainsi de suite
 
or comme ceci
VB:
Function Separer(s)
     Dim i, sp
     Separer = ""
     If Len(s) > 0 Then
          sp = Filter(Split(s), "€", 1, 1)
          If UBound(sp) > -1 Then
               For i = 0 To UBound(sp)
                    sp(i) = Val(sp(i))
               Next
               Separer = sp
          End If
     End If
End Function
PS. comment faut-il traiter des points ou des virgules ?
 

Pièces jointes

C'est bien ce que je voulais faire
J'ai donc incorporer cette nouvelle fonction
Seulement cela provoquait la même erreur que précédemment
J'ai donc rajouter :
On Error Resume Next

Comme j'ai utiliser (par négligence) le même symbole "m" pour 2 types de données et que je ne peux pas revenir en arrière
J'ai voulu limiter les nombres extrait à 300
J'ai donc aussi rajouter :
If (T2(UBound(T2))) > 300 Then Separem = ""

Soit:
Function Separem(C$, N%)
Dim T, T2
T = Split(C, "m ")
If N > UBound(T) Then Separem = "": Exit Function
T2 = Split(T(N - 1), " ")
On Error Resume Next
Separem = CDbl(T2(UBound(T2)))
If Right(T2(UBound(T2)), 1) = "€" Then Separem = ""
If (T2(UBound(T2))) > 300 Then Separem = ""
End Function
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…