1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| Dim cl1 As Workbook
Dim cl2 As Workbook
Dim cl3 As Workbook
Dim clx As Variant
Dim d1 As Worksheet
Dim d2 As Worksheet
Dim d3 As Worksheet
Dim dx As Variant
Dim ca As Variant
clx = Array(cl1, cl2, cl3)
dx = Array(d1, d2, d3)
ca = Array(10, 20, 30, 40, 49, 50, 51, 52)
For i = 1 To 3
clx(i).Activate
dx(i).Activate
Range("B5").Activate
'Oui, je sais, beaucoup d'Activate, c'est la honte, mais d'expérience, il y a des risques de bogues sans.
'Je préfère en mettre trop au début et les enlever après en vérifiant s'ils sont nécessaires.
Do While v < 5
'L'idée, est de compter le nombre de cellules vides et de s'arrêter à 5, la colonne de données étant alors finie.
'D'habitude, je cherche le rang de la dernière cellule non-vide, mais là, j'ai fait différemment.
For j = 1 To UBound(ca)
'J'aurais aimé placer ça sous Select Case, mais ça retournait une erreur de compilation. J'ai donc essayé comme ça
'pour voir ce que ça donnait et c'est là que ça a planté.
Select Case Left(ActiveCell.Value, 3)
Case Is = ca(j) & " "
MsgBox "TEXT1"
Case Is = " "
'dans le cas où la cellule est vide, n'est-ce pas?
ActiveCell.Offset(1).Activate
v = v + 1
Case Else
MsgBox "text2"
End Select
Next
Loop
Next |
Partager