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

Code conditions multiples

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

Centrino

Guest
Bonjour à toutes et à tous,

Je suis en train de concevoir une macro dont l'une de ces parties est constituées de conditions. Voici ce que j'ai rédiger:

Code:
    For I = 1 To nbre_pt_contrôle
        For J = 1 To nbre_répliques
        
            If Worksheets("Quantification").Cells(I, J).Value > 400 Then Worksheets("Cluster").Cells(I + 7, J + 4).Value = "+++"
            Next J
            
            If 200 < Worksheets("Quantification").Cells(I, J).Value < 400 Then Worksheets("Cluster").Cells(I + 7, J + 4).Value = "++"
            Next J
            
            If 100 < Worksheets("Quantification").Cells(I, J).Value < 200 Then Worksheets("Cluster").Cells(I + 7, J + 4).Value = "+"
            Next J
            
            If 50 < Worksheets("Quantification").Cells(I, J).Value < 100 Then Worksheets("Cluster").Cells(I + 7, J + 4).Value = "-"
            Next J
            
            If 20 < Worksheets("Quantification").Cells(I, J).Value < 50 Then Worksheets("Cluster").Cells(I + 7, J + 4).Value = "--"
            Next J
            
            If Worksheets("Quantification").Cells(I, J).Value < 25 Then Worksheets("Cluster").Cells(I + 7, J + 4).Value = "---"
            Next J
               
        Next J
    Next I

Pouvez-vous m'aider sur ce point car cette macro ne fonctionne pas.

Merci
 
Re : Code conditions multiples

Bonjour,
Tu pourrais écrire...
Code:
With Worksheets("Quantification")
    For i = 1 To nbre_pt_contrôle
        For j = 1 To nbre_répliques
            If .Cells(i, j).Value > 400 Then Worksheets("Cluster").Cells(i + 7, j + 4).Value = "+++"
            If .Cells(i, j).Value > 200 And .Cells(i, j).Value <= 400 Then Worksheets("Cluster").Cells(i + 7, j + 4).Value = "++"
            '...
        Next j
    Next i
End With
...ou plus simplement
Code:
With Worksheets("Quantification")
    For i = 1 To nbre_pt_contrôle
        For j = 1 To nbre_répliques
            Select Case .Cells(i, j)
            Case Is > 400
                Worksheets("Cluster").Cells(i + 7, j + 4).Value = "+++"
            Case 201 To 400
                Worksheets("Cluster").Cells(i + 7, j + 4).Value = "++"
            Case 101 To 200
                Worksheets("Cluster").Cells(i + 7, j + 4).Value = "+"
            Case 51 To 100
                Worksheets("Cluster").Cells(i + 7, j + 4).Value = "-"
            Case 21 To 50
                Worksheets("Cluster").Cells(i + 7, j + 4).Value = "--"
            Case Else
                Worksheets("Cluster").Cells(i + 7, j + 4).Value = "---"
            End Select
        Next j
    Next i
End With
Note qu'il y a des incohérences dans tes critères donc je te laisse adapter
A+
kjin
 
Dernière édition:
Re : Code conditions multiples

Bonjour Centrino,

J'ai bien peur que cette syntaxe
Code:
If 200 < Worksheets("Quantification").Cells(I, J).Value < 400
ne soit guère compréhensible

Par contre, tu pourrais chercher dans l'aide, des infos sur l'utilisation de l'instruction "Select Case" ... ton code ressemblerait (si j'ai bien compris!) à quelquechose comme:
VB:
Select Case Worksheets("Feuil1").Cells(I, J).Value
Case 1 To 9
    MsgBox "entre 1 et 9"
Case 10 To 50
    MsgBox "entre 10 et 50"
End Select

Edit: Salut kjin 🙂 ... serais-je un peu lent?
 
Dernière édition:
Re : Code conditions multiples

Je vous remercie de vos informations, je ne connaissais pas cette fonction (voilà qui est fait 😉 )

Cependant, le deuxième code de Kjin affiche une erreur pour le "Next J" disant qu'il manque le For. Avez-vous une solution ?

Encore merci pour votre aide !
 
Re : Code conditions multiples

Salut Centrino et le forum
Comme dit Modeste :
Code:
If 200 < Worksheets("Quantification").Cells(I, J).Value < 400 Then Worksheets("Cluster").Cells(I + 7, J + 4).Value = "++"
Excel ne comprend pas, il a ses limites : Si tu ne rédige pas dans la bonne syntaxe, il boude !
si 100<A<400 alors... Ça c'est du français. En VBA, il faudra traduire par :
si 100<A et A<400 alors... en considérant que le "et" est la fonction logique. Ce qui nous donne :
Code:
If (200 < Worksheets("Quantification").Cells(I, J)) and (Worksheets("Quantification").Cells(I, J) <  400) Then Worksheets("Cluster").Cells(I + 7, J + 4).Value = "++"
C'est la même chose sur une feuille de calcul.
A+
 
- 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

Réponses
15
Affichages
788
Réponses
5
Affichages
912
Réponses
4
Affichages
735
Réponses
8
Affichages
390
Réponses
8
Affichages
782
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
452
Réponses
2
Affichages
528
Réponses
10
Affichages
663
Réponses
4
Affichages
281
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…