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

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 !

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

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.
 
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.
 
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

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

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