Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Trop de SI imbriqué, Comment les enlever

  • Initiateur de la discussion Initiateur de la discussion Clo
  • 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 !

C

Clo

Guest
Bonjour Cher Forum,


J'aimerais savoir comment enlever plusieurs SI lorsque que je test toujours la même variable. Voici un exemple :


if var <> 0 then
if var <> 2 then
if var <> 100 then
if var <> 101 then
if var <> 199 then
...
else :
else :
else :
else:
else:

ou voici un autre exemple que je reproduis souvent et qui devient lourd lors de vérification des macros ou de modifications :


if (var = 0) or (var=2) or (var= 100) or (var= 101) or (var= 199) then
.....
else :
.....


J'aimerais avoir une idée super géniale comment alléger ces SI.


Je vous remercie d'avance de tout votre aide ainsi que vos suggestions.


Bonne journée 🙂


Clo
 
Re : Trop de SI imbriqué, Comment les enlever

Bonjour Clo

Tout dépend si tu as les mêmes instructions à éxécuter en fonctions des différents critères que tu donnes, il faudrait avoir le code dans son ensemble pour optimiser.

Bonne soirée
@+
 
Re : Trop de SI imbriqué, Comment les enlever

Bonjour Forum, Bonjour JMPS, Bonjour Pierrot93, Bonjour porcinet82,


Voici un exemple très simple :

If (div <> "883") Or (div <> "969") Or (div <> "975") Or (div <> "982") Then
Cells(i, colonne + 1).Value = (Cells(i, col_sb_brut) + Cells(i,col_va_brut) + Cells(i, colonne)) * 0.075
Else: Cells(i, colonne + 1).Value = 0



Je ne sais pas si cela vous aidera ....


Merci beaucoup


Clo 😛
 
Re : Trop de SI imbriqué, Comment les enlever

Salut à tous et à ceux que je n'ai pas croisé récemment,

le select case me parait adapté dans ce cas, Bravo José! bonne pioche, tu peux revenir en 2eme semaine!

A+
 
Re : Trop de SI imbriqué, Comment les enlever

Salut à toutes et à tous
dim Tab_Var(1 to ) as integer
Dim flag_Test as boolean
dim X as integer

Tab_Var(1) = 2
Tab_Var(2) = 100
Tab_Var(3) = 101
Tab_Var(4) = 199

'Fonction ET
flg_Test = TRUE
for x=1 to ubound(Tab_Var,1)
_____ if Tab_var(x)=Var Then
_____ _____ Flg_Test=FALSE
_____ _____ Exit For
_____ End If
next
if Flg_Test then
...............
end if

'Fonction OU
flg_Test = FALSE
for x=1 to ubound(Tab_Var,1)
_____ if Tab_var(x)<>VDiv Then
_____ _____ Flg_Test=TRUE
_____ _____ Exit For
_____ End If
next
if Flg_Test then
...............
end if

Avantage : tu remplis ton tableau en début de macro (sans oublier la limite).
Le traitement avec un select case t'oblige à parcourir ton code en cas de changement des valeurs de référencesn avec un risque d'erreur.

A+
 
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

P
Réponses
4
Affichages
1 K
P
S
  • Question Question
Microsoft 365 Mise à Jour dates
Réponses
0
Affichages
650
Stephane Mex
S
Réponses
8
Affichages
1 K
K
Réponses
1
Affichages
894
Karakol
K
L
Réponses
9
Affichages
1 K
S
Réponses
31
Affichages
4 K
P
  • Question Question
Réponses
1
Affichages
3 K
Patrosso
P
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…