Probleme de "IF" qui ne se lance pas

  • Initiateur de la discussion Initiateur de la discussion Payou
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
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 😉
 
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

Dernière édition:
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:
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
 
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
 
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 🙂
 
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" ?
 
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
519
Réponses
7
Affichages
256
Réponses
4
Affichages
550
Réponses
3
Affichages
300
Réponses
2
Affichages
522
Retour