Formule pour épurer

Résolu
Guismoone33 Messages postés 14 Statut Membre -  
Guismoone33 Messages postés 14 Statut Membre -
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. DjiDji59430 Messages postés 4278 Date d'inscription   Statut Membre Dernière intervention   717
     
    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
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    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
  3. Guismoone33 Messages postés 14 Statut Membre
     
    bonjour patrice,

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

    bonne journée.

    bien à vous
    0
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Guismoone33 Messages postés 14 Statut Membre
     
    Bonjour michel,

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

    bonne journée.

    bien à vous
    0