Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 19 February 2009 10:24

PaulH
Participant assidu
Lieu: Nantes
Date d'inscription: 1 Aug 2007
Messages: 463

Extraction de données

Bonjour,

Je dois géocoder une table avec des adresses. Je souhaiterai la standardiser pour permettre un bon géocodage.

Le problème c'est que l'adresse est dans un seul champ dans le fichier d'origine (.xls).

J'ai créé plusieurs champs à côté (N° voie, type de voie, adresse, CP, commune), il ne me reste plus qu'à les remplir avec les bonnes valeurs.

Seulement, je n'arrive pas à extraire les valeurs comme il faut.
Left() et Right() atteigne vite leur limite car les champs ne sont pas rempli de la même manière.

Il faudrait que j'arrive à lui faire dire: prend moi les valeurs 'rue', 'avenue','allée' et mets les moi ds le champ type_voie par exemple.


Autre problème, c'est écrit en minuscule et j'aimerai tout faire passer en majuscule pour éviter les fautes d'accents.

Je travail sous ArcMap.

Merci bcp!!

Dernière modification par luern (Thu 19 February 2009 10:30)


Paul Hedin

ex-luern

Hors ligne

 

#2 Thu 19 February 2009 11:32

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Extraction de données

Salut Luern,

Plusieurs soluces sont dispos:
Travailler sur ton fichier .xls avec une maccro pour nettoyer tes données texte.
Utiliser la calculette esri pour faire la même chose sous arcmap.
Les fonctions que tu pourrais utiliser sont:
ProperCase qui mets une majuscule au début de chaque mot ---> "rue bidulle" se transforme en "Rue Bidulle"
LowerCase qui mets tout en minuscule
UpperCase qui mets tout en majuscule
Maintenant si c'est uniquement pour enlever les accents il suffit de remplacer uniquement les é, è, ê en "e"
Voilà un post interessant:
http://www.forumsig.org/showthread.php? … ht=routine
En espérant t'aider
A+
Joël

Hors ligne

 

#3 Thu 19 February 2009 11:51

PaulH
Participant assidu
Lieu: Nantes
Date d'inscription: 1 Aug 2007
Messages: 463

Re: Extraction de données

Merci Spacejo

Le problème des accents est réglé.

Mais il me reste le principal qui est de répartir dans les bons champs, l'adresse complète se trouvant dans mon fichier de départ (.xls)...

svp, aidez moi!!


Paul Hedin

ex-luern

Hors ligne

 

#4 Thu 19 February 2009 11:59

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Extraction de données

Re,

Au niveau Maccro Excel il va falloir trouver quelqu'un d'autre sinon pour arcmap je peux t'épauler.
Tout d'abord import du fichier Excel dans arcmap
Puis la calculette esri pour créer tes champs dans ta table adresse.Il va falloir créer un petit script qui fait tout ça.
Ici la hot line à vous Luern
A+
Joël

Hors ligne

 

#5 Thu 19 February 2009 12:05

PaulH
Participant assidu
Lieu: Nantes
Date d'inscription: 1 Aug 2007
Messages: 463

Re: Extraction de données

les champs sont prets, l'importation est faite.

