extraction de nombres

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 !

matou59

XLDnaute Junior
Bonjour,

Comment extraire des nombres separes par "-" ou par"+" parmi une chaine de caracteres et les placer chacun dans une colonne differente.

Le fichier joint explique ce que je veux faire...

merci
 

Pièces jointes

Re : extraction de nombres

Bonjour,

Une tentative (qui doit pouvoir être simplifiée) :

en B1 :

Code:
=STXT(SUBSTITUE(SUBSTITUE("-"&SUBSTITUE($A1;"+";"-")&"-";"-";"µ";COLONNE()-1);
"-";"£";COLONNE()-1);TROUVE("µ";SUBSTITUE(SUBSTITUE("-"&SUBSTITUE($A1;"+";"-")&
"-";"-";"µ";COLONNE()-1);"-";"£";COLONNE()-1))+1;TROUVE("£";SUBSTITUE(
SUBSTITUE("-"&SUBSTITUE($A1;"+";"-")&"-";"-";"µ";COLONNE()-1);"-";"£";COLONNE()
-1))-TROUVE("µ";SUBSTITUE(SUBSTITUE("-"&SUBSTITUE($A1;"+";"-")&"-";"-";"µ";
COLONNE()-1);"-";"£";COLONNE()-1))-1)

à recopier vers la droite

et vers le bas

@+
 
Re : extraction de nombres

Bonjour, salut Jean-Marcel, Tibo et pierrejean,

Un autre essai par formules, voir la pièce jointe.

Edition :
Je viens de regarder la formule de Tibo, cela se ressemble fort, à la différence que j'ai préféré nommer la partie répétitive de la formule.
 

Pièces jointes

Dernière édition:
Re : extraction de nombres

bonjour le fil
Pas mal pierrejean je ne connaissait pas du tout ces fonctions vba
pourrais tu expliquer le code svp car avec l'aide de vb ça me brouille mon ptit cerveau
merci
Ps: j'avais essayer mais je commencé a me compliquer la vie sur ce bout de code qui pouvez apparement etre tres court
A+
 
Re : extraction de nombres

Re

@ fhoest

La macro commentée (du mieux que j'ai pu)

Code:
Sub test()
For n = 2 To Range("A2").End(xlDown).Row
'replace(range("A" & n),"-"," ") remplace dans range("A" & n) le moins par un espace
'le resulat est repris par un nouveau replace qui remplace le + par un espace
'le Split(mots," ") cree un tableau contenant tous les items de mots séparés par un espace
  x = Split(Replace(Replace(Range("A" & n), "-", " "), "+", " "), " ")
'ecriture des items du tableau x
  For m = LBound(x) To UBound(x)
    Cells(n, m + 2) = x(m)
  Next m
Next n
End Sub
 
Re : extraction de nombres

Bonsoir à tous


Un autre façon de procéder (avec RegExp)

Code:
Sub MacroMatou59()
'adapté d'un code de Ron Rosenfeld
Dim c As Range, i As Long
Dim xp As Object, mc As Object, m As Object
Set xp = CreateObject("vbscript.regexp")
    With xp
    .Global = True
    .Pattern = "\d+"
        For Each c In Range("A1", [A56536].End(xlUp))
            If .test(c.Value) = True Then
            Set mc = .Execute(c.Value)
            For i = 0 To mc.Count - 1
            c(1, i + 2).Value = mc(i) * 1
            Next i
        End If
        Next c
    End With
End Sub
 
- 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

Discussions similaires

  • Question Question
Réponses
28
Affichages
526
  • Question Question
Microsoft 365 Format de nombres
Réponses
21
Affichages
520
Réponses
7
Affichages
693
Réponses
4
Affichages
281
  • Question Question
XL 2013 Annulé
Réponses
6
Affichages
298
Réponses
9
Affichages
370
W
Réponses
10
Affichages
303
Réponses
11
Affichages
247
Retour