Adresse postale

typo

XLDnaute Junior
Bonjour le forum
Je travaille sur un projet de restructuration de l'adresse postale et actuellement je sèche sur une méthode en VBA qui me permettait d'éclater une adresse en deux chaines. Cette méthode doit arriver à séparer la rue et l'adresse du complément d'adresse exemple :
CHEZ M. DEGRANGE PATRICK LA POTERIE 45 RUE DES BORDES doit donner :
CHEZ M. DEGRANGE PATRICK LA POTERIE dans une cellule et
45 RUE DES BORDES dans une autre
Il est bien évident que se traitement et aléatoire si ce n'est que le numéro de la rue se trouve systématiquement avant : rue, résidence, cité ...
Si vous avez une idée je suis preneur.
En vous remerciant
Philippe
 

Staple1600

XLDnaute Barbatruc
Re : Adresse postale

Bonsoir

Jadis j'avais créer un fil à ce sujet: RNVP en VBA . Enjoy :)
J'en profite pour renouveler mes remerciements aux forumeurs suivants qui m'aidèrent
à cette époque.
Par ordre d'apparition dans ce fil (déjà vieux de 3 ans ! ;) )
• Tibo
• MyDearFriend

EDITION: Sans oublier ce fil plus récent: extraire une adresse postale

Merci également à nouveau à Jocelyn, Monique, pierrejean, Excel-lent, Tibo, sposs, abcd, Kiki29, caféine, exene et Océane (initiateur de ce fil), sans oublier Hasco qui passait par là (lol) ;)
 
Dernière édition:

typo

XLDnaute Junior
Re : Adresse postale

Bonsoir staple1600
j'ai suivi le fil que tu m'as donné et je t'en remercie
toutefois je ne trouve pas de réponse à mon souci de décomposition d'adresse. Mon projet est de prouver qu'excel est un outil formidable pour travailler net à la portée de tous.
Amicalement
Philippe
 

typo

XLDnaute Junior
Re : Adresse postale

oui merci
je l'ai vu ce post et je me suis très inspiré de la proposition de pierrejean pour extraire les bis et autre ter.
Toute fois j'en suis à ce problème ou l'adresse ce trouve en plein milieu d'une chaine.
je sait pas si s'est possible au travers d'un array ou autre find de repérer dans la cellule le chiffre qui précède les mots rue, résidence, ou place ...
Je cherche dans ce sens mais peut etre qu'une autre approche est plus efficace et plus facile à mettre en oeuvre.
En attendant je te remercie de t'interresser à mon problème.
Philippe
 

typo

XLDnaute Junior
Re : Adresse postale

bien vue la rupture sur le premier nombre.
le bléme c'est que l'adresse suivante :
Bat 8 porte 3 chez pierre 36 rue du problème: se coupe à partir de 8 et non de 36.
C'est la raison pour laquelle je cherche une formule qui prendrait en compte le mot rue ou place ou résidence ... qui sont systématiquement précédés du n° de voie.
Mais plus facile à dire qu'a faire je l'avoue
Ton approche et toutefois intéressante si un seul nombre est présent dans la chaine.
cordialement
Philippe
 

blavo

XLDnaute Nouveau
Re : Adresse postale

bonsoir,

pourquoi tu n'ajouterais pas un caractère spécifique (une virgule) pour casser ton adresse en deux morceaux... en effet si tu te bases sur le mot qui est situé après le numéro tu va devoir lister tous les mots possibles : avenue, boulevard, chemin, allée, allées,...

je sais pas : comment obtiens tu ces adresses ? par saisie manuelle (dans ce cas il est facile d'insérer un séparateur), sur un site ?

++

Ben
 

typo

XLDnaute Junior
Re : Adresse postale

Merci de vous interesser à la question
Pour les adresses en fait ce sont des fichiers données par des clients qui peuvent atteindre plusieurs milliers d'adresses.
Souvent elles sont un peu n'importe comment.
La poste impose pour des envoi une norme assez stricte.
je cherche tout simplement à remettre l'adresse suivant les règles de la poste.
J'ai bien avancé mais il me reste entre autre ce problème d'adresse ou le nom de la voie est à l'intérieur d'une chaine.
je viens de faire des essais sur excel avec la fonction cherche imbriqué dans la fonction stxt et cela semble pas trop mal.
Le principe est de repérer le mot rue ou cité ou place et de scinder la chaine trois caractères avant. Cela n'est pas trop satisfaisant mais c'est un début de piste.
Par contre je sais pas du tout comment le traduire en vba. Il faudrait que je puisse dans une boucle vérifier la présence de certains mots (rue, place , cite, résidence ou autre...) et pouvoir à partir de la position renvoyer utiliser la fonction MID pour désolidariser la chaine.
Merci encore pour votre aide
Philippe
 

Staple1600

XLDnaute Barbatruc
Re : Adresse postale

Re


Essaie de faire un fichier exemple de 50 lignes répertoriant les erreurs les plus courantes.

Utilise (si tu le souhaites), le code VBA (la macro anonymiseur) pour anonymiser tes données.

Code:
Option Explicit
Sub anonymiseur()
Dim Col_A_ANONYMISER As Byte
Dim cell As Range
Col_A_ANONYMISER = _
InputBox("Numéro de colonne contenant les données" _
& Chr(13) & "devant être rendues inintelligibles, svp ?" _
& Chr(13) & Chr(13) & Chr(13) & "Nombre <= 256 si Excel 97/2000/2003", "Choix", 1)
On Error Resume Next
For Each cell In Columns(Col_A_ANONYMISER).SpecialCells(xlCellTypeConstants)
cell.Value = StrReverse(SCRAMBLE(cell.Value))
Next
End Sub
Code:
Public Function SCRAMBLE(sCellContents As String) As String
'source:http://www.bettersolutions.com/excel/EIK284/LB620911611.htm
Dim itextlength As Integer
Dim ichar As Integer
Dim irandomposition As Integer
Dim scharacter As String * 1

    itextlength = Len(sCellContents)
    For ichar = 1 To itextlength
        scharacter = Mid(sCellContents, ichar, 1)
        irandomposition = Int((itextlength - 1 + 1) * Rnd + 1)
        Mid(sCellContents, ichar, 1) = Mid(sCellContents, irandomposition, 1)
        Mid(sCellContents, irandomposition, 1) = scharacter
    Next ichar
    
    SCRAMBLE = sCellContents
End Function
 

blavo

XLDnaute Nouveau
Re : Adresse postale

je pense que ça devrait te convenir...

le classeur se constitue de deux feuilles : une data et une controle, la feuile data contient les adreses, la feuille controle les séparateurs (comme ça c'est modifiable et évolutif ;-))

effacer le résultat et lancer la macro triAdress

++

Ben
 

Pièces jointes

  • essai2.xls
    42.5 KB · Affichages: 228
  • essai2.xls
    42.5 KB · Affichages: 226
  • essai2.xls
    42.5 KB · Affichages: 223

typo

XLDnaute Junior
Re : Adresse postale

merci à vous deux et merci au forum
Vous m'avez permit de faire un grand pas
l'approche de blavo est très souple il ne reste plus qu'à extraire le numéro de la voie de sa chaine. je vais tenter de le faire.
Merci également à toi staple1600 je vais étudier ton approche qui ne manque pas d'intérêt.
Je débute en VBA mais j'ai l'impression de tomber dans la marmite c'est vraiment génial ce que l'on peut faire avec.
cordialement
Philippe
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2