VBA Boucle While n'est pas égale
Résolu/Fermé
gregg1712
Messages postés
45
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
7 juillet 2022
-
Modifié par gregg1712 le 20/12/2011 à 20:07
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 - 21 déc. 2011 à 09:30
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 - 21 déc. 2011 à 09:30
A voir également:
- VBA Boucle While n'est pas égale
- Égale barré ✓ - Forum Word
- Signe égal barré sur iPad - Forum Clavier
- Inferieur ou egale clavier ✓ - Forum Bureautique
- Incompatibilité de type vba ✓ - Forum Programmation
- Caractère "différent" ou "pas égal à" - Forum Bureautique
10 réponses
Bonjour,
Ta boucle while est mal placée. Dans ton cas il vaut mieux utiliser une boucle Do...Loop. Voila comment faire
-------------------------------------------------------------------------------------------------
Nom = InputBox("Entrez le nom du client:")
Do
Langue = InputBox("Entrez la langue :" & vbCrLf & "fr = Français" & vbCrLf & "nl = Néerlandais" & vbCrLf & "en = Anglais")
If Langue = "" Then Langue = "fr" 'réponse par defaut - cette ligne est optionnelle
If Not (Langue = "fr" Or Langue = "nl" Or Langue = "en") Then MsgBox "Erreur de saisie. Recommencez"
Loop Until Langue = "fr" Or Langue = "nl" Or Langue = "en"
Montant = InputBox("Entrez le montant du compte:")
Salaire = InputBox("Entrez le Salaire mensuel:")
Range("B3").Select
ActiveCell.Offset(0, 0).Value = Nom
ActiveCell.Offset(0, 1).Value = Langue
ActiveCell.Offset(0, 2).Value = Montant
ActiveCell.Offset(0, 3).Value = Salaire
-------------------------------------------------------------------------------------------------
;o)
Ta boucle while est mal placée. Dans ton cas il vaut mieux utiliser une boucle Do...Loop. Voila comment faire
-------------------------------------------------------------------------------------------------
Nom = InputBox("Entrez le nom du client:")
Do
Langue = InputBox("Entrez la langue :" & vbCrLf & "fr = Français" & vbCrLf & "nl = Néerlandais" & vbCrLf & "en = Anglais")
If Langue = "" Then Langue = "fr" 'réponse par defaut - cette ligne est optionnelle
If Not (Langue = "fr" Or Langue = "nl" Or Langue = "en") Then MsgBox "Erreur de saisie. Recommencez"
Loop Until Langue = "fr" Or Langue = "nl" Or Langue = "en"
Montant = InputBox("Entrez le montant du compte:")
Salaire = InputBox("Entrez le Salaire mensuel:")
Range("B3").Select
ActiveCell.Offset(0, 0).Value = Nom
ActiveCell.Offset(0, 1).Value = Langue
ActiveCell.Offset(0, 2).Value = Montant
ActiveCell.Offset(0, 3).Value = Salaire
-------------------------------------------------------------------------------------------------
;o)
Les reponses aux questions sont stockées dans des variables (Nom, Langue, Montant, Salaire).
Tu peux les saisir dans l'ordre que tu veux.
Ensuite, tu ranges la valeur de ces variables dans des cellules. Tu peux choisir de les mettres à l'adresse qui t'arrange et dans n'importe quel ordre, tu es totalement libre.
;)
Tu peux les saisir dans l'ordre que tu veux.
Ensuite, tu ranges la valeur de ces variables dans des cellules. Tu peux choisir de les mettres à l'adresse qui t'arrange et dans n'importe quel ordre, tu es totalement libre.
;)
gregg1712
Messages postés
45
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
7 juillet 2022
2
20 déc. 2011 à 23:22
20 déc. 2011 à 23:22
Ca marche :) merci
gregg1712
Messages postés
45
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
7 juillet 2022
2
20 déc. 2011 à 23:27
20 déc. 2011 à 23:27
Je me demandais juste si "c'est un brouillon"
___________________________________
Nom = InputBox("Entrez le nom du client:")
Do
Langue = InputBox("Entrez la langue :" & vbCrLf & "fr = Français" & vbCrLf & "nl = Néerlandais" & vbCrLf & "en = Anglais")
If Langue = "" Then Langue = "fr" 'réponse par defaut - cette ligne est optionnelle
If Not (Langue = "fr" Or Langue = "nl" Or Langue = "en") Then MsgBox "Erreur de saisie. Recommencez"
Loop Until Langue = "fr" Or Langue = "nl" Or Langue = "en"
Montant = InputBox("Entrez le montant du compte:")
Salaire = InputBox("Entrez le Salaire mensuel:")
If Montant >= 25000 And If Salaire >= 1500 Then
ActiveCell.Offset(0, 4).Value= InputBox ("T'es riche mec")
Range("B3").Select
ActiveCell.Offset(0, 0).Value = Nom
ActiveCell.Offset(0, 1).Value = Langue
ActiveCell.Offset(0, 2).Value = Montant
ActiveCell.Offset(0, 3).Value = Salaire
_____________________________________________________
Juste c'est possible de refaire autant de boucle qu'on souhaite ?:)
___________________________________
Nom = InputBox("Entrez le nom du client:")
Do
Langue = InputBox("Entrez la langue :" & vbCrLf & "fr = Français" & vbCrLf & "nl = Néerlandais" & vbCrLf & "en = Anglais")
If Langue = "" Then Langue = "fr" 'réponse par defaut - cette ligne est optionnelle
If Not (Langue = "fr" Or Langue = "nl" Or Langue = "en") Then MsgBox "Erreur de saisie. Recommencez"
Loop Until Langue = "fr" Or Langue = "nl" Or Langue = "en"
Montant = InputBox("Entrez le montant du compte:")
Salaire = InputBox("Entrez le Salaire mensuel:")
If Montant >= 25000 And If Salaire >= 1500 Then
ActiveCell.Offset(0, 4).Value= InputBox ("T'es riche mec")
Range("B3").Select
ActiveCell.Offset(0, 0).Value = Nom
ActiveCell.Offset(0, 1).Value = Langue
ActiveCell.Offset(0, 2).Value = Montant
ActiveCell.Offset(0, 3).Value = Salaire
_____________________________________________________
Juste c'est possible de refaire autant de boucle qu'on souhaite ?:)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gregg1712
Messages postés
45
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
7 juillet 2022
2
20 déc. 2011 à 23:38
20 déc. 2011 à 23:38
Plutot un truc comme ca :p
If Montant >= 25000 And Salaire >= 2000 Then Pub = "Tu as le droit à une voiture"
ActiveCell.Offset(0, 4).Value = Pub
If Montant >= 25000 And Salaire >= 2000 Then Pub = "Tu as le droit à une voiture"
ActiveCell.Offset(0, 4).Value = Pub
refaire autant de boucle qu'on souhaite ?
Je ne comprends pas ta question.
Mais ce que t'as ecrit en gras n'est pas correct.
Je ne comprends pas ta question.
Mais ce que t'as ecrit en gras n'est pas correct.
gregg1712
Messages postés
45
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
7 juillet 2022
2
20 déc. 2011 à 23:46
20 déc. 2011 à 23:46
Je vais chercher un peu au lieu de tt demander :)
*Se frappe*
Bonne soirée Yoda et encore merci
*Se frappe*
Bonne soirée Yoda et encore merci
gregg1712
Messages postés
45
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
7 juillet 2022
2
21 déc. 2011 à 00:03
21 déc. 2011 à 00:03
Après recherche ...
____________________________________
If Montant >= 25000 And Salaire >= 2000 Then
Pub1 = "Tu as le droit à une voiture"
Else
Pub2 = "tu as le droit à un scouter"
End If
ActiveCell.Offset(0, 4).Value = Pub1
ActiveCell.Offset(0, 4).Value = Pub2
__________________________________________
Donc si le montant du compte et élevé et si il à un bon salaire
Soit il propose la Pub 1 soit il propose la Pub 2
Je peux rajouter ceci dans mon code ?
____________________________________
If Montant >= 25000 And Salaire >= 2000 Then
Pub1 = "Tu as le droit à une voiture"
Else
Pub2 = "tu as le droit à un scouter"
End If
ActiveCell.Offset(0, 4).Value = Pub1
ActiveCell.Offset(0, 4).Value = Pub2
__________________________________________
Donc si le montant du compte et élevé et si il à un bon salaire
Soit il propose la Pub 1 soit il propose la Pub 2
Je peux rajouter ceci dans mon code ?
Non, c'est pas bon, comme c'est là, Pub2 ecrase Pub1 quelque soit la condition.
Il faut mettre
;o)
Il faut mettre
If Montant >= 25000 And Salaire >= 2000 Then Pub1 = "Tu as le droit à une voiture" Else Pub1 = "tu as le droit à un scouter" End If ActiveCell.Offset(0, 4).Value = Pub1
;o)
gregg1712
Messages postés
45
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
7 juillet 2022
2
21 déc. 2011 à 00:10
21 déc. 2011 à 00:10
Ok merci³ je vais essayer cela :)
gregg1712
Messages postés
45
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
7 juillet 2022
2
21 déc. 2011 à 00:17
21 déc. 2011 à 00:17
Une petite erreur me résiste ...
gregg1712
Messages postés
45
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
7 juillet 2022
2
21 déc. 2011 à 00:28
21 déc. 2011 à 00:28
OMG j'avais fait une petite erreur ...
Ca fonctionne Nickel³ xD
Merci encore ^4
Ca fonctionne Nickel³ xD
Merci encore ^4
gregg1712
Messages postés
45
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
7 juillet 2022
2
21 déc. 2011 à 01:26
21 déc. 2011 à 01:26
Si tu ne dors pas :)
_______
If Montant >= 20000 And Salaire >= 2000 Then
Carte = "Gold"
If Langue = fr Then
Pub = "Envoyé une publicité en Francais d'un investissement avec un Taux de 4%"
ElseIf Langue = nl Then
Pub = "Envoyé une publicité en Néerlandais d'un investissement avec un Taux de 4%"
Else
Pub = "Envoyé une publicité en Anglais d'un investissement avec un Taux de 4%"
End If
ElseIf Montant >= 10000 And Salaire >= 1000 Then
Carte = "Silver"
If Langue = fr Then
Pub = "Envoyé une publicité en Francais d'un investissement avec un Taux de 3%"
ElseIf Langue = nl Then
Pub = "Envoyé une publicité en Néerlandais d'un investissement avec un Taux de 3%"
Else
Pub = "Envoyé une publicité en Anglais d'un investissement avec un Taux de 3%"
End If
Else
Carte = "Copper"
If Langue = fr Then
Pub = "Envoyé une publicité en Francais d'un investissement avec un Taux de 2%"
ElseIf Langue = nl Then
Pub = "Envoyé une publicité en Néerlandais d'un investissement avec un Taux de 2%"
Else
Pub = "Envoyé une publicité en Anglais d'un investissement avec un Taux de 2%"
End If
End If
________
En PUB il me renvoit toujours Anglais (mais le Taux est bon et change chaque fois), une idée de l'erreur ?
_______
If Montant >= 20000 And Salaire >= 2000 Then
Carte = "Gold"
If Langue = fr Then
Pub = "Envoyé une publicité en Francais d'un investissement avec un Taux de 4%"
ElseIf Langue = nl Then
Pub = "Envoyé une publicité en Néerlandais d'un investissement avec un Taux de 4%"
Else
Pub = "Envoyé une publicité en Anglais d'un investissement avec un Taux de 4%"
End If
ElseIf Montant >= 10000 And Salaire >= 1000 Then
Carte = "Silver"
If Langue = fr Then
Pub = "Envoyé une publicité en Francais d'un investissement avec un Taux de 3%"
ElseIf Langue = nl Then
Pub = "Envoyé une publicité en Néerlandais d'un investissement avec un Taux de 3%"
Else
Pub = "Envoyé une publicité en Anglais d'un investissement avec un Taux de 3%"
End If
Else
Carte = "Copper"
If Langue = fr Then
Pub = "Envoyé une publicité en Francais d'un investissement avec un Taux de 2%"
ElseIf Langue = nl Then
Pub = "Envoyé une publicité en Néerlandais d'un investissement avec un Taux de 2%"
Else
Pub = "Envoyé une publicité en Anglais d'un investissement avec un Taux de 2%"
End If
End If
________
En PUB il me renvoit toujours Anglais (mais le Taux est bon et change chaque fois), une idée de l'erreur ?
gregg1712
Messages postés
45
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
7 juillet 2022
2
21 déc. 2011 à 08:55
21 déc. 2011 à 08:55
Bonjour,
Personne ? :(
Personne ? :(
gregg1712
Messages postés
45
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
7 juillet 2022
2
21 déc. 2011 à 09:30
21 déc. 2011 à 09:30
Problème résolue :)
20 déc. 2011 à 23:03
Oh Maitre Yoda, un très grand merci :)
Vraiment !