Extraire des chiffres d'une cellule alphanumérique

Bonsoir,

Je crée un deuxième sujet différent mais j'ai également un autre problème.

J'ai dans ma feuille des cellules du style :

Ban anes 11

Abri cots 2,5

Frai ses 7,90

J'ai essayé beaucoup de formules sans succès sur l'ensemble...

Il n'y a jamais le même nombre de caractères à extraire ni dans la cellule en elle-même.

Et les espaces compliquent la choses je pense.

Sur beaucoup j'ai 4 caractères à extraire 1 chiffre, 1 virgule et 2 chiffres. Mais il arrive qu'il y ait seulement 2 chiffres... ou 1 chiffre, 1 virgule et 1 chiffre.

Merci pour votre aide.

Sandra

Bonjour @ tous,

avec une formule matricielle.

=MIN(FILTRE.XML("<a><b>"&SUBSTITUE(A1;" ";"</b><b>")&"</b></a>";"//b"))

@ valider par Ctrl+Maj+Entrée

Voir PJ

241bravo2984-v1.xlsx (9.93 Ko)

Cordialement

Bonjour à vous!

Merci à tous les deux je vais tester ça et je vous fais un retour dès que possible 😉

bonne journée

Sandra

bonjour

une contribution rustiquement matricielle sur le fichier de R@chid

cordialement

112bravo29.xlsx (9.68 Ko)

Bonjour,

Une macro assez courte à tester :

Option Explicit

Sub Macro1()
    Dim plage As Range, cell As Range
    Dim valeur As String, nombre As Double

    Set plage = Range("A1:J100")

    For Each cell In plage
        If InStr(cell, " 0 ") > 0 Then cell.Value = ""
        If cell.Value <> "" Then
            valeur = cell.Value
            valeur = Replace(valeur, ",", ".")
            While Val(valeur) = 0
                valeur = Right(valeur, Len(valeur) - 1)
            Wend
            nombre = Val(valeur)
            cell.Value = nombre
        End If
    Next cell
End Sub

bonjour

et un truc avec des expressions régulières ??????

avis aux pros

cordialement

Bonjour à toutes et tous,

Et une autre proposition sans formule matricielle en colonne "E" toujours sur le fichier de l'ami R@chid.

188bravo2984-v2.xlsx (10.26 Ko)

Cordialement.

en effet

Bonjour Bravo2984, Le Forum

Avec la fonction ci-dessous.

Function sw(X)
If X = "" Then sw = "": Exit Function
For C = 1 To Len(X)
If Mid(X, C, 1) = "." Then Mid(X, C, 1) = ",": C = C + 1 'Note> séparateur system = ,
If Mid(X, C, 1) >= "A" Then Mid(X, C, 1) = " "
Next C
sw = CDbl(Trim(X))
End Function

Exemple: Mettre la donnée alphanumérique en cellule A1. Puis en B1, inscrire la formule personnelle =sw(A1)

A recopier vers le bas pour d'autres données en colonne A. Toute cellule vide dans cette colonne est zappée.

Le fichier devra être sauvée avec l'extension .xlsm

bonjour

Pour répondre à Tulipe_4, je viens de coder cela les résultats se positionnent à droite de la cellule entrée en paramètre

Public Function splitUpRegexPattern(strRange As String)
    Dim regEx As New RegExp
    Dim strPattern As String
    Dim strInput As String
    Dim strReplace As String
    Dim Myrange As Range
    Dim C As Range
    Dim Matches As MatchCollection

    Set Myrange = ActiveSheet.Range(strRange)

    For Each C In Myrange
        'strPattern = "\s\d{3}"
        strPattern = "[\d(.\d)*(\s)*\d(,\d)*]*"
        If strPattern <> "" Then
            With regEx
                .Global = True
                .Multiline = True
                .IgnoreCase = False
                .pattern = strPattern
                 Set Matches = .Execute(C.value)
            End With

            If Matches.count > 0 Then
                Debug.Print Matches(0)
                Dim colOffset, m
                colOffset = 1
                For Each m In Matches
                If m.value <> "" Then
                C.Offset(0, colOffset) = m 'Matches(0)
                colOffset = colOffset + 1
                End If
                Next
            Else
                C.Offset(0, 1) = "(Not matched)"
                Debug.Print "Not Found "
            End If

       End If
    Next
End Function

Bonjour à tous,

Je viens de m'apercevoir que mon précédent post était apparu vide ... Je ne suis vraiment pas douée

Bref, je vous demandais si parmi vos propositions, il y avait une réelle différence.

Quel intérêt de l'une par rapport à l'autre ? La rapidité ? Parce qu'en fait elles fonctionnent toutes et je ne sais pas laquelle garder

En tout cas merci pour vos réponses.

Sandra

Bonjour Bravo2984,

En prêchant pour ma paroisse je te dirais la mienne...

Mais sinon, tu peux lancer les dés et prendre comme le hasard t'indique.

Ou fait définitivement un choix.

Bonjour @ tous,

Bref, je vous demandais si parmi vos propositions, il y avait une réelle différence.

Quel intérêt de l'une par rapport à l'autre ? La rapidité ? Parce qu'en fait elles fonctionnent toutes et je ne sais pas laquelle garder

Si t'as base de données ne contient que quelques centaines de lignes voir quelques milliers, tu peux utiliser ma formule ce n'est pas grave, si ce n'est pas le cas et ta base de données est de centaines de milliers de lignes, tu dois choisir une macro, car une fois la macro exécuter et le travail est fini, le résultat devient comme si on l'a fait manuellement et on libère de l'espace dans la RAM contrairement au formules.

Pour choisir entre les macros, les spécialistes vont te dire laquelle choisir, qui est la plus rapide et la plus efficaces entre elles.

Cordialement

Rechercher des sujets similaires à "extraire chiffres alphanumerique"