Récupérer Code postal parmis une adresse complète
Résolu/Fermé
zlatan40
Messages postés
42
Date d'inscription
dimanche 20 février 2011
Statut
Membre
Dernière intervention
1 avril 2018
-
28 mars 2018 à 17:23
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 1 avril 2018 à 13:11
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 1 avril 2018 à 13:11
A voir également:
- Récupérer Code postal parmis une adresse complète
- Darkino nouvelle adresse - Guide
- Rechercher ou entrer l'adresse - Guide
- Créer une adresse hotmail - Guide
- Darkino : le grand site pirate change d'adresse et d'interface - Accueil - Services en ligne
- Adresse mac - Guide
2 réponses
M-12
Messages postés
1331
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
8 avril 2023
283
28 mars 2018 à 17:43
28 mars 2018 à 17:43
Bonjour
A tester avec une formule matricielle
https://www.cjoint.com/c/HCCpQMBVHET
A tester avec une formule matricielle
https://www.cjoint.com/c/HCCpQMBVHET
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
29 mars 2018 à 11:10
29 mars 2018 à 11:10
Bonjour,
en suivant le site indiqué ici:
https://forums.commentcamarche.net/forum/affich-35285266-recuperer-code-postal-parmis-une-adresse-complete#2
code vba:
Voilà
en suivant le site indiqué ici:
https://forums.commentcamarche.net/forum/affich-35285266-recuperer-code-postal-parmis-une-adresse-complete#2
code vba:
Option Explicit Dim Var As Variant Dim result As String Sub For_X_to_Next_Ligne() Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long Dim longueur As Integer Set FL1 = Worksheets(ActiveSheet.Name) NoCol = 1 'lecture de la colonne A For NoLig = 1 To Range("A" & Rows.Count).End(xlUp).Row 'dernière ligne colonne A Var = FL1.Cells(NoLig, NoCol) If Var = "" Then Else FL1.Cells(NoLig, NoCol).Select extraireValeursNumeriques_DansChaine longueur = Len(result) 'longueur chaine numerique If longueur = 5 Then FL1.Cells(NoLig, NoCol + 1) = result 'code postal dans colonne B FL1.Cells(NoLig, NoCol) = Replace(FL1.Cells(NoLig, NoCol), result, "") 'supprime code postal dans la colonne A si utilité, sinon supprimer la ligne de code End If End If Next Set FL1 = Nothing End Sub Sub extraireValeursNumeriques_DansChaine() Dim i As Byte, nb As Byte Dim Cible As String, Resultat As String Dim Nombre As Double Cible = Var 'Pour que fonction Val puisse reconnaitre les décimales: Remplacement des 'virgules par des points Cible = Replace(Cible, ",", ".") 'Pour gérer deux nombres qui se suivent: remplacement des espaces 'par un caractère Alpha Cible = Replace(Cible, " ", "x") For i = 1 To Len(Cible) If IsNumeric(Mid(Cible, i, 1)) Then Nombre = Val(Mid(Cible, i, Len(Cible) - i + 1)) nb = nb + 1 Resultat = Resultat & Nombre & vbLf i = i + Len(Str(Nombre)) - 1 End If Next result = Nombre End Sub Private Sub CommandButton1_Click() For_X_to_Next_Ligne End Sub
Voilà
28 mars 2018 à 21:36
Merci pour la réponse, j'ai en effet trouvé sur un autre sujet comment faire autrement avec formule matricielle mais aussi sans.
https://forums.commentcamarche.net/forum/affich-2514762-excel-chaine-de-caracteres
Mais j'ai tout de même posé la question car cette formule est beaucoup plus simple et la possibilité de chercher plusieurs valeur, comme dans l'exemple [0-9], pourrait m'être très utile sur d'autres utilisations.
Merci
Modifié le 29 mars 2018 à 01:05
avec "[0-9]" j'ai l'impression qu'OO accepte les expressions régulières (REGEX).
Là il est en avance sur excel qui les ignore totalement (hors vba).
eric
1 avril 2018 à 10:08
C'est exactement ce que je voudrais savoir, est-ce possible ou non ?
1 avril 2018 à 10:19
je t'ai répondu : non, sauf vba.
cs_Le Pivert t'a fait une proposition en vba en dessous...
eric
Modifié le 1 avril 2018 à 12:50
Comme tu avais écrit "j'ai l'impression", je ne savais pas si tu étais sûr de ta réponse.
En effet, il y a plein d'autres moyens de le faire sinon :
- formule matricielle et VBA https://cellulexcel.blogspot.com/p/adresse-decoupage.html
- formule non matricielle https://www.cjoint.com/c/HDbkUmxjwDd
ou encore https://forums.commentcamarche.net/forum/affich-2514762-excel-chaine-de-caracteres
Donc il est bien impossible sous Excel d'utiliser les expressions régulières dans les formules
Merci