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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Thu 01 August 2019 08:21

SIGstud_V
Juste Inscrit !
Date d'inscription: 10 Jul 2019
Messages: 4

Calculateur de champ avec condition multiple

Bonjour,

je dois créer un champ à partir d'un autre sur ArcMap, mais je ne maîtrise ni le VBscript, ni python. Mon problème est le suivant :

J'ai une [colonne X] dont les valeurs sont des chaines de caractères sous cette forme "X.X.X.X", je cherche à calculer un nouveau [champ Z] de sorte que:
si le début de la chaine de la [colonne X] = "X.X" alors [champ Z] = "rocher",
si le début de la chaine = "A.X et X.A" alors [champ Z] = "pelouse",
si le début de la chaine = "A.A" et alors [champ Z] = "sable",
etc... il y a environ 5 conditions identiques.

Je voulais savoir si quelqu'un avait un script à me proposer, car je ne connais pas les mots clefs ni la typo à respecter.

Merci beaucoup!

Hors ligne

 

#2 Fri 02 August 2019 14:37

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: Calculateur de champ avec condition multiple

Plusieurs solutions ici : https://community.esri.com/thread/21689

Hors ligne

 

#3 Wed 07 August 2019 11:13

SIGstud_V
Juste Inscrit !
Date d'inscription: 10 Jul 2019
Messages: 4

Re: Calculateur de champ avec condition multiple

merci bien,

malheureusement les scripts ne sont pas corrects j'ai toujours un message d'erreur : "syntaxe incorrect" ou "caractère incorrect"... j'ai essayé les différents scripts en changeant la typo quand ça ne marchait pas, et avec des champs plus simples, mais rien ne marche.
Et je ne sais toujours pas comment sélectionner seulement les 2 premiers caractères dans la chaine et non la chaine entière...

Hors ligne

 

#4 Fri 09 August 2019 16:28

s10
Participant occasionnel
Lieu: France
Date d'inscription: 28 Nov 2018
Messages: 23

Re: Calculateur de champ avec condition multiple

Dans la calculatrice de champs tu coches bien "Code de script Pre-Logic" ?

Avec ca puis dans la case "Code de script" :

Code:

Dim Variable
If [TONCHAMP]="1" Then
Variable= "a"
End If

et en dessous dans le champ sur lequel tu as calculé :
TOTO =
Variable


Aussi, si tu as un champs en texte mets bien les guillemets et inversement en nombre il en faut pas

Code:

If [NUMERO] = 1 Then
If [NOMDEVILLE] = "Paris" Then

En espérant que ça t'aide,

Hors ligne

 

#5 Mon 12 August 2019 11:32

SIGstud_V
Juste Inscrit !
Date d'inscription: 10 Jul 2019
Messages: 4

Re: Calculateur de champ avec condition multiple

ça a marché! \o/    smile
J'ai rentré ce script dans le bloc de code pré-logic :
il fallait juste penser à créer une variable au préalable ("niv_sensi" ici) de type chaine et de longueur suffisante sinon ça bloque le calcul.

Dim niv_sensi
If [Int_Hab] = -998 Then
niv_sensi = "Nulle"
ElseIf [Int_Hab] = -999 Then
niv_sensi = "Nulle"
ElseIf [Int_Hab] = 0 Then
niv_sensi = "Nulle"
ElseIf [Int_Hab] = 1 Then
niv_sensi = "Nulle"
ElseIf [Int_Hab] = 2 Then
niv_sensi = "Faible"
ElseIf [Int_Hab] = 4 Then
niv_sensi = "Moyen"
ElseIf [Int_Hab] = 5 Then
niv_sensi = "Fort"
End If


Et dans la fenêtre du calcule de champ :
sensi =
niv_sensi


Donc ça m'a bien aidé! Merci Beaucoup!
A bientôt!

Hors ligne

 

#6 Tue 13 August 2019 11:43

Eckmül
Participant actif
Date d'inscription: 5 Feb 2019
Messages: 50

Re: Calculateur de champ avec condition multiple

Tu peux aussi utiliser les sous-type de champs dans ArcCatalog pour faire correspondre un code ? une description plus explicite :

Cr?er une GDB de toute tes couches, va dans propri?t?s de la couche dans la GDB, puis dans sous-types puis "domaines"

Hors ligne

 

Pied de page des forums

Powered by FluxBB