et UpperCase marche pas dans la calculette déjà...(je rentre UpperCase([nom_du_champ]). C'est peut-être à cause du des caractères numériques qui sont dans le champ... (12 rue Berlioz par exemple)

Pour le script, j'attends vos conseils. En tout cas merci!!

Dernière modification par luern (Thu 19 February 2009 12:08)


Paul Hedin

ex-luern

Hors ligne

 

#6 Thu 19 February 2009 12:19

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Extraction de données

Alors vérification de la nature des champs nouvellement crées.
Ces champs doivent être en "texte"
Il va falloir utiliser la calculette champs après champs car je n'ai pas encore trouvé une soluce pour distribuer sur plusieurs champs.
A+
Joël

Hors ligne

 

#7 Thu 19 February 2009 15:28

PaulH
Participant assidu
Lieu: Nantes
Date d'inscription: 1 Aug 2007
Messages: 463

Re: Extraction de données

oui oui les champs sont en texte et attendent d'être remplis

étape suivante?


Paul Hedin

ex-luern

Hors ligne

 

#8 Thu 19 February 2009 15:55

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Extraction de données

Etape suivante
------>Calculette esri en mode avancé place le code suivant

Code:

Dim First as string
Dim New as string

First=[Ton_Champs_Adresse]
New=[Ton_Nouveau_Champs_Type]

If First like "RUE*"
then New = "RUE"
Elseif adresse like "AVENUE*"
then New = "AVENUE"
Elseif adresse like "ALLEE*"
then New = "ALLEE"
Elseif adresse like "BLABLA*"
then New = "BLABLA"
End if

Dans le champs du dessous de la calculette ----> "[Ton_Nouveau_Champs_Type]="
ne pas oublier de mettre la valeur "New"
Attention je n'ai pas vérifier la syntaxe mais cela doit être quelque chose d'approchant (ne pas oublier de changer le BLABLA et de mettre autant de routine Elseif que de types que tu veux voir apparaître dans ton nouveau champs.
En espérant que cela marche
A+
Joël

Dernière modification par Spacejo (Thu 19 February 2009 15:57)

Hors ligne

 

#9 Thu 19 February 2009 17:02

PaulH
Participant assidu
Lieu: Nantes
Date d'inscription: 1 Aug 2007
Messages: 463

Re: Extraction de données

Ca marche pas...j'ai affiché le message : "nom de champ introuvable ou guillemet manquant"

je te mets tel qu'il est dans la calculette:

je coche mode avancé

Code:

Dim First as string
Dim New as string

First=[adresse]
New=[type_voie]

If First like "RUE*"
then New = "RUE"
Elseif adresse like "AVENUE*"
then New = "AVENUE"
Elseif adresse like "ALLEE*"
then New = "ALLEE"
End if

Dans le champs du dessous de la calculette ----> [type_voie]= "New"


cela vient peut-être du fait que mon champ d'origine adresse a le N° de voie devant "12 rue Berlioze"...
on est po loin...


Paul Hedin

ex-luern

Hors ligne

 

#10 Thu 19 February 2009 17:06

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Extraction de données

Alors tu as raison pour le numéro de rue ----> essaye * RUE*
Ensuite c'est ---->New et non pas "New" dans [type_Voie]=
Essaye voir
A+
Joël

Hors ligne

 

#11 Fri 20 February 2009 08:32

PaulH
Participant assidu
Lieu: Nantes
Date d'inscription: 1 Aug 2007
Messages: 463

Re: Extraction de données

Ca marche toujours pas..
mais le message d'erreur est "Erreur lors de l'exécution du code VBA:User interrupt"

j'essaye juste pour rue pour l'instant:

Code:

Dim First as string
Dim New as string

First= [Adresse_installation] 
New= [type_voie] 

If First like "*RUE*"
then New = "RUE"
End if

Dernière modification par luern (Fri 20 February 2009 08:36)


Paul Hedin

ex-luern

Hors ligne

 

#12 Fri 20 February 2009 09:00

Jeirhome
Membre
Lieu: Liverion
Date d'inscription: 22 Aug 2006
Messages: 4298
Site web

Re: Extraction de données

new est un mot-clé en VB, je me dis que ça ne doit pas trop lui plaire comme nom de variable.


Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !

Hors ligne

 

#13 Fri 20 February 2009 09:03

PaulH
Participant assidu
Lieu: Nantes
Date d'inscription: 1 Aug 2007
Messages: 463

Re: Extraction de données

toujours pas...
"Nom de champ introuvable ou guillemet manquant"


Paul Hedin

ex-luern

Hors ligne

 

#14 Fri 20 February 2009 09:12

ppluvinet
Participant assidu
Lieu: VALENCE
Date d'inscription: 6 Aug 2007
Messages: 617

Re: Extraction de données

Bonjour,

pourquoi mettre :
New= [type_voie]          ?

Cette ligne ne fait-elle pas doublon avec le champ en bas dans la calculette en mode avancé?


Pascal PLUVINET

Hors ligne

 

#15 Fri 20 February 2009 09:43

PaulH
Participant assidu
Lieu: Nantes
Date d'inscription: 1 Aug 2007
Messages: 463

Re: Extraction de données

Pas d'amélioration...


Paul Hedin

ex-luern

Hors ligne

 

#16 Fri 20 February 2009 10:20

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Extraction de données

Salut à vous,

Tu dis "pas d'amélioration" avec la suppression de New =[type_de_voie]
Est ce que tu as remplacer New par autre chose comme le suggère Jerome?
A+
Joël

Dernière modification par Spacejo (Fri 20 February 2009 10:21)

Hors ligne

 

#17 Fri 20 February 2009 10:29

PaulH
Participant assidu
Lieu: Nantes
Date d'inscription: 1 Aug 2007
Messages: 463

Re: Extraction de données

Ouai j'ai tout essayé...

Code:

Dim First as string
Dim Type as string

First= [Adresse_installation1]

If First like "*RUE*"
then Type="RUE"
End if

Avec Type_voie= Type


Paul Hedin

ex-luern

Hors ligne

 

#18 Fri 20 February 2009 10:37

ppluvinet
Participant assidu
Lieu: VALENCE
Date d'inscription: 6 Aug 2007
Messages: 617

Re: Extraction de données

Je viens de mettre ton code dans Notepad++ et le mot "Type" est reconnu en VBA.
Je te conseille de mettre une lettre.

Dim First as string
Dim a as string

First= [Adresse_installation1]

If First like "*RUE*"
then a="RUE"
End if

Avec Type_voie= a


Essaie de nouveau et dis-nous


Pascal PLUVINET

Hors ligne

 

#19 Fri 20 February 2009 10:38

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Extraction de données

Re,

Essaye voir ceci:

Code:

Dim First as string
Dim Type as string

First= [Adresse_installation1]

If First like "* RUE*"
then
Type="RUE"
End if

Dernière modification par Spacejo (Fri 20 February 2009 10:39)

Hors ligne

 

#20 Fri 20 February 2009 10:42

Jeirhome
Membre
Lieu: Liverion
Date d'inscription: 22 Aug 2006
Messages: 4298
Site web

Re: Extraction de données

Dans ce que tu viens juste de mettre, il y a le premier Type = [type_voie]  qui a disparu !

Aussi, je ne sais pas si c'est important, mais normalement, le Then est sur la même ligne que la condition.


Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !

Hors ligne

 

#21 Fri 20 February 2009 10:50

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Extraction de données

Effectivement Jerome tu as raison
Que donne le code de ppluvinet?
Par contre je mettrais "a="RUE" en dessous du then

Code:

Dim First as string
Dim a as string

First= [Adresse_installation1]

If First like "*RUE*" then
a="RUE"
End if

Avec Type_voie= a

A+
Joël

Dernière modification par Spacejo (Fri 20 February 2009 10:53)

Hors ligne

 

#22 Fri 20 February 2009 10:51

PaulH
Participant assidu
Lieu: Nantes
Date d'inscription: 1 Aug 2007
Messages: 463

Re: Extraction de données

arf!!! ça marche pas!!!

pareil j'ai tenté les différentes possibilités en changeant Type par a et avec l'écriture de spacejo et inversement...
merci en tout cas pour toutes vos réponses!!
on va trouver, on va trouver!!

Dernière modification par luern (Fri 20 February 2009 10:53)


Paul Hedin

ex-luern

Hors ligne

 

#23 Fri 20 February 2009 10:55

ppluvinet
Participant assidu
Lieu: VALENCE
Date d'inscription: 6 Aug 2007
Messages: 617

Re: Extraction de données

Essaye :

Dim First as string
Dim a as string

First= [Adresse_installation1]

If First like "*RUE*" then
a="RUE"
End if

Avec Type_voie= a


Pascal PLUVINET

Hors ligne

 

#24 Fri 20 February 2009 10:57

PaulH
Participant assidu
Lieu: Nantes
Date d'inscription: 1 Aug 2007
Messages: 463

Re: Extraction de données

Et le winner is PPLUVINET!!!!

ca marche!!

P**** de format d'écriture!!

merci beaucoup!!


Paul Hedin

ex-luern

Hors ligne

 

#25 Fri 20 February 2009 10:59

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Extraction de données

Ah on a 2 fois le même code ppluvinet et moi donc on doit se rapprocher de la soluce
Pas vraiment it's me the winner regarde mon dernier code
A+
Joël

Dernière modification par Spacejo (Fri 20 February 2009 11:02)

Hors ligne

 

#26 Fri 20 February 2009 11:05

PaulH
Participant assidu
Lieu: Nantes
Date d'inscription: 1 Aug 2007
Messages: 463

Re: Extraction de données

Merci en tout cas pck jy comprenais que pouic!
On va dire égalité pour le fairplay de la géomatique!!


Paul Hedin

ex-luern

Hors ligne

 

#27 Fri 20 February 2009 11:08

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Extraction de données

Tout à fait d'accord avec toi wink
Maintenant passons à la fonction "Elseif"
Bon courage !!!
A+
Joël

Hors ligne

 

#28 Fri 20 February 2009 11:09

Jeirhome
Membre
Lieu: Liverion
Date d'inscription: 22 Aug 2006
Messages: 4298
Site web

Re: Extraction de données

On dit

Effectivement Jerome tu as raison


, on propose un code selon ma proposition, puis après on dit que c'est ppluvinet et Spacejo qui ont gagné sad

Je pars bouder durant tout le week-end big_smile

++


Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !

Hors ligne

 

#29 Fri 20 February 2009 11:13

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Extraction de données

Jérôme C a écrit:

On dit

Effectivement Jerome tu as raison


, on propose un code selon ma proposition, puis après on dit que c'est ppluvinet et Spacejo qui ont gagné sad

Je pars bouder durant tout le week-end big_smile

++


Non tu rigoles c'est pas fini Luern n'est qu'au début de la résolution de son problème et personnelement je te remercie du coup de pouce
A+ Jérome
Joël

Hors ligne

 

#30 Fri 20 February 2009 11:13

ppluvinet
Participant assidu
Lieu: VALENCE
Date d'inscription: 6 Aug 2007
Messages: 617

Re: Extraction de données

tous des winner!

on retiendra trois choses:
1. attention à ne pas utiliser en nom de variable des mot qui existe déjà en VB ( ex: new, type...)
2. la place de "then" dans le code
3. quand on est plusieurs à réfléchir, on avance plus vite!

A bientot


Pascal PLUVINET

Hors ligne

 

Pied de page des forums

Powered by FluxBB