Séparation numéro d'une adresse postal(Excel)
Résolu/Fermé
mathraxe
michel_m
- Messages postés
- 26
- Date d'inscription
- mardi 10 août 2010
- Statut
- Membre
- Dernière intervention
- 23 mai 2012
michel_m
- Messages postés
- 16569
- Date d'inscription
- lundi 12 septembre 2005
- Statut
- Contributeur
- Dernière intervention
- 23 mai 2022
A voir également:
- Séparation numéro d'une adresse postal(Excel)
- Séparation numéro d'une adresse postal(Excel) ✓ - Forum - Programmation
- VBA Excel - Séparer une adresse postale dans plusieurs colonnes - Conseils pratiques - Excel
- Séparer numéro adresse excel ✓ - Forum - VB / VBA
- Trouver un numéro de téléphone avec une adresse postale ✓ - Forum - Internet / Réseaux sociaux
- Trouver une adresse postale avec un numéro de téléphone ✓ - Forum - Mobile
5 réponses
michel_m
17 mai 2011 à 10:42
- Messages postés
- 16569
- Date d'inscription
- lundi 12 septembre 2005
- Statut
- Contributeur
- Dernière intervention
- 23 mai 2022
17 mai 2011 à 10:42
Bonjour
Une proposition parmi d'autres possibles
et la macro pour les 7000 lignes
Une proposition parmi d'autres possibles
Function codepost(adresse As String) As String Dim separe, cptr As Byte, cptr1 As Byte, retour As String separe = Split(adresse) For cptr = 0 To UBound(separe) If IsNumeric(separe(cptr)) Then Exit For Next For cptr1 = cptr To UBound(separe) retour = retour & " " & separe(cptr1) Next codepost = LTrim(retour) End Function
et la macro pour les 7000 lignes
Sub extraire_cp() Dim derlig As Integer, texto As String, cptr As Integer Dim liste derlig = Cells(Cells.Rows.Count, 1).End(xlUp).Row liste = Application.Transpose(Range("A2:A" & derlig)) For cptr = 1 To UBound(liste) texto = liste(cptr) liste(cptr) = codepost(texto) Next Application.ScreenUpdating = False Range("B2:B" & derlig) = Application.Transpose(liste) End Sub
mathraxe
17 mai 2011 à 11:50
- Messages postés
- 26
- Date d'inscription
- mardi 10 août 2010
- Statut
- Membre
- Dernière intervention
- 23 mai 2012
17 mai 2011 à 11:50
Salut Michel,
je viens d'essayer, la macro fonctionne super bien mais ne prend pas le format "119A, 119-A"
Je te remercie pour ta réponse rapide et presque tip top c'est sympa
merci
je viens d'essayer, la macro fonctionne super bien mais ne prend pas le format "119A, 119-A"
Je te remercie pour ta réponse rapide et presque tip top c'est sympa
merci
michel_m
17 mai 2011 à 11:59
- Messages postés
- 16569
- Date d'inscription
- lundi 12 septembre 2005
- Statut
- Contributeur
- Dernière intervention
- 23 mai 2022
17 mai 2011 à 11:59
re,
peux tu expliquer; mais ne prend pas le format "119A, 119-A"
je me suis basé sur les 3 lignes que tu as donné ???
peux tu expliquer; mais ne prend pas le format "119A, 119-A"
je me suis basé sur les 3 lignes que tu as donné ???
mathraxe
17 mai 2011 à 13:09
- Messages postés
- 26
- Date d'inscription
- mardi 10 août 2010
- Statut
- Membre
- Dernière intervention
- 23 mai 2012
17 mai 2011 à 13:09
re
Colonne A:
Avenue Louise 381-383
Avenue Adolphe Buyl 110A
Colonne B:
Rien
Pour ce genre de format il me laisse une case vide
merci de ton aide Michel tu vas m'éviter un moment de galere :-)
Colonne A:
Avenue Louise 381-383
Avenue Adolphe Buyl 110A
Colonne B:
Rien
Pour ce genre de format il me laisse une case vide
merci de ton aide Michel tu vas m'éviter un moment de galere :-)
michel_m
17 mai 2011 à 13:29
- Messages postés
- 16569
- Date d'inscription
- lundi 12 septembre 2005
- Statut
- Contributeur
- Dernière intervention
- 23 mai 2022
17 mai 2011 à 13:29
Okay, compris, je regarde...
michel_m
17 mai 2011 à 13:34
- Messages postés
- 16569
- Date d'inscription
- lundi 12 septembre 2005
- Statut
- Contributeur
- Dernière intervention
- 23 mai 2022
17 mai 2011 à 13:34
modifié en regardant si le 1° caractère de chaque mot commence par un chiffre
Function codepost(adresse As String) As String Dim separe, cptr As Byte, cptr1 As Byte, retour As String separe = Split(adresse) For cptr = 0 To UBound(separe) If IsNumeric(Left(separe(cptr), 1)) Then Exit For Next For cptr1 = cptr To UBound(separe) retour = retour & " " & separe(cptr1) Next codepost = LTrim(retour) End Function
mathraxe
17 mai 2011 à 15:36
- Messages postés
- 26
- Date d'inscription
- mardi 10 août 2010
- Statut
- Membre
- Dernière intervention
- 23 mai 2012
17 mai 2011 à 15:36
comment faite vous pour lancer la macro?
pour Sub extraire_cp()
Dim derlig As Integer, texto As String, cptr As Integer
Dim liste
derlig = Cells(Cells.Rows.Count, 1).End(xlUp).Row
liste = Application.Transpose(Range("A2:A" & derlig))
For cptr = 1 To UBound(liste)
texto = liste(cptr)
liste(cptr) = codepost(texto)
Next
Application.ScreenUpdating = False
Range("B2:B" & derlig) = Application.Transpose(liste)
End Sub
j ai ouvert vba insertion - module - coller - rebasculer sous excel - macro - executer
mais la je ne vois pas
merci de votre patiente et encore merci
pour Sub extraire_cp()
Dim derlig As Integer, texto As String, cptr As Integer
Dim liste
derlig = Cells(Cells.Rows.Count, 1).End(xlUp).Row
liste = Application.Transpose(Range("A2:A" & derlig))
For cptr = 1 To UBound(liste)
texto = liste(cptr)
liste(cptr) = codepost(texto)
Next
Application.ScreenUpdating = False
Range("B2:B" & derlig) = Application.Transpose(liste)
End Sub
j ai ouvert vba insertion - module - coller - rebasculer sous excel - macro - executer
mais la je ne vois pas
merci de votre patiente et encore merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
michel_m
17 mai 2011 à 16:51
- Messages postés
- 16569
- Date d'inscription
- lundi 12 septembre 2005
- Statut
- Contributeur
- Dernière intervention
- 23 mai 2022
17 mai 2011 à 16:51
Il faut coller la sub et la fonction dans un module
et sous Excel macro-executer
ou dans l'éditeur cliquer dans sub et F5
YTout à l'heure ca avait l'air de marcher puisque tu avais noté le problème des faux-chiffres....
et sous Excel macro-executer
ou dans l'éditeur cliquer dans sub et F5
YTout à l'heure ca avait l'air de marcher puisque tu avais noté le problème des faux-chiffres....