Réécrire des imatriculations en suivant un standard

Bonjour,

Pour des besoin professionnelle j'ai réalisé un formulaire Microsoft Forms pour récupérer un certain nombre d'information sur nos véhicule pro pour réaliser des contrôle hebdomadaire, les données récoltées sont ensuite envoyé dans un fichier Excel online sous SharePoint, ne pouvant malheureusement pas verrouiller la syntaxe de saisie des immatriculations et ne pouvant pas faire usage de code VBA, je recherche actuellement une solution via des formules pour pouvoir réécrire les immatriculations.

Sachant que différentes écritures sont possible (AA-123-AA, AA 123 AA, AA123AA, AA.123.AA), existe-t-il une formule qui me permettrait de séparer tous les caractères alphabétique des caractères numérique dans 2 cellules séparé (colonne A > AAAA et colonne B > 123) ce qui me permettrait par la suite de réécrire les immatriculations sous le format attendu (AA-123-AA) pour réaliser le contrôle automatique mis en place dans le but d'avoir rapidement un visuel sur les véhicules qui ont subit le contrôle hebdomadaire ?

merci d'avance

Bonjour, une formule personnalisée le permettrait sans difficulté. Le seul pb, pourquoi 2 cellules alors que les immatriculations sont composées de 3 groupes (lettres, chiffres, lettres) ?

Un exemple, avec 3 cellules, mais il est très facile de supprimer le 3e groupe en question.

Option Explicit

Function EXPLODE(matricule As String, groupe As Byte) As String
    Dim groupe1 As String, groupe2 As String, groupe3 As String
    Dim i As Integer

    ' On purge l'immatriculation des espaces, des tirets et des points
    matricule = Replace(matricule, ".", "")
    matricule = Replace(matricule, "-", "")
    matricule = Replace(matricule, " ", "")

    For i = 1 To Len(matricule)
        If Asc(Mid(matricule, i, 1)) > 64 And Asc(Mid(matricule, i, 1)) < 91 Then
            groupe1 = groupe1 & Mid(matricule, i, 1)
        Else
            Exit For
        End If
    Next i

    groupe2 = str(Val(Right(matricule, Len(matricule) - i + 1)))

    groupe3 = Right(matricule, Len(matricule) - Len(groupe1) - Len(groupe2) + 1)

    Select Case groupe
        Case 1
            EXPLODE = groupe1
        Case 2
            EXPLODE = groupe2
        Case 3
            EXPLODE = groupe3
    End Select
End Function

bonjour à tous,

une solution sans vba, limitée aux formats que tu as indiqués

=GAUCHE(A1;2)&"-"& SI(NBCAR(A1)=9;STXT(A1;4;3);STXT(A1;3;3))& "-" &DROITE(A1;2)

merci pour vos réponse, la solution via la formule fonctionne parfaitement sauf dans le cas ou un espace a été ajouté a la fin de l'immatriculation je vais regarder pour adapter cette formule dans ce cas

bonjour,

une formule adaptée pour tenir compte également de ce cas :

=GAUCHE(A1;2)&"-"& SI(NBCAR(SUBSTITUE(A1;" ";""))=9;STXT(A1;4;3);STXT(A1;3;3))& "-" &DROITE(SUBSTITUE(A1;" ";"");2)
Rechercher des sujets similaires à "reecrire imatriculations suivant standard"