Probleme de "IF" qui ne se lance pas

Payou

XLDnaute Occasionnel
Bonjour a tous,

J'espère que vous êtes en forme, et que vous arriverez a me donner un petit coup de pouce :)

Voila mon code:

Code:
'Rajouter la valeur du petit au bout
If TextBox1.Value - bout < 0 Then peti = perdu
If TextBox1.Value Like "##,#" And kigagn_kiper = -1 Then peti = perdu
[COLOR="YellowGreen"]If peti <> 0 Then Cells(comp, petitcon) = Cells(comp, petitcon) + 50 * anno
If peti <> 0 Then varpeti = 1 * anno[/COLOR]
If peti = perdu Then If petitcon = pren Then Cells(comp, petitcon) = Cells(comp, petitcon) - 50 * anno 'Else Cells(comp, petitcon) = Cells(comp, petitcon) + 50 * anno
If peti = perdu Then If petitcon <> pren Then Cells(comp, petitcon) = Cells(comp, petitcon) + 50 * anno
[COLOR="Red"]If peti = perdu Then If petitcon = pren Then varpeti = -1 * anno
If peti = perdu Then If petitcon <> pren Then varpeti = 1 * anno[/COLOR]
If Not peti = 0 Then inclurvalpetiobou

Ce que je comprends pas, c'est que tout fonctionne, mais pas les deux lignes en rouge... pourtant la première ligne IF (en vert) fonctionne, alors que lorsque je met la même (deux lignes plus bas) elle ne fonctionne plus... Je ne comprends pas pourquoi cela me fait ca, alors que le reste de ce code fonctionne... Je veux dire par la que "perdu" fonctionne car il me retire bien ou ajoute bien les points, mais la commande en rouge elle ne fonctionne pas.

Pour info anno est juste égale a 1 ou 0, si jamais ca peut jouer lol

Merci d'avance pour vos idées :)
 
Dernière édition:

ERIC S

XLDnaute Barbatruc
Re : Probleme de "IF" qui ne se lance pas

Bonjour

j'essaierais plutôt de réécrire le code, du genre

Code:
If peti <> 0 Then
    Cells(comp, petitcon) = Cells(comp, petitcon) + 50 * anno
    varpeti = 1 * anno
End If
If peti = perdu Then
    If petitcon = pren Then
        Cells(comp, petitcon) = Cells(comp, petitcon) - 50 * anno
        varpeti = -1 * anno
    Else
        Cells(comp, petitcon) = Cells(comp, petitcon) + 50 * anno
        varpeti = 1 * anno
End If
If Not peti = 0 Then inclurvalpetiobou

ne connaisant pas ton appli, je ne vois pas trop ce qui ne marche pas mais je suppose que l'on doit te souhaiter un bon tarot ;)
 

Payou

XLDnaute Occasionnel
Re : Probleme de "IF" qui ne se lance pas

Bonjour Eric,

J'ai essayé ton code, par contre il me fait le même problème que le mien...

Au passage je met le fichier, peut être qu'il permettra d'y voir plus clair...

Lors de l'ajout du petit au bout, dans le cas ou le preneur chute, il devrait avoir moins 40, et les autres joueurs +10.

Dans le premier cas, qui lui est operationnel, avec un preneur gagnant quelque soit la personne mettant le petit au bout, celle-ci recoit ses points bonus, et les autres perdent leur 10pts.

Par contre les point bonus ne sont pas ajoutes lorsque le preneur chute. Ils lui sont bien retirés (-50 pts), mais normalement on ajoute également 10 a tout le monde, ce qui donne -40 pour le preneur qui chute et +10 pour les autres.

P.S: Merci Eric pour le tarot, mais celui-ci sera encore meilleur avec cette fiche :)
 

Pièces jointes

  • Score_Tarot.zip
    47.3 KB · Affichages: 22
  • Score_Tarot.zip
    47.3 KB · Affichages: 17
  • Score_Tarot.zip
    47.3 KB · Affichages: 23
Dernière édition:

Payou

