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é ?

#31 Fri 20 February 2009 12:21

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

Re: Extraction de données

attendez attendez, je crois qu'il va y avoir d'autres petits soucis... wink

Dernière modification par luern (Fri 20 February 2009 12:21)


Paul Hedin

ex-luern

Hors ligne

 

#32 Fri 20 February 2009 13:12

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

Re: Extraction de données

Alors nous en étions rester à:

Code:

Dim First as string
Dim a as string

First=[Adresse_installation1]

If First like "* RUE*" then
a = "RUE"
Elseif First like "* AVENUE*" then
a = "AVENUE"
Elseif First like "* ALLEE*" then
a = "ALLEE"
Elseif Fisrt like "* BLABLA*" then
a = "BLABLA"
End if

placer dans Type_voie=  ----> a

En attendant la suite des Em...des
A+
Joël

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

Hors ligne

 

#33 Mon 23 February 2009 08:38

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

Re: Extraction de données

Bonjour!!!

Alors la suite...

Je vous explique ce qu'il reste à faire. Tout d'abord, remplir le champ N°_Voie.
ex: 15, rue du Général De Gaulle -->   15
En réalité, je viens de le faire avec Left ( [Adresse_installation1],2  ) et avec N°_Voie en Entier court (comme ça, on extrait que les valeurs numériques).

Ensuite, remplir le champ Adresse
ex: 15, rue du Général De Gaulle --> du Général De Gaulle
Je pense qu'il serait plus simple de supprimer dans le champ d'origine les N° et les Type_voies et les , .


Et enfin effacer le champ adresse d'origine.

Il reste aussi le problème des lieux-dits. Dois-je mettre dans le champ [Type_Voie] pour tous les autres valeurs non-comprise dans le script, la valeur lieux-dits?

Voilà
Bon début de semaine à tous!!


Paul Hedin

ex-luern

Hors ligne

 

#34 Mon 23 February 2009 10:01

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

Re: Extraction de données

Salut Luern,

