Double condition if en vba

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 !

Compress

XLDnaute Occasionnel
Encore moi et bonjour à tous les nouveaux...:
problème cette fois dans une double condition if

Voici mon code :
Code:
If TextBox_vol_reel_ILN_TC.Value = "" Then MsgBox "Il n'y a pas de volume saisi !" Else:
If CDbl(TextBox_vol_reel_ILN_TC.Value) > vol_TC_restant Then MsgBox "Vous avez sourcé l'ensemble de votre volume véhicule montage" Else:
[COLOR="Red"]RangeObj.Offset(2, 0).Value = RangeObj.Offset(2, 0).Value + CDbl(TextBox_vol_reel_ILN_TC.Value)
vol_TC_restant = vol_TC_restant - CDbl(TextBox_vol_reel_ILN_TC.Value)[/COLOR]
End If

En fait quand je rentre dans ma textbox un vol supérieur au volume restant il m'affiche ma message box mais éxécute quand même l'ensemble des actions présentes dans le second else, je pense que c'est juste un problème de structure mais je ne vois pas lequel...
 
Re : Double condition if en vba

Bonjour Compress,

Je pense que tu as un else de trop. Essaies comme suit :

Code:
If TextBox_vol_reel_ILN_TC.Value = "" Then MsgBox "Il n'y a pas de volume saisi !"
If CDbl(TextBox_vol_reel_ILN_TC.Value) > vol_TC_restant Then MsgBox "Vous avez sourcé l'ensemble de votre volume véhicule montage" Else:
RangeObj.Offset(2, 0).Value = RangeObj.Offset(2, 0).Value + CDbl(TextBox_vol_reel_ILN_TC.Value)
vol_TC_restant = vol_TC_restant - CDbl(TextBox_vol_reel_ILN_TC.Value)
End If

Espérant t'avoir aidé.

Cordialement.
 
Re : Double condition if en vba

Bonjour Compress

A première vue je procéderais comme ceci:

Code:
If TextBox_vol_reel_ILN_TC.Value = "" Then
  MsgBox "Il n'y a pas de volume saisi !"
  Exit Sub
End If

If CDbl(TextBox_vol_reel_ILN_TC.Value) > vol_TC_restant Then
  MsgBox "Vous avez sourcé l'ensemble de votre volume véhicule montage"
  Exit Sub
End If

RangeObj.Offset(2, 0).Value = RangeObj.Offset(2, 0).Value + CDbl(TextBox_vol_reel_ILN_TC.Value)
vol_TC_restant = vol_TC_restant - CDbl(TextBox_vol_reel_ILN_TC.Value)
En décomposant les test, si toutes les conditions sont remplies la fin du code peut s'exécuter et tu es sur que c'est OK.

A+

Edit: Bonjour Papou-net
 
Dernière édition:
Re : Double condition if en vba

Ok sans le premier Else et dans le cas où je met un volume supérieur il ne fait plus la première action par contre il continue de faire la soustraction avec le volume rentré

Code:
If TextBox_vol_reel_ILN_TC.Value = "" Then MsgBox "Il n'y a pas de volume saisi !"
If CDbl(TextBox_vol_reel_ILN_TC.Value) > vol_TC_restant Then MsgBox "Vous avez sourcé l'ensemble de votre volume véhicule montage" Else:
RangeObj.Offset(2, 0).Value = RangeObj.Offset(2, 0).Value + CDbl(TextBox_vol_reel_ILN_TC.Value)
[COLOR="Red"]vol_TC_restant = vol_TC_restant - CDbl(TextBox_vol_reel_ILN_TC.Value)[/COLOR]
End If
 
Re : Double condition if en vba

Merci Papou-net et bqtr.
Je ne comprends pas pourquoi la solution de papou-net ne fonctionne qu'à moitié. Bon à réfléchir.
Par contre bqtr ta solution fonctionne parfaitement je vais donc la garder le code paraît ainsi plus simple même si l'autre me semblait simple dans mon esprit.

En tout cas, encore une victoire pour XLD, bravo.
 
- 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

Réponses
4
Affichages
586
Réponses
9
Affichages
1 K
Réponses
10
Affichages
1 K
Retour