Bonjour,
Je suis face à un souci sur un code (plus de l'économie qu'un souci d’ailleurs). Je souhaite tester si le résultat d'une cellule est égal à une de mes 12 variables déclarées.
Pour éviter de me saisir 12 "If" (un par variable), je pensais passer par un "for". "For" de 1 à 12 (1 à 12 étant le suffixe de mes 12 variables....suis-je clair ?).
Je vous met des parties concernées du code :
j'ai préalablement déclaré mes variables en testant string, long...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim ALI1 As String, ALI2 As String, ALI3 As String, ALI4 As String, ALI5 As String, ALI6 As String Dim ALI7 As String, ALI8 As String, ALI9 As String, ALI10 As String, ALI11 As String, ALI12 As String Dim QTALI1 As Long, QTALI2 As Long, QTALI3 As Long, QTALI4 As Long, QTALI5 As Long, QTALI6 As Long Dim QTALI7 As Long, QTALI8 As Long, QTALI9 As Long, QTALI10 As Long, QTALI11 As Long, QTALI12 As Long Dim MTALI1 As Long, MTALI2 As Long, MTALI3 As Long, MTALI4 As Long, MTALI5 As Long, MTALI6 As Long Dim MTALI7 As Long, MTALI8 As Long, MTALI9 As Long, MTALI10 As Long, MTALI11 As Long, MTALI12 As LongJe pense qu'il doit y avoir plus simple pour faire cela mais je ne vois pas comment l'articuler.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 For Liv = 3 To LivLigne Range("C" & Liv).Select For Var = 1 To 12 If ActiveCell.Value = (ALI & Var) Then 'si cellule en cours = ALI1 / je teste si ma cellule = une des variables 'QTALI & Var = Range("G" & Liv).Value 'Alors QTALI1 = ... / Si = à une des variable alors je stocke le résultat pour QT 'MTALI & Var = Range("G" & Liv).Value 'MTALI1=... / Si = à une des variable alors je stocke le résultat pour MT End If Next Var Next Liv For Q = 1 To 12 'Utilisé pour faire une somme en cumulé croissant QT = QT + QTALI & Q Cout = Cout + MTALI & Q Next Q
je vous remercie par avance pour vos réponses.
Killian
Partager