Je tente de faire un contr=F4le sur une inputbox avec un compteur :
J'ai =E9crit ceci, (dernier test avant envoie) :
Dim Q5 As String
Dim compteur As Integer
compteur =3D 0
Q5 =3D InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu , SVP",
"Demande d'information")
Do While compteur < 3
If Q5 <> "Tata" Or Q5 <> "Titi" or Q5 <> "Toto" or Q5<>
"Tutu" Then
MsgBox "Veuillez saisir Tata, Toto, Titi ou Tutu , SVP" &
Chr(13) & "Seuls Tata, Toto, Titi ou Tutu sont autoris=E9s pour cette
zone =E0 compl=E9ter", vbExclamation, "Demande d'information"
Q5 =3D InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu ,
SVP", "Demande d'information")
compteur =3D compteur + 1
End If
Loop
Exit Sub
Je rencontre plusieurs probl=E8mes :
Ma liste de conditions est beaucoup plus longue, et avec des Noms de
personne. Est ce que les Or sont limitatif ?
Mes lignes de commandes correspondent elles bien =E0 ce que je veux
faire ?
car au cours de mes divers test et modification de commande je
rencontre, soit une sortie de la macro (exit sub), soit l'inscription
d'une donn=E9e non d=E9sir=E9e.
Merci par avance de vos suggestions.
Cordialement.
Alex
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gilbert
Bonjour,
Si tu veux ne pouvoir saisir que Tata, Titi, Toto ou Tutu, tu dois utiliser des AND : Q5 <> "Tata" AND Q5 <> "Titi" AND Q5 <> "Toto" AND Q5<> "Tutu" Then
Avec des OR tu remplis toujours trois des conditions. Si tu saisis Tata, tu remplis les conditions <> "Titi", <> "Toto", <> "Tutu"
-- Cordialement,
Gilbert
"Alex" a écrit dans le message de news: Bonjour à tous,
Je tente de faire un contrôle sur une inputbox avec un compteur : J'ai écrit ceci, (dernier test avant envoie) :
Dim Q5 As String Dim compteur As Integer compteur = 0 Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu , SVP", "Demande d'information") Do While compteur < 3 If Q5 <> "Tata" Or Q5 <> "Titi" or Q5 <> "Toto" or Q5<> "Tutu" Then MsgBox "Veuillez saisir Tata, Toto, Titi ou Tutu , SVP" & Chr(13) & "Seuls Tata, Toto, Titi ou Tutu sont autorisés pour cette zone à compléter", vbExclamation, "Demande d'information" Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu , SVP", "Demande d'information") compteur = compteur + 1 End If Loop Exit Sub
Je rencontre plusieurs problèmes : Ma liste de conditions est beaucoup plus longue, et avec des Noms de personne. Est ce que les Or sont limitatif ? Mes lignes de commandes correspondent elles bien à ce que je veux faire ? car au cours de mes divers test et modification de commande je rencontre, soit une sortie de la macro (exit sub), soit l'inscription d'une donnée non désirée. Merci par avance de vos suggestions. Cordialement. Alex
Bonjour,
Si tu veux ne pouvoir saisir que Tata, Titi, Toto ou Tutu, tu dois utiliser
des AND :
Q5 <> "Tata" AND Q5 <> "Titi" AND Q5 <> "Toto" AND Q5<> "Tutu" Then
Avec des OR tu remplis toujours trois des conditions.
Si tu saisis Tata, tu remplis les conditions <> "Titi", <> "Toto", <> "Tutu"
--
Cordialement,
Gilbert
"Alex" <alex-m@orange.fr> a écrit dans le message de
news:04a48dfb-85d9-4bd4-b23e-939390dd5c08@p30g2000vbt.googlegroups.com...
Bonjour à tous,
Je tente de faire un contrôle sur une inputbox avec un compteur :
J'ai écrit ceci, (dernier test avant envoie) :
Dim Q5 As String
Dim compteur As Integer
compteur = 0
Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu , SVP",
"Demande d'information")
Do While compteur < 3
If Q5 <> "Tata" Or Q5 <> "Titi" or Q5 <> "Toto" or Q5<>
"Tutu" Then
MsgBox "Veuillez saisir Tata, Toto, Titi ou Tutu , SVP" &
Chr(13) & "Seuls Tata, Toto, Titi ou Tutu sont autorisés pour cette
zone à compléter", vbExclamation, "Demande d'information"
Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu ,
SVP", "Demande d'information")
compteur = compteur + 1
End If
Loop
Exit Sub
Je rencontre plusieurs problèmes :
Ma liste de conditions est beaucoup plus longue, et avec des Noms de
personne. Est ce que les Or sont limitatif ?
Mes lignes de commandes correspondent elles bien à ce que je veux
faire ?
car au cours de mes divers test et modification de commande je
rencontre, soit une sortie de la macro (exit sub), soit l'inscription
d'une donnée non désirée.
Merci par avance de vos suggestions.
Cordialement.
Alex
Si tu veux ne pouvoir saisir que Tata, Titi, Toto ou Tutu, tu dois utiliser des AND : Q5 <> "Tata" AND Q5 <> "Titi" AND Q5 <> "Toto" AND Q5<> "Tutu" Then
Avec des OR tu remplis toujours trois des conditions. Si tu saisis Tata, tu remplis les conditions <> "Titi", <> "Toto", <> "Tutu"
-- Cordialement,
Gilbert
"Alex" a écrit dans le message de news: Bonjour à tous,
Je tente de faire un contrôle sur une inputbox avec un compteur : J'ai écrit ceci, (dernier test avant envoie) :
Dim Q5 As String Dim compteur As Integer compteur = 0 Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu , SVP", "Demande d'information") Do While compteur < 3 If Q5 <> "Tata" Or Q5 <> "Titi" or Q5 <> "Toto" or Q5<> "Tutu" Then MsgBox "Veuillez saisir Tata, Toto, Titi ou Tutu , SVP" & Chr(13) & "Seuls Tata, Toto, Titi ou Tutu sont autorisés pour cette zone à compléter", vbExclamation, "Demande d'information" Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu , SVP", "Demande d'information") compteur = compteur + 1 End If Loop Exit Sub
Je rencontre plusieurs problèmes : Ma liste de conditions est beaucoup plus longue, et avec des Noms de personne. Est ce que les Or sont limitatif ? Mes lignes de commandes correspondent elles bien à ce que je veux faire ? car au cours de mes divers test et modification de commande je rencontre, soit une sortie de la macro (exit sub), soit l'inscription d'une donnée non désirée. Merci par avance de vos suggestions. Cordialement. Alex
FFO
Salut à toi
Tu peux mettre comme ceci :
Liste = "Toto,Tata,Titi,Tutu" Valide = 0 For i = 0 To UBound(Split(Liste, ",")) If Split(Liste, ",")(i) = Q5 Then Valide = 1 Exit For End If Next If Valide = 0 Then
Ce qui donne au final :
Dim Q5 As String Dim compteur As Integer compteur = 0 Liste = "Toto,Tata,Titi,Tutu" Q5 = InputBox("Veuillez saisir " & Liste & " , SVP", "Demande d'information") Valide = 0 Do While compteur < 3 For i = 0 To UBound(Split(Liste, ",")) If Split(Liste, ",")(i) = Q5 Then Valide = 1 Exit For End If Next If Valide = 0 Then MsgBox "Veuillez saisir " & Liste & " , SVP" & Chr(13) & "Seuls " & Liste & " sont autorisés pour cette zone à compléter", vbExclamation, "Demande d'information" Q5 = InputBox("Veuillez saisir " & Liste & " , SVP", "Demande d'information") compteur = compteur + 1 End If
Tu n'as plus qu'à actualiser la variable 'Liste' des données à saisir en tête de code
Peut être du mieux pour toi
Dis moi !!!!!!
Salut à toi
Tu peux mettre comme ceci :
Liste = "Toto,Tata,Titi,Tutu"
Valide = 0
For i = 0 To UBound(Split(Liste, ","))
If Split(Liste, ",")(i) = Q5 Then
Valide = 1
Exit For
End If
Next
If Valide = 0 Then
Ce qui donne au final :
Dim Q5 As String
Dim compteur As Integer
compteur = 0
Liste = "Toto,Tata,Titi,Tutu"
Q5 = InputBox("Veuillez saisir " & Liste & " , SVP",
"Demande d'information")
Valide = 0
Do While compteur < 3
For i = 0 To UBound(Split(Liste, ","))
If Split(Liste, ",")(i) = Q5 Then
Valide = 1
Exit For
End If
Next
If Valide = 0 Then
MsgBox "Veuillez saisir " & Liste & " , SVP" &
Chr(13) & "Seuls " & Liste & " sont autorisés pour cette
zone à compléter", vbExclamation, "Demande d'information"
Q5 = InputBox("Veuillez saisir " & Liste & " ,
SVP", "Demande d'information")
compteur = compteur + 1
End If
Tu n'as plus qu'à actualiser la variable 'Liste' des données à saisir en
tête de code
Liste = "Toto,Tata,Titi,Tutu" Valide = 0 For i = 0 To UBound(Split(Liste, ",")) If Split(Liste, ",")(i) = Q5 Then Valide = 1 Exit For End If Next If Valide = 0 Then
Ce qui donne au final :
Dim Q5 As String Dim compteur As Integer compteur = 0 Liste = "Toto,Tata,Titi,Tutu" Q5 = InputBox("Veuillez saisir " & Liste & " , SVP", "Demande d'information") Valide = 0 Do While compteur < 3 For i = 0 To UBound(Split(Liste, ",")) If Split(Liste, ",")(i) = Q5 Then Valide = 1 Exit For End If Next If Valide = 0 Then MsgBox "Veuillez saisir " & Liste & " , SVP" & Chr(13) & "Seuls " & Liste & " sont autorisés pour cette zone à compléter", vbExclamation, "Demande d'information" Q5 = InputBox("Veuillez saisir " & Liste & " , SVP", "Demande d'information") compteur = compteur + 1 End If
Tu n'as plus qu'à actualiser la variable 'Liste' des données à saisir en tête de code
Peut être du mieux pour toi
Dis moi !!!!!!
Alex
Merci Gilbert et merci FFO pour vos réponses. J'ai testé pour le moment qu'avec la solution de Gilbert, mais je testerai aussi la tienne, FFO, et te dirait si c'est mieux surtout que ma liste est plus grande que titi tutu toto tata... Donc l'explication et le remplacement du Or en End est tout a fait fructueuse. Mais un nouveau souci apparait dans ma boucle qui tourne dans le vide et ne se passe rien même si bon texte avec titi tata... :
Les lignes corrigés :
Dim Q5 As String Dim compteur As Integer compteur = 0 Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu , SVP", "Demande d'information") Do While compteur <= 3 If Q5 <> "Tata" And Q5 <> "Titi" And Q5 <> "Toto" And Q5 <> "Tutu" Then MsgBox "Veuillez saisir Tata, Toto, Titi ou Tutu , SVP" & _ Chr(13) & "Seuls Tata, Toto, Titi ou Tutu sont autorisés pour cette " _ & "zone à compléter", vbExclamation, "Demande d'information" Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu ,SVP", "Demande d'information") compteur = compteur + 1 Loop Else Exit Sub Q5 = Cells(i, 2).Value End If
J'ai comme message d'erreur : Erreur de compilation: Loop sans Do alors que j'ai mon Do Quelqu'un aurait il une idée. Merci d'avance de votre aide. Alex
Merci Gilbert et merci FFO pour vos réponses.
J'ai testé pour le moment qu'avec la solution de Gilbert, mais je
testerai aussi la tienne, FFO, et te dirait si c'est mieux surtout que
ma liste est plus grande que titi tutu toto tata...
Donc l'explication et le remplacement du Or en End est tout a fait
fructueuse.
Mais un nouveau souci apparait dans ma boucle qui tourne dans le vide
et ne se passe rien même si bon texte avec titi tata... :
Les lignes corrigés :
Dim Q5 As String
Dim compteur As Integer
compteur = 0
Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu , SVP",
"Demande d'information")
Do While compteur <= 3
If Q5 <> "Tata" And Q5 <> "Titi" And Q5 <> "Toto" And Q5 <>
"Tutu" Then
MsgBox "Veuillez saisir Tata, Toto, Titi ou Tutu , SVP" &
_
Chr(13) & "Seuls Tata, Toto, Titi ou Tutu sont autorisés
pour cette " _
& "zone à compléter", vbExclamation, "Demande
d'information"
Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou
Tutu ,SVP", "Demande d'information")
compteur = compteur + 1
Loop
Else
Exit Sub
Q5 = Cells(i, 2).Value
End If
J'ai comme message d'erreur : Erreur de compilation: Loop sans Do
alors que j'ai mon Do
Quelqu'un aurait il une idée.
Merci d'avance de votre aide.
Alex
Merci Gilbert et merci FFO pour vos réponses. J'ai testé pour le moment qu'avec la solution de Gilbert, mais je testerai aussi la tienne, FFO, et te dirait si c'est mieux surtout que ma liste est plus grande que titi tutu toto tata... Donc l'explication et le remplacement du Or en End est tout a fait fructueuse. Mais un nouveau souci apparait dans ma boucle qui tourne dans le vide et ne se passe rien même si bon texte avec titi tata... :
Les lignes corrigés :
Dim Q5 As String Dim compteur As Integer compteur = 0 Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu , SVP", "Demande d'information") Do While compteur <= 3 If Q5 <> "Tata" And Q5 <> "Titi" And Q5 <> "Toto" And Q5 <> "Tutu" Then MsgBox "Veuillez saisir Tata, Toto, Titi ou Tutu , SVP" & _ Chr(13) & "Seuls Tata, Toto, Titi ou Tutu sont autorisés pour cette " _ & "zone à compléter", vbExclamation, "Demande d'information" Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu ,SVP", "Demande d'information") compteur = compteur + 1 Loop Else Exit Sub Q5 = Cells(i, 2).Value End If
J'ai comme message d'erreur : Erreur de compilation: Loop sans Do alors que j'ai mon Do Quelqu'un aurait il une idée. Merci d'avance de votre aide. Alex
Bonjour, C'est normal, ta boucle Do est imbriquée dans le If. Tu evrais avoir quelque chose comme Do If Else Endif Loop
ou bien If Do Loop Else Do Loop Endif
Cordialement, Gilbert
"Alex" a écrit dans le message de news:
Merci Gilbert et merci FFO pour vos réponses. J'ai testé pour le moment qu'avec la solution de Gilbert, mais je testerai aussi la tienne, FFO, et te dirait si c'est mieux surtout que ma liste est plus grande que titi tutu toto tata... Donc l'explication et le remplacement du Or en End est tout a fait fructueuse. Mais un nouveau souci apparait dans ma boucle qui tourne dans le vide et ne se passe rien même si bon texte avec titi tata... :
Les lignes corrigés :
Dim Q5 As String Dim compteur As Integer compteur = 0 Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu , SVP", "Demande d'information") Do While compteur <= 3 If Q5 <> "Tata" And Q5 <> "Titi" And Q5 <> "Toto" And Q5 <> "Tutu" Then MsgBox "Veuillez saisir Tata, Toto, Titi ou Tutu , SVP" & _ Chr(13) & "Seuls Tata, Toto, Titi ou Tutu sont autorisés pour cette " _ & "zone à compléter", vbExclamation, "Demande d'information" Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu ,SVP", "Demande d'information") compteur = compteur + 1 Loop Else Exit Sub Q5 = Cells(i, 2).Value End If
J'ai comme message d'erreur : Erreur de compilation: Loop sans Do alors que j'ai mon Do Quelqu'un aurait il une idée. Merci d'avance de votre aide. Alex
Bonjour,
C'est normal, ta boucle Do est imbriquée dans le If.
Tu evrais avoir quelque chose comme
Do
If
Else
Endif
Loop
ou bien
If
Do
Loop
Else
Do
Loop
Endif
Cordialement,
Gilbert
"Alex" <alex-m@orange.fr> a écrit dans le message de news:
8fd8e5c7-e659-4f49-94ca-3958dfb2ba42@t42g2000vba.googlegroups.com...
Merci Gilbert et merci FFO pour vos réponses.
J'ai testé pour le moment qu'avec la solution de Gilbert, mais je
testerai aussi la tienne, FFO, et te dirait si c'est mieux surtout que
ma liste est plus grande que titi tutu toto tata...
Donc l'explication et le remplacement du Or en End est tout a fait
fructueuse.
Mais un nouveau souci apparait dans ma boucle qui tourne dans le vide
et ne se passe rien même si bon texte avec titi tata... :
Les lignes corrigés :
Dim Q5 As String
Dim compteur As Integer
compteur = 0
Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu , SVP",
"Demande d'information")
Do While compteur <= 3
If Q5 <> "Tata" And Q5 <> "Titi" And Q5 <> "Toto" And Q5 <>
"Tutu" Then
MsgBox "Veuillez saisir Tata, Toto, Titi ou Tutu , SVP" &
_
Chr(13) & "Seuls Tata, Toto, Titi ou Tutu sont autorisés
pour cette " _
& "zone à compléter", vbExclamation, "Demande
d'information"
Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou
Tutu ,SVP", "Demande d'information")
compteur = compteur + 1
Loop
Else
Exit Sub
Q5 = Cells(i, 2).Value
End If
J'ai comme message d'erreur : Erreur de compilation: Loop sans Do
alors que j'ai mon Do
Quelqu'un aurait il une idée.
Merci d'avance de votre aide.
Alex
Bonjour, C'est normal, ta boucle Do est imbriquée dans le If. Tu evrais avoir quelque chose comme Do If Else Endif Loop
ou bien If Do Loop Else Do Loop Endif
Cordialement, Gilbert
"Alex" a écrit dans le message de news:
Merci Gilbert et merci FFO pour vos réponses. J'ai testé pour le moment qu'avec la solution de Gilbert, mais je testerai aussi la tienne, FFO, et te dirait si c'est mieux surtout que ma liste est plus grande que titi tutu toto tata... Donc l'explication et le remplacement du Or en End est tout a fait fructueuse. Mais un nouveau souci apparait dans ma boucle qui tourne dans le vide et ne se passe rien même si bon texte avec titi tata... :
Les lignes corrigés :
Dim Q5 As String Dim compteur As Integer compteur = 0 Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu , SVP", "Demande d'information") Do While compteur <= 3 If Q5 <> "Tata" And Q5 <> "Titi" And Q5 <> "Toto" And Q5 <> "Tutu" Then MsgBox "Veuillez saisir Tata, Toto, Titi ou Tutu , SVP" & _ Chr(13) & "Seuls Tata, Toto, Titi ou Tutu sont autorisés pour cette " _ & "zone à compléter", vbExclamation, "Demande d'information" Q5 = InputBox("Veuillez saisir Tata, Toto, Titi ou Tutu ,SVP", "Demande d'information") compteur = compteur + 1 Loop Else Exit Sub Q5 = Cells(i, 2).Value End If
J'ai comme message d'erreur : Erreur de compilation: Loop sans Do alors que j'ai mon Do Quelqu'un aurait il une idée. Merci d'avance de votre aide. Alex