#1 Tue 07 August 2012 13:30
- Corine89
- Participant occasionnel
- Date d'inscription: 14 May 2011
- Messages: 23
Calcul conditionnel en VBA (Arcgis 10)
Bonjour,
Je souhaiterais à partir de note saisi dans un champs numérique [NLIT] assimiler dans un champs texte (EcoLit) les informations texte correspondantes
Je rentre ce code, il fonctionne a moitié car par exemple pour une valeur de 3 qui devrait normalement correspondre à Moyen, il m'attribue la catégorie Médiocre...
Code:
Dim EcoLit If [NLIT] <2 Then EcoLit = "Mauvais" elseif 2<= [NLIT] <2.5 Then EcoLit = "Médiocre" elseif 2.5<= [NLIT] <3.5 Then EcoLit = "Moyen" elseif 3.5<= [NLIT] <4.5 Then EcoLit = "Bon" elseif [NLIT] <= 4.5 EcoLit = "Trés bon" End if
Quelqu'un aurait -il une piste?
Hors ligne
#2 Tue 07 August 2012 14:17
- Nicolas Granier
- Participant assidu
- Date d'inscription: 19 Apr 2007
- Messages: 271
Re: Calcul conditionnel en VBA (Arcgis 10)
Bonjour,
pour ma part j'essaierai de bien décomposer les conditions en premier. Autrement dit au lieu d'écrire
Code:
elseif 2.5<= [NLIT] <3.5 Then
je tenterai plutôt
Code:
elseif 2.5<= [NLIT] and [NLIT]<3.5 Then
Il faut aussi s'assurer que la colonne [NLIT] contient bien des valeurs de type numérique.
A+
Hors ligne
#3 Tue 07 August 2012 14:32
Re: Calcul conditionnel en VBA (Arcgis 10)
Je suis d'accord avec Nicolas cependant
si tu fais des if imbriqués il n'y a pas besoin de borne inférieur
petite remarque : c'est >= sur le très bon sinon c'est pas logique
Code:
Dim EcoLit If [NLIT] <2 Then EcoLit = "Mauvais" else if [NLIT] <2.5 Then EcoLit = "Médiocre" else if [NLIT] <3.5 Then EcoLit = "Moyen" else if [NLIT] <4.5 Then EcoLit = "Bon" else if [NLIT] >= 4.5 EcoLit = "Trés bon" End if End if End if End if End if
A+
Dernière modification par Forestis (Tue 07 August 2012 14:34)
[Matthieu Pette - Ad Terram] (@Ad_Terram sur le PiouPiou bleu)
~Géomaticien Indépendant~
Hors ligne
#4 Tue 07 August 2012 14:48
- Corine89
- Participant occasionnel
- Date d'inscription: 14 May 2011
- Messages: 23
Re: Calcul conditionnel en VBA (Arcgis 10)
Je suis passée sous excel ou j'ai rencontré les mêmes problèmes en voulant trop détailler les bornes.
Problème résolu sous Excell la solution c'est de fait imposée sous arcgis
Merci à vous pour votre aide cependant
Hors ligne
#5 Tue 07 August 2012 15:12
Re: Calcul conditionnel en VBA (Arcgis 10)
Bonjour,
On peut aussi faire avec la commande "Case", écriture dans ce style :
Code:
Select Case Case [NLIT] <2 EcoLit = "Mauvais" Case [NLIT] >= 2 AND [NLIT] <2.5 EcoLit = "Médiocre" ... ... End Select
Hors ligne
#6 Wed 08 August 2012 09:22
Re: Calcul conditionnel en VBA (Arcgis 10)
Bonjour,
Problème résolu sous Excell la solution c'est de fait imposée sous arcgis
Peut-être pourrais-tu détailler cette solution qui s'est imposée sous ArcGIS ?
Cela pourrait aider d'autre personne...
Merci
Franck
Hors ligne
#7 Thu 09 August 2012 16:50
- Corine89
- Participant occasionnel
- Date d'inscription: 14 May 2011
- Messages: 23
Re: Calcul conditionnel en VBA (Arcgis 10)
Bonjour, oui bien sur.
Code:
Dim ECOLIT If [NLIT] <2 Then ECOLIT = "Mauvais" elseif [NLIT] <2.5 Then ECOLIT = "Mediocre" elseif [NLIT] <3.5 Then ECOLIT = "Moyen" elseif [NLIT] <4.5 Then ECOLIT = "Bon" elseif [NLIT] >= 4.5 Then ECOLIT = "Tres bon" End if
----->
Et sous excell:
=SI(J2<2;"Mauvais";SI(J2<2,5;"Mediocre";SI(J2<3,5;"Moyen";SI(J2<4,5;"Bon";SI(J2>=4,5;"Tres Bon")))))
Voila. Bonne journée
Hors ligne
#8 Thu 09 August 2012 16:54
- Corine89
- Participant occasionnel
- Date d'inscription: 14 May 2011
- Messages: 23
Re: Calcul conditionnel en VBA (Arcgis 10)
Je viens de me rendre compte que c'est la même chose que ce que proposé par Foresti...
sauf que je n'ai pas mis tout les "end if" et j'ai utilisé "elseif"
Autant pour moi ..
Hors ligne