Extraire caractères entre deux x
Willzac Messages postés 266 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Colonne A avec des valeurs tels que par exemple : 12x659.77x254.28-0-K
Je souhaite avoir dans le colonne B 659.77
Je souhaite avoir dans le colonne C 254.28
Je souhaite avoir dans le colonne D 12
Toutes les valeurs dans A se terminent par -0 ou -0-K que je n'ai pas besoin.
Bonne réflexion !
Cordialement !!
Windows / Edge 105.0.1343.27
- Excel extraire entre deux caractères
- Nombre de jours entre deux dates excel - Guide
- Extraire une video youtube - Guide
- Liste déroulante excel - Guide
- Extraire le son d'une vidéo - Guide
- Word et excel gratuit - Guide
5 réponses
Bonsoir
Est ce que tous les nombres à extraire sont composés de 3 chiffres un point un chiffre (ce qui simplifierait les formules) ?
Sinon en B1 mettre : =STXT(A1;TROUVE("x";A1)+1;TROUVE("/";SUBSTITUE(A1;"x";"/";2))-TROUVE("x";A1)-1)
En C1 : =STXT(A1;TROUVE("/";SUBSTITUE(A1;"x";"/";2))+1;TROUVE("-";A1)-TROUVE("/";SUBSTITUE(A1;"x";"/";2))-1)
et en D1 : =GAUCHE(A1;TROUVE("x";A1)-1)
Cdlmnt
Via
Bonjour,
en vba a adapter
Sub test() Dim resultat As String Dim chaine As Integer chaine = Len(Range("A1")) If chaine = 20 Then resultat = Left(Range("A1"), Len(Range("A1")) - 4) Else resultat = Left(Range("A1"), Len(Range("A1")) - 2) End If Range("D1") = Split(resultat, "x")(0) Range("B1") = Split(resultat, "x")(1) Range("C1") = Split(resultat, "x")(2) End Sub
Voilà
Pour automatiser
2 façons de faire par double clic ou par une boucle:
Faire Alt F11 sur la feuille concernée pour accéder à l'éditeur et coller ce code
Option Explicit 'se déclenche au double clic sur la cellule en A Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then test (Target.Row) End If End Sub 'Boucle sur la colonne A Sub For_X_to_Next_Ligne() Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant Set FL1 = Worksheets("Feuil1")'adapter le nom de la feuille NoCol = 1 'lecture de la colonne A For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4) Var = FL1.Cells(NoLig, NoCol) test (NoLig) Next Set FL1 = Nothing End Sub Sub test(ByVal ligne As Long) Dim resultat As String Dim chaine As Integer chaine = Len(Range("A" & ligne)) If chaine = 20 Then resultat = Left(Range("A" & ligne), Len(Range("A" & ligne)) - 4) Else resultat = Left(Range("A" & ligne), Len(Range("A" & ligne)) - 2) End If Range("D" & ligne) = Split(resultat, "x")(0) Range("B" & ligne) = Split(resultat, "x")(1) Range("C" & ligne) = Split(resultat, "x")(2) End Sub
Voilà
@+ Le Pivert
Bonjour
une proposition
en B
=STXT(A2;TROUVE("x";A2)+1;-1+TROUVE("x";STXT(A2;TROUVE("x";A2)+1;NBCAR(A2))))
en C
=STXT(A2;TROUVE("x";A2)+1+NBCAR(B2)+1;NBCAR(A2)-TROUVE("-";A2)+2)
en D
=GAUCHE(A2;TROUVE("x";A2)-1)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
merci !