XL pour MAC Extraire uniquement un nombre de plus de 4 chiffres dans une cellule Répondre

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

juanc

XLDnaute Nouveau
Bonjour à tous !
Je suis nouveau sur Excel et je me retrouve face à une situation que je n'arrive pas à résoudre malgré mes nombreuses recherches, j'espère que vous pourrez m'aider à la solutionner car je commence à désespérer.
Dans ma feuille Excel, j'ai plusieurs cellules contenant du texte, des chiffres, et en général un nombre de plus de 4 chiffres.

Exemple de texte dans une cellule : "iPhone 64 GB, en très bon état, référence 243278, garantie de 12 mois".
La seule constante dans mes cellules est ce nombre de plus de 4 chiffres, il peut se retrouver n'importe dans la cellule et le mot « référence » n'est pas une constante, il ne se retrouve donc pas dans toutes les cellules.
je ne peux donc pas utiliser une formule qui effacerais uniquement les lettres car tous mes chiffres se retrouverait collé ensemble (Cela donnerait quelque chose comme 6424327812 dans cet exemple), et je ne peux pas non plus garder le nombre juste après le mot « référence » car ce mot n'apparaît pas dans toutes les cellules.
Je recherche donc une formule qui pourrait me permettre d'effacer tout le contenu de la cellule sauf les nombres de plus de 4 chiffres.
savez-vous si c'est quelque chose de faisable, et si oui comment y arriver SVP ?
Je vous remercie par avance de vos réponses !

Juan
 
Bonjour juanc, bienvenue sur XLD, salut vgendron,

Fonction personnalisée sans Split :
VB:
Function Extract(x$)
Dim L%, i%, y$, deb%
L = 4 'limite à adapter
Extract = "" 'pour éviter les valeurs zéro
For i = 1 To Len(x) + 1
    y = Mid(x, i, 1)
    If deb = 0 Then If IsNumeric(y) Then deb = i
    If deb Then
        If Not IsNumeric(y) Then
            If i - deb > L Then Extract = Val(Mid(x, deb, i - deb)): Exit Function
            deb = 0
        End If
    End If
Next
End Function
Seule la 1ère valeur > 4 chiffres est récupérée.

A+
 

Pièces jointes

Bonjour à tous,

Une petite autre fonction: =SequenceN(Texte , N )
  • Texte est le texte à analyser
  • la séquence doit avoir plus de N chiffres
  • si plusieurs séquences de chiffres répondent aux critères alors on les affiche toutes (séparées par des points-virgules) pour ne pas en perdre
  • la longueur de la séquence de chiffres peut être très longue
nota : si N=0 alors toutes les séquences de chiffres sont extraites indépendamment de la taille.

VB:
Function SequenceN(ByVal Texte As String, N As Long) As String
'Texte est le texte à analyser  -  le résultat doit avoir PLUS de N caractères
Dim c, i&, s, r
   Texte = Texte & "/"
   For i = 1 To Len(Texte)
      c = Mid(Texte, i, 1)
      If c Like ("#") Then
         s = s & c
      Else
         If Len(s) > N Then r = r & ";" & s
         s = ""
      End If
   Next i
   If Len(r) > 0 Then SequenceN = Mid(r, 2)
End Function
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour