Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
Bonjour
J'ai besoin d'extraire les noms, les prénoms, les n° (chiffres et lettres (avec bis, ter,...)) d'un fichier adresse pour faire un planning de rdv sous excel.
J'ai essayé plusieurs solutions mais je ne parviens pas à extraire le numéro avec bis ou ter dans la même colonne ci-joint un fichier exemple
tu peux toujours faire de multiples test conditionnels, mais selon moi le meilleur moyen est d'utiliser les expressions régulières .. ça fait un peu peur au début mais on s'y habitue ...
je t'ai développé une petite fonction qui nécessite l'ajout de la référence à MS VBscript regular expression 5.5
Code:
Function GetAddressElement(ByVal strAddr As String, _
ByVal strPartie As String) As String
Dim reg As VBScript_RegExp_55.RegExp
' on crée l'objet expression régulière
Set reg = New VBScript_RegExp_55.RegExp
reg.Global = True
reg.IgnoreCase = True
reg.MultiLine = False
Select Case strPartie
Case "numéro"
' motif qui définit la recherche de numéro suivi de bis ou ter
reg.Pattern = "^(\d+( bis| ter)?)"
If reg.Test(strAddr) Then
GetAddressElement = reg.Execute(strAddr)(0).SubMatches(0)
Else
GetAddressElement = ""
End If
Case "voie"
' motif qui définit la recherche de nom de voie
reg.Pattern = "(rue|impasse|avenue|boulevard|bvd|allée|allee|chemin|grande rue)"
If reg.Test(strAddr) Then
GetAddressElement = reg.Execute(strAddr)(0).SubMatches(0)
Else
GetAddressElement = ""
End If
Case "nom voie"
reg.Pattern = "(rue|impasse|avenue|boulevard|bvd|allée|allee|chemin|grande rue)(.*)"
If reg.Test(strAddr) Then
GetAddressElement = reg.Execute(strAddr)(0).SubMatches(1)
Else
GetAddressElement = ""
End If
End Select
Set reg = Nothing
End Function
tu peux toujours faire de multiples test conditionnels, mais selon moi le meilleur moyen est d'utiliser les expressions régulières .. ça fait un peu peur au début mais on s'y habitue ...
je t'ai développé une petite fonction qui nécessite l'ajout de la référence à MS VBscript regular expression 5.5
Code:
Function GetAddressElement(ByVal strAddr As String, _
ByVal strPartie As String) As String
Dim reg As VBScript_RegExp_55.RegExp
' on crée l'objet expression régulière
Set reg = New VBScript_RegExp_55.RegExp
reg.Global = True
reg.IgnoreCase = True
reg.MultiLine = False
Select Case strPartie
Case "numéro"
' motif qui définit la recherche de numéro suivi de bis ou ter
reg.Pattern = "^(\d+( bis| ter)?)"
If reg.Test(strAddr) Then
GetAddressElement = reg.Execute(strAddr)(0).SubMatches(0)
Else
GetAddressElement = ""
End If
Case "voie"
' motif qui définit la recherche de nom de voie
reg.Pattern = "(rue|impasse|avenue|boulevard|bvd|allée|allee|chemin|grande rue)"
If reg.Test(strAddr) Then
GetAddressElement = reg.Execute(strAddr)(0).SubMatches(0)
Else
GetAddressElement = ""
End If
Case "nom voie"
reg.Pattern = "(rue|impasse|avenue|boulevard|bvd|allée|allee|chemin|grande rue)(.*)"
If reg.Test(strAddr) Then
GetAddressElement = reg.Execute(strAddr)(0).SubMatches(1)
Else
GetAddressElement = ""
End If
End Select
Set reg = Nothing
End Function
C'est super mais j'ai oublié le cas ou dans l'adresse il y a le n° + une lettre (a ou b ou c...)
Par contre je ne sait pas utiliser ce genre de fonction (ou l'inscrire comment l'ajouter au foncion classique ?)
- 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