OVH Cloud OVH Cloud

Mon Code ne fonctionne pas

9 réponses
Avatar
Ayrton [ ASC ]
Bonjour à tous,

En vu de faire une MsgBox dans une appli , j'ai testé avant sur quelque
chose sans importance maais mon code ne fonctionne pas ; je peux compiler et
je n'ai pas de message d'erreur mais ma condition Elseif ne fonctionne pas ;
voici mon code:
Sub test()
Dim x As String
Dim y As String
x = zizou
y = InputBox("Quel est le surnom du numero 10 de l'équipe de france ?", "
Question Foot")
If x = zizou Then
MsgBox (" Gagné !")
ElseIf y = "" Or y <> x Then
MsgBox (" Perdu !")
End If
End Sub

Quoi que je tape, c'est toujours la MsgBox ( Gagné ! ) qui s'affiche ;
j'aimerais comprendre ce qui cloche et ou je me suis trompé.
Pour cet exemple ce n'est pas grave mais pour la suite si ça ne fonctionne
pas mieux, ça va faire désordre ! ;-)

Un grand merci d'avance à vousd tous

--
Cordialement
Christophe

9 réponses

Avatar
Gafish
Ayrton [ ASC ] wrote:
Bonjour à tous,


Bonjour,

mais ma condition
Elseif ne fonctionne pas ; voici mon code:
Sub test()
Dim x As String
Dim y As String
x = zizou
y = InputBox("Quel est le surnom du numero 10 de l'équipe de france
?", " Question Foot")
If x = zizou Then
MsgBox (" Gagné !")
ElseIf y = "" Or y <> x Then
MsgBox (" Perdu !")
End If
End Sub


Normal, il faut que tu remplaces ta ligne
If x = zizou
par
If y = zizou
sinon en déroulant ton code, c'est forcément tout le temps x = zizou, car tu
l'initialises comme cela et tu ne le touches plus ensuite.

Arnaud

Avatar
Ayrton [ ASC ]
Bonjour,

" Gafish "
Normal, il faut que tu remplaces ta ligne
If x = zizou
par
If y = zizou
sinon en déroulant ton code, c'est forcément tout le temps x = zizou,
car tu l'initialises comme cela et tu ne le touches plus ensuite.


Salut Arnaud,

Merci pour ce complément d'information !
Moi et les erreurs de syntaxe ! ! !
Dur dur l'apprentissage ;-)

En tout cas, merci beaucoup.

--
Cordialement
Christophe

Avatar
Ayrton [ ASC ]
Re Arnaud,

Normal, il faut que tu remplaces ta ligne
If x = zizou
par
If y = zizou
sinon en déroulant ton code, c'est forcément tout le temps x = zizou,
car tu l'initialises comme cela et tu ne le touches plus ensuite.


Bon, je viens de tester ; ça marche si les caractères tapés sont fifférents
de Zizou mais ça ne me prends pas le <> ; si rien n'est tapé dans la Msgbox,
ça retourne " Gagné " ;-(
Donc je dois avoir un souci dans ma syntaxe non ?

Merci

--
Cordialement
Christophe

Avatar
Gafish
Ayrton [ ASC ] wrote:
Re Arnaud,


re

Bon, je viens de tester ; ça marche si les caractères tapés sont
fifférents de Zizou mais ça ne me prends pas le <> ; si rien n'est
tapé dans la Msgbox, ça retourne " Gagné " ;-(
Donc je dois avoir un souci dans ma syntaxe non ?


c'est bizarre, si tu ne rentres rien ou sur tu cliques sur cancel, le
inpubox renvoit une chaine vide "".
Dans tous les cas, je mettrai plutôt le code suivant dans ton cas :

Dim x As String
Dim y As String
x = "zizou"
y = InputBox("Quel est le surnom du numero 10 de l'équipe de france ?",
"Question Foot")
If trim(x) = trim(y) Then
MsgBox (" Gagné !")
Else
MsgBox (" Perdu !")
End If

ca marche ?

Arnaud

Avatar
Eric
Bonjour,
Et ça :

Sub test()
Dim x As String
Dim y As String
x = "zizou"
y = InputBox("Quel est le surnom du numero 10 de l'équipe de france
?", _
"Question Foot")
If LCase(y) = x Then
MsgBox (" Gagné !")
Else
MsgBox (" Perdu !")
End If
End Sub

Re Arnaud,


Normal, il faut que tu remplaces ta ligne
If x = zizou
par
If y = zizou
sinon en déroulant ton code, c'est forcément tout le temps x = zizou,
car tu l'initialises comme cela et tu ne le touches plus ensuite.



Bon, je viens de tester ; ça marche si les caractères tapés sont fifférents
de Zizou mais ça ne me prends pas le <> ; si rien n'est tapé dans la Msgbox,
ça retourne " Gagné " ;-(
Donc je dois avoir un souci dans ma syntaxe non ?

Merci



--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Avatar
Ayrton [ ASC ]
Re Arnaud,

" Gafish "
c'est bizarre, si tu ne rentres rien ou sur tu cliques sur cancel, le
inpubox renvoit une chaine vide "".
Dans tous les cas, je mettrai plutôt le code suivant dans ton cas :

Dim x As String
Dim y As String
x = "zizou"
y = InputBox("Quel est le surnom du numero 10 de l'équipe de france
?", "Question Foot")
If trim(x) = trim(y) Then
MsgBox (" Gagné !")
Else
MsgBox (" Perdu !")
End If

ca marche ?


oui ça marche ;-) Merci beaucoup !
Dernière question : c'est quoi "trim" ?

Merci

--
Cordialement
Christophe

Avatar
Ayrton [ ASC ]
Bonjour Eric,

" Eric "
Bonjour,
Et ça :

Sub test()
Dim x As String
Dim y As String
x = "zizou"
y = InputBox("Quel est le surnom du numero 10 de l'équipe de
france ?", _
"Question Foot")
If LCase(y) = x Then
MsgBox (" Gagné !")
Else
MsgBox (" Perdu !")
End If
End Sub


C'est pil poil ! !Ca fonctionne aussi ;-)
Vous êtes des chefs ! !
Je vais pouvoir le mette en application pour des choses plus sérieuses ;-)

Merci Eric

--
Cordialement
Christophe

Avatar
Gafish
Ayrton [ ASC ] wrote:
Re Arnaud,



re-re :)

oui ça marche ;-) Merci beaucoup !
Dernière question : c'est quoi "trim" ?


trim ca permet de supprimer les espaces inutiles à gauche et à droite, c'est
simplement une petite sécurité supplémentaire.

Arnaud

Avatar
Ayrton [ ASC ]
Re re Re ;-)

" Gafish "
trim ca permet de supprimer les espaces inutiles à gauche et à
droite, c'est simplement une petite sécurité supplémentaire.


Merci Arnaud pour cette précision supplémentaire !

Bonne fin de journée
A plus tard

--
Cordialement
Christophe