Les Allergies
Alimentaires
Posez votre question Signaler

Boucle If sous VB [Résolu]

ethomas 2Messages postés 20 juin 2007Date d'inscription - Dernière réponse le 18 juil. 2008 à 13:43
Bonjour,
J'ai réalisé une boucle If qui devrait marcher sous VB(toutes celles que j'ai faites sur le mm modèle fonctionnent) mais elle ne tient pas sur une ligne, du coup ça bug. Pourriez vous me dire comment faire pour faire comprendre à l'instruction d'aller à la ligne suivante ?
Merci beaucoup
PS : je débute, alors je ne suis pas trés trés douée...
Lire la suite 

Boucle If sous VB »

21 réponses
Réponse
+7
moins plus
ce type de code marche très bien sous VB
regarde un peu les tutoriaux ici :
http://vb.developpez.com/cours/

If AgeFrederic > 30 Then
     'Instructions si la condition est vraie
     msg = "Frédéric a plus de 30 ans"
     MsgBox msg
ElseIf AgeFrederic >25 Then
     'Instructions si la condition est vraie
     msg = "Frédéric a plus de 25 ans"
     MsgBox msg
ElseIf AgeFrederic >20 Then
     'Instructions si la condition est vraie
     msg = "Frédéric a plus de 20 ans"
     MsgBox msg
ElseIf AgeFrederic > 15 Then
     'Instructions si la condition est vraie
     msg = "Frédéric a plus de 15 ans"
     MsgBox msg
Else
     'Instructions si la condition est fausse
     msg = "Frédéric a 15 ans ou moins de 15 ans"
     MsgBox msg
End If
ethomas- 20 juin 2007 à 11:20
J'ai testé et ça marche nickel!
Merci beaucoup!!!!
Ajouter un commentaire
Réponse
+0
moins plus
de rien, met l'option résolu devant ton titre (si tu reviens)
Ajouter un commentaire
Réponse
+0
moins plus
bonjour je suis un debutant en vb ,j'aimerai savoir comment on programme avec un if?
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour je suis débutant en vb . j'ai un ptit problème dans mon if .O fait jveu mettre if a=b and b=c then ...
mets le pc beugue directement et ché pas pk. Merci davance pour votre aide!!
Ajouter un commentaire
Réponse
+0
moins plus
bonjour,

Mets ton bout de code pour qu'on puissse se faire une idée ... merci

;o)
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour à tous,

pour ma part je n'arrive pas à imbriquer plusieurs boucles if, avec une seule ça roule, mais avec plusieurs on dirait qu'une seule est prise en compte. Ca ne marche pas tout à fait comme du langage C a priori, quelqu'un pourrait-il m'expliquer mon problème de syntaxe? voici une version simplifiée de mon problème :

Function a(x)
If 0 < x <= 1 Then
a = 1
ElseIf 1 < x <= 2 Then
a = 2
Else
a = 0
End If
End Function

Cela donne toujours a=1.

Merci.
Ajouter un commentaire
Réponse
+0
moins plus
peux tu mettre ton vrai code stp?
pke pour le moment ce pseudo code m'a l'air corect.
il y a peut etre une petite pichenette quelque part...
Ajouter un commentaire
Réponse
+0
moins plus
bonjour les tests ne s'ecrivent pas comme cela:

If 0 < x <= 1 Then

doit s'ecrire
if (x >0) and (x<=1) then

...
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour tout le monde, merci de m'avoir répondu. En fait j'ai trouvé ça aussi hier, ce langage n'accepte pas les encadrements, j'ai essayé :

if x>i-1 and x<i then (sans parenthèse ça marche)
a=i
...

Voilà merci beaucoup, bonne continuation.


ps: j'abuse peut être un peu mais si qqn sait comment on fait pour que cette fonction soit toujours utilisable(sur la version 2007) je suis preneur.
Ajouter un commentaire
Réponse
+0
moins plus
dsl je connais pas du tout excel 2007
ai pire imbrique deux fonctions if
sinon c'ets bien que tu aies trouvé!
bonne continuation, et ptet a bientot!
sofiane - 17 juil. 2008 à 15:07
Ah j me doutait bien qu'il fallait utiliser une inputbox mais je ne savais vraiment pas comment. Merci beaucoup en tout cas c du rapide. Bonne soirée
sofianezavenger - 18 juil. 2008 à 11:19
Salut,

en fait ce code ne marche pas on dirait que mycell n'est pas reconnu comme une celllule (déclaré comme objet pourtant, et ça marche pour des entiers par contre) ou alors il faut utiliser une autre fonction, ou une propriété de inputbox, je ne sais pas...Si tu ne vois pas d'où viens le pb ce n'est pas bien grave je l'ai déjà contourné, mais j'aimerais savoir qd mêm.

merci
zavenger- 18 juil. 2008 à 11:32
qu'est ce qui ne marche pas. Le code te fourni (la premiere ligne) un objet de type range.
Les 2 autres te donne les lignes et colonnes de la case selectionnée (code testé sur ma machine)
Ajouter un commentaire
Réponse
+0
moins plus
ben par exemple dans mon code test j'ai:
Sub f()
Dim mycell As Object
Dim k As Integer, l As Integer
mycell = Application.InputBox("choisir une cellule", "choix d'une cellule")
k = mycell.Row
l = mycell.Column
MsgBox "k=" & k & "l=" & l
End Sub



du coup je fais comme ça:
Sub g()
Dim k As Integer, l As Integer
k = InputBox("indice ligne", "choix case", 1)
l = InputBox("indice colone", "choix case", 1)
MsgBox "k=" & k & " & " & "l=" & l
End Sub

Le premier ne marche pas. Mais moi j'aimerai cliquer sur une cellule au lieu d'entrer les indices. Du coup ça vient soit de la declaration de mycell, soit de l'application Application.InputBox qui ne marche pas pour les objets...(???)
sofiane - 18 juil. 2008 à 11:58
(rien à voir ms ds le premier code c en fait:
MsgBox "k=" & k & " & " & "l=" & l )
zavenger- 18 juil. 2008 à 12:01
il faut que tu respecte la syntaxe

Set myCell = Application.InputBox(prompt:="Select a cell", Type:=8)

mycell est un objet et DOIT etre affecte avec un Set
Type = 8 permet de verifier que la selection est bien un range
Ajouter un commentaire
Réponse
+0
moins plus
ok g compris, merci bcp
Ajouter un commentaire
Réponse
-1
moins plus
d'ou l'interet de voir le code...
Ajouter un commentaire
Ce document intitulé « Boucle If sous VB » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?