Formule pour épurer

Résolu
Bonjour a tous,

je récupère la musique des chevaux et je voudrais épurer en enlevant les a;();[],ne pas prendre en compte se qu'il y a des les parenthèse voici un exemple :

en Colonne E:E j'ai ceci : Da1a(19)1a et en Colonne I:I je veux épurer comme ceci: 11 ou
en Colonne E:E j'ai ceci : 9a1a(19)3a et en Colonne I:I je veux épurer comme ceci: 913

j’espère donner le bon exemple.

merci à vous tous

Configuration: Windows / Opera 67.0.3575.137

5 réponses

  1. Bonjour michel,

    je te remercie elle et un peu plus complète,je te remercie pour cette vba.

    bonne journée.

    bien à vous
    0
    1. Contributeur
      Bonjour

      il y avait aussi

      Option Explicit
      '-----------------------------------------------------------
      Function epurer(texto As Range)
      Dim Separe, Cptr As Byte, Test

      Separe = Split(texto, "a")
      For Cptr = 0 To UBound(Separe)
      Test = Right(Separe(Cptr), 1)
      If IsNumeric(Test) Then: epurer = epurer & Test
      Next
      End Function

      0
      1. bonjour patrice,

        merci pour cette VBA elle fonctionne trés bien et dans mes attente.

        bonne journée.

        bien à vous
        0
        1. Bonjour,

          Avec une fonction personnalisée, dans un module standard, qui élimine ce qu'il y a entre parenthèses ou entre crochets et ne conserve que les nombres dans ce qui reste. :
          Function EpureDada(cel As Range) As Long
          Dim s As String, r As String, i As Long, off1 As Boolean, off2 As Boolean
            s = cel.Text
            For i = 1 To Len(s)
              If Not off2 And Mid(s, i, 1) = "(" Then off1 = True
              If Not off2 And Mid(s, i, 1) = ")" Then off1 = False
              If Not off1 And Mid(s, i, 1) = "[" Then off2 = True
              If Not off1 And Mid(s, i, 1) = "]" Then off2 = False
              If Not (off1 Or off2) Then
                If Asc(Mid(s, i, 1)) > 47 And Asc(Mid(s, i, 1)) < 58 Then
                  r = r & Mid(s, i, 1)
                End If
              End If
            Next
            EpureDada = Val(r)
          End Function 


          En I2 :
          =epuredada(E2)
          à tirer vers le bas

          0
          1. Bonjour à tous,

            Tes items ont toujours la même syntaxe (avec des "a", avec des "(19)") ?. Il n'y a que les chiffres qui changent ?

            Crdlmt
            0