VBA BOUCLE IF

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 21/12/2011 à 09:03
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:52
Bonjour,
________________________________________________________


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
_____________________________________________________________

Donc On entre le Montant et le salaire avec des InputBox
On entre pour la Langue soit fr soit nl soit en avec aussi des InputBox
--> Et selon leur réponce ca envois tel ou tel message
Pour le revois de la carte ca fonctionne, parcontre pour la Pub, la langue ne marche pas, mais le Taux bien ...
Vous auriez une idée ? :)

2 réponses

Phoenellion Messages postés 116 Date d'inscription dimanche 14 septembre 2008 Statut Membre Dernière intervention 30 août 2012 32
Modifié par Phoenellion le 21/12/2011 à 09:14
Bonjour gergg1712

je ne vois pas comment tu as déclaré te variables mais y a un truc qui me chiffonne :

Quand tu écris
If Langue = fr Then

fr c'est une variable ou une donnée récupérée par ta box ?

car si tel est le cas, fr est une chaine de caractère (String) et pour être reconnue en tant que tel, tu dois écrire :

If Langue = "fr" Then


pareil pour nl => "nl"

essaye et dis voir...
@+
Phoe
1
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:22
Merci déjà pour ta rapidité :)
Voici le reste du code pour mieux comprendre mon problème:
https://imageshack.com/
0
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:25
je teste le "FR"
0
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:31
Merci beaucoup Phoenellion
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 306
21 déc. 2011 à 09:37
Bonjour,

le ActiveCell.Offset(1,-3).Select te décalera d'une ligne en dessous, et de 3 colonnes vers la gauche.

Si tu te trouves en colonne 1, 2 ou 3, tu voudras accéder à la colonne -2, -1 ou 0, ce qui est impossible.

Cordialement.
0
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:37
Mais un dernier truc quand je rajoute à la fin:

ActiveCell.Offset(1, -3).Select

Pour aller à la ligne en bas, ca ne marche pas, ca marque une erreur 404
0
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:41
ca doit être mes

ActiveCell.Offset(0, 0).Value = Nom
ActiveCell.Offset(0, 1).Value = Langue
ActiveCell.Offset(0, 2).Value = Montant
ActiveCell.Offset(0, 3).Value = Salaire
ActiveCell.Offset(0, 4).Value = Carte
ActiveCell.Offset(0, 5).Value = Pub

Qui empeche un

ActiveCell.Offset(1, -3).Select

a la fin

L'ordre ou l'on place les Active.Offeset change la donne ? :)
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 306
21 déc. 2011 à 09:45
C'est surtout que les premiers ActiveCell.Offset ne te font pas changer de cellules (si tu es en A1 avant tes premiers activeCell, tu écris le nom en A1, la langue en A2, le montant en A3 etc.)

Tandis que ton ActiveCell.Offset(,).Select change la cellule. Du coup si tu es en A1 au départ, tu veut te retrouver ligne 2, colonne -2, ce qui ne fonctionne pas.

Il faut voir ce que tu veux faire après avoir entré les valeurs dans tes cellules. Tu veux passer à la ligne ?
0
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:47
Oui voila
0
Phoenellion Messages postés 116 Date d'inscription dimanche 14 septembre 2008 Statut Membre Dernière intervention 30 août 2012 32
21 déc. 2011 à 09:47
si tu veux juste descendre d'une ligne, écris juste :

ActiveCell.Offset(1, 0).Select 
0
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:49
Je rentre des donné en a1, b1 et c1 ensuite je reviens en a2
0