VBA BOUCLE IF

Résolu/Fermé
gregg1712 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   -  
gregg1712 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   33
 
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   Statut Membre Dernière intervention   2
 
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   Statut Membre Dernière intervention   2
 
je teste le "FR"
0
gregg1712 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci beaucoup Phoenellion
0
chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
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   Statut Membre Dernière intervention   2
 
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   Statut Membre Dernière intervention   2
 
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   Statut Contributeur Dernière intervention   1 311
 
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   Statut Membre Dernière intervention   2
 
Oui voila
0
Phoenellion Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   33
 
si tu veux juste descendre d'une ligne, écris juste :

ActiveCell.Offset(1, 0).Select 
0
gregg1712 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   2
 
Je rentre des donné en a1, b1 et c1 ensuite je reviens en a2
0