XLDnaute Occasionnel
Re : Probleme de "IF" qui ne se lance pas

bon alors la c'est a n'y rien comprendre.

Avec le code suivant:
Code:
'Rajouter la valeur du petit au bout
If CheckBox1 = True Then
If TextBox1.Value - bout < 0 Then peti = perdu
If TextBox1.Value Like "##,#" And kigagn_kiper = -1 Then peti = perdu

cool = Cells(comp, petitcon) + 50 * anno
pascool = Cells(comp, petitcon) - 50 * anno

[COLOR="SeaGreen"]If peti <> 0 Then Cells(comp, petitcon) = cool
[COLOR="DarkOrange"]If peti <> 0 Then varpeti = 1 * anno[/COLOR]
If peti = perdu Then If petitcon = pren Then Cells(comp, petitcon) = pascool
If peti = perdu Then If petitcon = pren Then varpeti = -1 * anno
If peti = perdu Then If petitcon <> pren Then Cells(comp, petitcon) = cool
If peti = perdu Then If petitcon <> pren Then varpeti = 1 * anno [/COLOR]
If peti <> 0 Then
[COLOR="Red"]For j = 2 To 6
Cells(comp, j) = Cells(comp, j) - 10 * varpeti * anno
Next j[/COLOR]
End If

Il me retire bien les points au preneur qui chute, et qui a mis le petit au bout, mais ne m'ajoute pas les 10 points a tout le monde, alors que je lui demande expressément en ayant changer directement dans la formule la sub "inclurevalpetiobou" par son code (rouge) et sa fonctionne toujours pas. QQ' un aurait une idee ?

De surcroit les IF en vert fonctionnent tres bien, juste la fin qui fonctionne pas... Ce qui veut dire que la fonction orange fonctionne tres bien ici, et pas a la fin, mais pourquoi ???
 
Dernière édition:

Payou

XLDnaute Occasionnel
Re : Probleme de "IF" qui ne se lance pas

Bon j'ai trouver une solution, un peu brutale, mais qui fonctionne, j'ai remplacer le "IF NOT"

par :
Code:
If peti <> 0 Then inclurvalpetiobou
If peti = perdu Then inclurvalpetiobou
 

ERIC S

XLDnaute Barbatruc
Re : Probleme de "IF" qui ne se lance pas

re

es-tu sur de la valeur de varpeti en fin de code?

n'est-elle pas passée à 0 à cause des lignes qui précèdent

à ta place je mettrais un point d'arrêt et ferais du pas à pas en observant l'évolution de la valeur de mes variables
 

Payou

XLDnaute Occasionnel
Re : Probleme de "IF" qui ne se lance pas

Re bonjour Eric,

Bah disons que j'ai supprimé le code en rouge pour revenir a la formule initiale, et sa fonctionne.

varepeti est juste égal a 1 ou -1 et anno a 1 ou 0, en fonction de la checkbox "annonce" si celle-ci est validée ou non.

Je vois pas trop pourquoi ce serait égal a 0 en suivant le code écrit ?

Mais si jamais tu a une solution qui peut éviter tout doute possible, je suis preneur :)
 

Lii

XLDnaute Impliqué
Re : Probleme de "IF" qui ne se lance pas

Salut,

aprés un coup d'oeil rapide qui est "petitcon" ?
Ce n'est pas un nombre me semble-t-il donc Cells(comp, petitcon) posera problème.
Faut-il différencier les variables "annon" et "anno" ?
 

Payou

XLDnaute Occasionnel
Re : Probleme de "IF" qui ne se lance pas

Bonjour Lii,

"Petitcon" est la personne qui met le petit au bout, et "petitcon" est sous la forme "Combobox4.Listindex +1" de mémoire ou plus 2.

Ensuite Anno, c'est pour savoir si il y a une annonce de faire ou pas, si oui anno=1, et annon prends une valeur soit de 1 soit de 2, en fonction qu'un chelem est été annonce ou non

Mais chez moi le code fonctionne en tout cas donc bon...
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
234