Rechercher : dans
Par :

Boucle If sous VB

Dernière réponse le 18 jui 2008 à 13:43:38 ethomas, le 20 jun 2007 à 11:03:28 
 Signaler ce message aux modérateurs

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...

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « Boucle If sous VB » dans :
VBScript - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (VBScript associe le mot clé true à...
PHP - Structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (le PHP associe le mot clé true à 1...
Langage C - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...

1

sfel, le 20 jun 2007 à 11:07:20
  • +3

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
L'ennemi est bête : il croît que c'est nous l'ennemi, alors que c'est lui !
GLOUGLOU ...

Répondre à sfel

2

ethomas, le 20 jun 2007 à 11:20:16
  • +1

J'ai testé et ça marche nickel!
Merci beaucoup!!!!

Répondre à ethomas

3

sfel, le 20 jun 2007 à 11:26:26

De rien, met l'option résolu devant ton titre (si tu reviens)
L'ennemi est bête : il croît que c'est nous l'ennemi, alors ­que c'est lui !
GLOUGLOU ...

Répondre à sfel

4

dacosta, le 27 jun 2008 à 10:58:04

Bonjour je suis un debutant en vb ,j'aimerai savoir comment on programme avec un if?

Répondre à dacosta

5

galsene84, le 30 jun 2008 à 12:06:14

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!!

Répondre à galsene84

6

Polux31, le 30 jun 2008 à 12:16:55
  • +1

Bonjour,

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

;o) «Ce que l'on conçoit bien s'énonce clairement, Et les mots p­our le dire arrivent aisément.» 
Nicolas Boileau

Répondre à Polux31

7

sofiane, le 9 jui 2008 à 14:48:07

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.

Répondre à sofiane

8

Steefif, le 9 jui 2008 à 14:51:35

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... La vie c'est comme une boite de chocolat, on ne sait jamais ­sur quoi on va tomber.

Répondre à Steefif

9

zavenger, le 9 jui 2008 à 14:54:55
  • +1

Bonjour les tests ne s'ecrivent pas comme cela:

If 0 < x <= 1 Then

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

...

Répondre à zavenger

10

Steefif, le 9 jui 2008 à 14:55:54

D'ou l'interet de voir le code... La vie c'est comme une boite de chocolat, on ne sait jamais ­sur quoi on va tomber.

Répondre à Steefif

11

sofiane, le 10 jui 2008 à 11:14:31

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.

Répondre à sofiane

12

Steefif, le 10 jui 2008 à 11:20:24

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! La vie c'est comme une boite de chocolat, on ne sait jamais ­sur quoi on va tomber.

Répondre à Steefif

13

sofiane, le 17 jui 2008 à 14:43:40

Salut, dsl d'avoir encore besoin 2 te déranger, saurais tu par hasard coment on peut, dans un code sous vba, faire un genre 2 pause pour demander à l'utilisateur de choisir une cellule?

Pour l'instant j'utilise 2 inputbox au début pour demander les coordonnées de la cellule, mais ce serait tellement plus simple de cliquer directement, au lieu de convertir mentalement l'indice colonne FO en 171...

merci beaucoup!!

Répondre à sofiane

14

zavenger, le 17 jui 2008 à 15:01:52

Set myCell = Application.InputBox( _
prompt:="Select a cell", Type:=8)
NoLigne=myCell.Row
NoCol=myCell.Column

Répondre à zavenger

15

sofiane, le 17 jui 2008 à 15:07:03

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

Répondre à sofiane

16

sofiane, le 18 jui 2008 à 11:19:56

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

Répondre à sofiane

17

zavenger, le 18 jui 2008 à 11:32:01

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)

Répondre à zavenger

18

sofiane, le 18 jui 2008 à 11:56:48

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...(???)

Répondre à sofiane

19

sofiane, le 18 jui 2008 à 11:58:10

(rien à voir ms ds le premier code c en fait:
MsgBox "k=" & k & " & " & "l=" & l )

Répondre à sofiane

20

zavenger, le 18 jui 2008 à 12:01:28

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

Répondre à zavenger

21

 sofiane, le 18 jui 2008 à 13:43:38

Ok g compris, merci bcp

Répondre à sofiane