Pour extraire ta valeur numérique "N° de rue" tu pouvais utiliser ----> la focntion Val  voir :
---> (http://msdn.microsoft.com/fr-fr/library … S.80).aspx)
A+
Joël

Hors ligne

 

#35 Mon 23 February 2009 10:25

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

Re: Extraction de données

Magie des SIG, plusieurs solutions possibles.
J'attends vos conseils pour le reste
merci


Paul Hedin

ex-luern

Hors ligne

 

#36 Mon 23 February 2009 10:35

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

Re: Extraction de données

Re,

peux tu préciser pour les lieux dits car je n'ai pas tout compris?
A+
Joël

Hors ligne

 

#37 Mon 23 February 2009 10:50

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

Re: Extraction de données

En fait, il faudrait mettre une valeur par défaut pour tous les champs qui sont restés vides après le traitement sur les Type_voie. Cette valeur serait Lieux-dits.

Et reste à nettoyer le champ adresse pour ne laisser que l'adresse brut(sans N°voie et Type_voie)?

Et l'extraction du N°_voie de convient pas...on a des bis, des ter donc il faudrait pouvoir extraire ces informations en plus.

Dernière modification par luern (Mon 23 February 2009 11:06)


Paul Hedin

ex-luern

Hors ligne

 

#38 Mon 23 February 2009 12:58

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

Re: Extraction de données

Re,

Pour les lieux dits, tu veux lorsqu'il n'y a rien dans "Type_de_voie" mettre ---> "Lieux dits" c'est ça?

Code:

if [Type_de_Voie] = "" then
a = "Lieux Dits"
end if

En ce qui concerne "Ter", "Bis" il va falloir changer la nature de ton champs [Type_de_Voie] car Ter et Bis c'est du texte.
---> Reprendre la routine Elseif avec "Ter" puis "Bis" puis dans le champs [N°_de_Rue] concaténer la chaine TER ou BIS

Code:

Dim First as string
Dim a as string

First=[Adresse_installation1]

If First like "* TER *" then
a = [N°_Rue]&"TER"
Elseif First like "* BIS *" then
a = [N°_Rue]&"BIS"
End if

placer dans Type_voie=  ----> a

Il y a peut être des problèmes de syntaxe mais cela te donne des pistes.
En espèrant que cela t'aide
A+
Bon courage
Joël

Dernière modification par Spacejo (Mon 23 February 2009 13:35)

Hors ligne

 

#39 Mon 23 February 2009 14:16

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

Re: Extraction de données

Ca marche sauf que ça m'efface les N° qui étaient présents.

En fait, la démarche à suivre est la suivante:

1/
-création d'un champ N°_voie -->format texte
-création d'un champ Numero_voie --> format numérique

2/
Remplissage du champ Numero_voie avec la fonction Left()

3/
Exécution du script:

Code:

Dim First as string
Dim a as string

First=[Adresse_installation1]

If First like "* TER *" then
a = [Numero_voie]&"TER"
Elseif First like "* BIS *" then
a = [Numero_voie]&"BIS"
End if

placer dans Type_voie=  ----> a

4/
??? Il faudrait reporter les informations Numero_voie dans N°_voie mais sans enlever les informations des BIS et TER. Rajouter une ligne dans le script suivant comme:

Elseif First like "" then
a = [Numero_voie]

mais cette condition fait buguer le script...


Paul Hedin

ex-luern

Hors ligne

 

#40 Mon 23 February 2009 14:45

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 a as string

First=[Adresse_installation1]

If First like "* TER *" then
a = [Numero_voie]&"TER"
Elseif First like "* BIS *" then
a = [Numero_voie]&"BIS"
Elseif First NOT like "* TER *" OR NOT like "* BIS *" then
a= [Numero_voie]
End if

placer dans Type_voie=  ----> a

En espérant que cela fonctionnne
A+
Joël

Hors ligne

 

#41 Mon 23 February 2009 14:53

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

Re: Extraction de données

Désolé ça ne marche pas...
Peut être que ma méthode est mauvaise, on peut peut être extraire les informations sans créer 2 champs


Paul Hedin

ex-luern

Hors ligne

 

#42 Mon 23 February 2009 14:58

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

Re: Extraction de données

Le dernier code ne marche pas c'est cela?

Hors ligne

 

#43 Mon 23 February 2009 15:09

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

Re: Extraction de données

Bonjour,

Verifie bien que type de voie est bien en type "carctère"
Le code suivant ressemble à celui de Spacejo, essaie-le


Dim First as string
Dim a as string

First=[Adresse_installation1]

If First like "* TER *" then
a = [Numero_voie]&"TER"
Else
if First like "* BIS *" then
a = [Numero_voie]&"BIS"
Else
a= [Numero_voie]
End if
End if

placer dans Type_voie=  ----> a


As-tu un message d'erreur?


Pascal PLUVINET

Hors ligne

 

#44 Mon 23 February 2009 15:17

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

Re: Extraction de données

N°_voie (champ définitif devant accueillir les N° et éventuellement BIS, TER,...) -->texte
[Numero_voie] (champ provisoire acceuillant les N°) --> entier court

Les scripts ne marchent pas -->
"Erreur lors de l'exécution du code VBA"


Paul Hedin

ex-luern

Hors ligne

 

#45 Mon 23 February 2009 15:36

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

Re: Extraction de données

Et ceci ?

Dim First as string
Dim a as string
Dim b as integer

First=[Adresse_installation1]
b = [Numero_voie]

If First like "* TER *" then
a = Cstr(b)&"TER"
Else
if First like "* BIS *" then
a = Cstr(b)&"BIS"
Else
a= Cstr(b)
End if
End if

placer dans N°_voie=  ----> a


Pascal PLUVINET

Hors ligne

 

#46 Mon 23 February 2009 15:57

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

Re: Extraction de données

Aprés quelques petites corrections:
Essaye ceci:

Code:

Dim First as string
Dim a as string

First=[Adresse_installation1]

If First like "* TER *" then
a = [Numero_voie]&"TER"
ElseIf First like "* BIS *" then
a = [Numero_voie]&"BIS"
ElseIf First not like "* TER *" and not like "* BIS *" then
a= [Numero_voie]
End If

placer dans Type_voie=  ----> a

A+
Joël

Hors ligne

 

#47 Mon 23 February 2009 16:17

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

Re: Extraction de données

arf, non ca marche pas mais le premier script marché:

Dim First as string
Dim a as string

First=[Adresse_installation1]

If First like "* TER *" then
a = [Numero_voie] &"TER"
Elseif First like "* BIS *" then
a = [Numero_voie] &"BIS"
End if


Sauf qu'il faudrait récupérer les valeurs du champ [Numero_voie] dans [N°_voie] sans écraser les valeurs trouvées par le script ci-dessus.


Paul Hedin

ex-luern

Hors ligne

 

#48 Mon 23 February 2009 16:26

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

Re: Extraction de données

Normalement ce code:

Code:

Dim First as string
Dim a as string

First=[Adresse_installation1]

If First like "* TER *" then
a = [Numero_voie] &"TER"
Elseif First like "* BIS *" then
a = [Numero_voie] &"BIS"
End if

Doit te charger tous les lignes qui ont un "ter" ou un "bis" dans leur libellé d' [Adresse_installation1] avec le N° et Ter ou Bis.

Cette ligne qui visiblement pose problème prend tous les autres lignes qui ne comporte ni "Ter" ni "Bis" dans le libellé et charge uniquement le N°

Code:

ElseIf First not like "* TER *" and not like "* BIS *" then
a= [Numero_voie]

Je suis sur que l'on est pas loin.

JEROME et PASCAL au secours aidez nous wink
A+
Joël

Dernière modification par Spacejo (Mon 23 February 2009 16:27)

Hors ligne

 

#49 Mon 23 February 2009 16:41

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

Re: Extraction de données

Il me semble qu'il faut placer le "NOT" avant first :

ElseIf not First  like "* TER *" and not First like "* BIS *" then
a= [Numero_voie]


Par contre, il peut y avoir un problème avec le "and". Essaie une fois sans le "and not First like "* BIS *" pour voir si cela marche.

Dernière modification par ppluvinet (Mon 23 February 2009 16:56)


Pascal PLUVINET

Hors ligne

 

#50 Mon 23 February 2009 16:48

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

Re: Extraction de données

Au fait, est ce que ton problème pour les lieux dits est résolu?

Hors ligne

 

#51 Mon 23 February 2009 17:00

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

Re: Extraction de données

Re,

le "AND" est impératif ------> C'est l'erreur que j'ai fait avant. ---> Si il n'y a pas "Ter" OU si il n'y a pas" Bis" alors mettre le N° de rue
Ce qui n'est pas bon
Ce qu'il faut c'est ----->Si il n'y a pas "Ter" ET si il n'y a pas "Bis" alors mettre N° de rue
La fonction "not like"  est à utiliser
Ou je me gourre complètement sad

Dernière modification par Spacejo (Mon 23 February 2009 17:15)

Hors ligne

 

#52 Mon 23 February 2009 17:20

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

Re: Extraction de données

Tu me fais douter à savoir s'il faut plutot un AND ou un OR !?

Par contre, J'ai regardé quelques codes sur le web, et on met généralement le "NOT" avant la variable.

luern doit essayer un peu tout, bien voir s'il n'y a pas des erreur de frappe et on va bien trouver le bon code.


Pascal PLUVINET

Hors ligne

 

#53 Mon 23 February 2009 18:09

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

Re: Extraction de données

En dernière condition, le plus simple est de mettre simplement "Else".

Sinon, on peut toujours faire en deux étapes. Puisqu'apparemment les deux étapes fonctionnent bien séparemment et que le seul problème est que la dernière étape n'annule pas l'avant-dernière, il faut juste sélectionner les éléments qui n'ont pas été mis à jour, alors la formule ne s'applique que sur la sélection.


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

Hors ligne

 

#54 Mon 23 February 2009 18:29

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

Re: Extraction de données

Re,

En mettant un Else comme l'indique Jérome cela ferait ça:

Code:

Dim First as string
Dim a as string

First=[Adresse_installation1]

If First like "* TER *" then
a = [Numero_voie]&"TER"
Elseif First like "* BIS *" then
a = [Numero_voie]&"BIS"
Else 
a = [Numero_voie]
End if

A+

Dernière modification par Spacejo (Mon 23 February 2009 18:32)

Hors ligne

 

#55 Mon 23 February 2009 18:36

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

Re: Extraction de données

cala revient au même que mon post de 15:09, non?


Pascal PLUVINET

Hors ligne

 

#56 Mon 23 February 2009 19:22

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

Re: Extraction de données

Pas tout à fait tu utilises 2 If Else imbriqués
Et ça je sais que la calculette, elle aime pas beaucoup, c'est pour cela que j'utilises  ElseIf.
Par contre qu'elle est cette fonction -----> Cstr(b)
Peux tu me donner quelques explications (je débute en VB et je suis preneur de tous bons conseils)
Merci d'avance
A+
Joël

Dernière modification par Spacejo (Mon 23 February 2009 19:22)

Hors ligne

 

#57 Tue 24 February 2009 08:42

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

Re: Extraction de données

Je suis désolé mais aucun ne marche. J'ai tout essayé.

J'ai essayé en enlevant la première moitié et en la rajoutant après sur (comme ppluvinet):

ElseIf not First  like "* TER *" and not First like "* BIS *" then
a= [Numero_voie]

mais ça ne marche pas.

Jy suis arrivé quand même en deux étapes. La première avec la partie du script qui fonctionne:

Dim First as string
Dim a as string

First=[Adresse_installation1]

If First like "* TER *" then
a = [Numero_voie] &"TER"
Elseif First like "* BIS *" then
a = [Numero_voie] &"BIS"
End if


Ensuite j'ai réalisé une sélection sur les éléments non remplis et j'ai calculer les valeurs en faisant:

[Numero_voie]=[N°voie]

Reste un dernier problème...extraire le reste de l'adresse:

15 rue des champs Elysée extraire "des champs Elysée"

Autre mise au point, je souhaiterai faire une modification pour les types de voie. En effet, mon remplissage doit suivre la nomenclature suivante:

15 rue des champs Elysée --> [Type_voie]= rue des
route de la Roche --> [Type_voie]= route de

Seulement, quand je rajoute des Elseif selon

If First like "*RUE*" then
a="RUE"
If First like "*RUE DES*" then
a="RUE DES"

J'ai un message d'erreur VBA, j'ai l'impression qu'il n'accepte pas les petites différences car si j'enlève le "RUE" simple, "RUE DES" fonctionne très bien...

Dernière modification par luern (Tue 24 February 2009 09:44)


Paul Hedin

ex-luern

Hors ligne

 

#58 Tue 24 February 2009 10:03

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

Re: Extraction de données

Salut Luern,

Code:

If First like "*RUE*" then
a="RUE"
If First like "*RUE DES*" then
a="RUE DES"

On ne peut pas mettre des IF en cascade, c'est pour cela qu'il faut utiliser les ElseIf:

Code:

If First like "*RUE*" then
a="RUE"
ElseIf First like "*RUE DES*" then
a="RUE DES"
ElseIf First like "CONDITION" then
a="RESULTAT"

A+
Joël

Dernière modification par Spacejo (Tue 24 February 2009 10:05)

Hors ligne

 

#59 Tue 24 February 2009 10:04

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

Re: Extraction de données

pffff...merci SpaceJo
erreur de copier/coller

Ca c'est réglé...
tu vois comment on pourrait extraire le reste de l'adresse?


Paul Hedin

ex-luern

Hors ligne

 

#60 Tue 24 February 2009 10:12

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

Re: Extraction de données

Re,

2 petites questions:
Comment s'est passé le problème de "lieux dits"?
Comment sont tes adresses? Elles sont toutes sous cette forme? ----> N°_Type de Voie_Adresse    ex: 15 Rue des Sauterelles
Type de Voie--->Rue, Avenue, etc....  Il faudrait que tu nous donnes tous les Types que l'on peut rencontrer.
A+
Joël

Hors ligne

 

Pied de page des forums

Powered by FluxBB