Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

variable avec if

P

phil

Guest
Bonjour,

Est-il possible dans VBA qu'une variable soit déterminée à partir d'une formule contenant if. Voici ce que j'ai écrit mais ça ne l'accepte pas. Quelle est la syntaxe exacte ?

tranche_age = if(age_enfant<=4,"00 à 04 ans",if(and age_enfant>=5,age_enfant<=10),"05 à 10 ans",if(and(age_enfant>=11,age_enfant<=14),"11 à 14 ans",if(and(age_enfant>=15,age_enfant<=16),"15 à 16 ans","Trop agé"))))


Je vous remercie pour votre aide

Phil
 
S

STéphane

Guest
bonjour

pour répondre au pied de la lettre, oui c'est possible en utilisant l'instruction iif (un if avec deux i devant)

sinon il y a des moyens peut être plus propre de répondre à tes besoins notamment avec la méthode Select Case

bye
Stéphane
 
P

philippe

Guest
Merci mais je ne connais pas la méthode select case. J'ai regardé dans l'aide mais çà ne m'a pas beaucoup éclairé. Peux tu me donner un exemple avec mon cas sachant que age_enfant est entré par inputbox ?

Phil
 
@

@+Thierry

Guest
Bonsoir Philippe,

STéphane doit faire un bon dodo là....

La méthode Select est là plus rapide à capter en VBA (enfin moi je trouve, mais souvent on cherche à faire trop compliqué et on passe à coté)

Tu n'as qu'à adapter çà ...

Sub LesCases()
Age = InputBox("Entrer l'age du gamin", "Case Age", "taper un chiffre...")
Select Case Age
Case 0 To 4
MsgBox "00 à 04 ans"
Case 5 To 10
MsgBox "05 à 10 ans"
Case 11 To 14
MsgBox "11 à 14 ans"
Case Else
MsgBox "Trop agé"
End Select
End Sub


Ce n'est pas compliqué... comme je disais !! (on pouvait laisser STéphane dormir tranquille)

Bon Week End
@+Thierry
 
@

@+Thierry

Guest
Bonjour Phil,

Le iif avec deux "i" que STéphane t'a indiqué ne peut permettre qu'une seule condition sur deux possibilité "truepart" ou "falsepart".

Si tu n'avais qu'une tranche d'age à gérer ce serait applicable facilement avec ce genre de function (tirée de l'aide)
Function CheckIt(TestMe As Integer)
CheckIt = IIf(TestMe < 16, "Age OK", "Trop Agé")
End Function

Mais ici non ! ou alors faudrait faire une sorte de cascade de variable et ce ne serait franchement pas l'idéal.


Si tu veux vraiment des If (If you really want If !!! lol)
On peut aussi faire çà :

Sub AgeIf ()
age = InputBox("Entrer un age")
If age > 0 And age <= 4 Then Message = "00 à 04 ans"
If age > 4 And age <= 10 Then Message = "05 à 10 ans"
If age > 10 And age <= 14 Then Message = "11 à 14 ans"
If age > 14 Then Message = "Trop agé"
MsgBox Message
End Sub

Voilà comme çà on a fait le tour de la question... (mais je préfère les case select, comme STéphane)

Bon appétit
@+Thierry
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…