Boucle If sous VB
Résolu/Fermé
ethomas
Messages postés
2
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
20 juin 2007
-
20 juin 2007 à 11:03
sofiane - 18 juil. 2008 à 13:43
sofiane - 18 juil. 2008 à 13:43
A voir également:
- Boucle If sous VB
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Mon PC s'allume puis s'éteint tout seul. Que faire ? ✓ - Forum Matériel & Système
13 réponses
sfel
Messages postés
1640
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
15 juillet 2009
430
20 juin 2007 à 11:07
20 juin 2007 à 11:07
ce type de code marche très bien sous VB
regarde un peu les tutoriaux ici :
https://vb.developpez.com/cours/
regarde un peu les tutoriaux ici :
https://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
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...(???)
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...(???)
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
18 juil. 2008 à 12:01
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
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
sfel
Messages postés
1640
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
15 juillet 2009
430
20 juin 2007 à 11:26
20 juin 2007 à 11:26
de rien, met l'option résolu devant ton titre (si tu reviens)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
galsene84
Messages postés
1
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
30 juin 2008
30 juin 2008 à 12:06
30 juin 2008 à 12:06
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!!
mets le pc beugue directement et ché pas pk. Merci davance pour votre aide!!
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
30 juin 2008 à 12:16
30 juin 2008 à 12:16
bonjour,
Mets ton bout de code pour qu'on puissse se faire une idée ... merci
;o)
Mets ton bout de code pour qu'on puissse se faire une idée ... merci
;o)
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.
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.
Steefif
Messages postés
485
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
15 février 2013
19
9 juil. 2008 à 14:51
9 juil. 2008 à 14:51
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...
pke pour le moment ce pseudo code m'a l'air corect.
il y a peut etre une petite pichenette quelque part...
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
9 juil. 2008 à 14:54
9 juil. 2008 à 14:54
bonjour les tests ne s'ecrivent pas comme cela:
If 0 < x <= 1 Then
doit s'ecrire
if (x >0) and (x<=1) then
...
If 0 < x <= 1 Then
doit s'ecrire
if (x >0) and (x<=1) then
...
Steefif
Messages postés
485
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
15 février 2013
19
9 juil. 2008 à 14:55
9 juil. 2008 à 14:55
d'ou l'interet de voir le code...
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.
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.
Steefif
Messages postés
485
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
15 février 2013
19
10 juil. 2008 à 11:20
10 juil. 2008 à 11:20
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!
ai pire imbrique deux fonctions if
sinon c'ets bien que tu aies trouvé!
bonne continuation, et ptet a bientot!
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!!
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!!
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
>
sofiane
17 juil. 2008 à 15:01
17 juil. 2008 à 15:01
Set myCell = Application.InputBox( _
prompt:="Select a cell", Type:=8)
NoLigne=myCell.Row
NoCol=myCell.Column
prompt:="Select a cell", Type:=8)
NoLigne=myCell.Row
NoCol=myCell.Column
sofiane
>
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
17 juil. 2008 à 15:07
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
sofiane
>
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
18 juil. 2008 à 11:19
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
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
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
>
sofiane
18 juil. 2008 à 11:32
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)
Les 2 autres te donne les lignes et colonnes de la case selectionnée (code testé sur ma machine)
20 juin 2007 à 11:20
Merci beaucoup!!!!