Formule pour épurer

Résolu/Fermé
Guismoone33 Messages postés 12 Date d'inscription mercredi 19 février 2020 Statut Membre Dernière intervention 30 décembre 2020 - 27 avril 2020 à 10:05
Guismoone33 Messages postés 12 Date d'inscription mercredi 19 février 2020 Statut Membre Dernière intervention 30 décembre 2020 - 27 avril 2020 à 12:22
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

DjiDji59430 Messages postés 4180 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 25 janvier 2025 683
27 avril 2020 à 10:26
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
Modifié le 27 avril 2020 à 11:14
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 mercredi 19 février 2020 Statut Membre Dernière intervention 30 décembre 2020
27 avril 2020 à 11:51
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
27 avril 2020 à 12:03
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 mercredi 19 février 2020 Statut Membre Dernière intervention 30 décembre 2020
27 avril 2020 à 12:22
Bonjour michel,

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

bonne journée.

bien à vous
0