Formule pour épurer

Résolu
Guismoone33 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
Guismoone33 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

5 réponses

DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700
 
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
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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
Guismoone33 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour patrice,

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

bonne journée.


bien à vous
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Guismoone33 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour michel,

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

bonne journée.

bien à vous
0