Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Extraire un numéro alphanumérique dans une célulle

moptosh

XLDnaute Nouveau
Bonjour,
Je recherche à extraire un n° composé de 7 carractères alpha-numérique présent dans une célulle ?
La contrainte, c'est que ce numéro n'est jamais positionné au même endroit dans la célulle
Il y a un repère avec des symbole possible devant cette suite : "/" suivi d'un espace.
J'ai trouvé une première réponse sur ce site pour récupérer les chiffres, mais je sèche pour récupérer les lettres.
Ci-joint le fichier pour comprendre.
Merci de votre aide.
 

Pièces jointes

  • test.xlsx
    10.1 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
C'est pour ça qu'on demande un fichier test réellement représentatif.
Donc sur ce genre d'exercice, on se base sur les exemples donnés, ça ne peut pas être universel.
Et comme rien ne permet dans votre fichier de déterminer la position exacte de la chaine, ça va être particulièrement ardu.
 

moptosh

XLDnaute Nouveau
Hello,
Oui je sais, malheureusement les données sont confidentielles.
Rassurez-vous je ne vous tire pas la bourre vous êtes géniaux

Bon, je vais demander à mon équipe de placer le n° entre deux " " et ne plus utiliser les guillemets pour autres chose (à remplacer par des parenthèses.)

Merci pour votre dispo en tout cas.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Un essai en PJ avec les ex de votre fichier :
Code:
Function ExtraireChaine(C$)
Application.Volatile
For i = 12 To Len(C)
    If Mid(C, i, 4) = UCase(Mid(C, i, 4)) And IsNumeric(Mid(C, i + 4, 3)) And Mid(C, i, 1) <> " " Then
        ExtraireChaine = Trim(Mid(C, i, 7))
        If Mid(ExtraireChaine, 1, 4) <> "TION" Then Exit Function
    ElseIf Mid(C, i, 3) = UCase(Mid(C, i, 3)) And IsNumeric(Mid(C, i + 3, 3)) And Mid(C, i, 1) <> " " Then
        ExtraireChaine = Trim(Mid(C, i, 7))
        If Mid(ExtraireChaine, 1, 3) <> "ION" Then Exit Function
    End If
Next i
End Function
Par contre, si vous revenez avec une nouvelle configuration bizarroïde, je jetterais l'éponge, car à chaque nouvelle bizarrerie, il faudra faire un rework.
 

Pièces jointes

  • test4.xlsm
    20 KB · Affichages: 2

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir à tous ,
Une autre fonction personnalisée EXTRAC() :
VB:
Function extrac(ByVal x$) As String
Dim i&
   For i = 1 To Len(x) - 6
      If Mid(x, i, 3) Like "[A-Z][A-Z][A-Z]" And (Mid(x, i + 3, 1) Like "[A-Z]" Or Mid(x, i + 3, 1) Like "#") And (Mid(x, i + 4, 3) Like "###") Then extrac = Mid(x, i, 7): Exit Function
   Next i
End Function
 

Pièces jointes

  • moptosh- extrac- v1.xlsm
    18.5 KB · Affichages: 8
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…