Bonjour ! Une question surement bête mais à laquelle je ne trouve pas de réponse... Je voudrais écrire une boucle pour la macro suivante :

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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sheets(6).Name = ws2.Cells(9, 3) & " - " & ws1.Cells(6, 4)
Sheets(7).Name = ws2.Cells(9, 3) & " - " & ws1.Cells(7, 4)
Sheets(8).Name = ws2.Cells(9, 3) & " - " & ws1.Cells(8, 4)
 
Sheets(9).Name = ws2.Cells(10, 3) & " - " & ws1.Cells(6, 4)
Sheets(10).Name = ws2.Cells(10, 3) & " - " & ws1.Cells(7, 4)
Sheets(11).Name = ws2.Cells(10, 3) & " - " & ws1.Cells(8, 4)
 
Sheets(12).Name = ws2.Cells(11, 3) & " - " & ws1.Cells(6, 4)
Sheets(13).Name = ws2.Cells(11, 3) & " - " & ws1.Cells(7, 4)
Sheets(14).Name = ws2.Cells(11, 3) & " - " & ws1.Cells(8, 4)
 
Sheets(15).Name = ws2.Cells(12, 3) & " - " & ws1.Cells(6, 4)
Sheets(16).Name = ws2.Cells(12, 3) & " - " & ws1.Cells(7, 4)
Sheets(17).Name = ws2.Cells(12, 3) & " - " & ws1.Cells(8, 4)
 
Sheets(18).Name = ws2.Cells(13, 3) & " - " & ws1.Cells(6, 4)
Sheets(19).Name = ws2.Cells(13, 3) & " - " & ws1.Cells(7, 4)
Sheets(20).Name = ws2.Cells(13, 3) & " - " & ws1.Cells(8, 4)
 
Sheets(21).Name = ws2.Cells(14, 3) & " - " & ws1.Cells(6, 4)
Sheets(22).Name = ws2.Cells(14, 3) & " - " & ws1.Cells(7, 4)
Sheets(23).Name = ws2.Cells(14, 3) & " - " & ws1.Cells(8, 4)
 
Sheets(24).Name = ws2.Cells(15, 3) & " - " & ws1.Cells(6, 4)
Sheets(25).Name = ws2.Cells(15, 3) & " - " & ws1.Cells(7, 4)
Sheets(26).Name = ws2.Cells(15, 3) & " - " & ws1.Cells(8, 4)
 
Sheets(27).Name = ws2.Cells(16, 3) & " - " & ws1.Cells(6, 4)
Sheets(28).Name = ws2.Cells(16, 3) & " - " & ws1.Cells(7, 4)
Sheets(29).Name = ws2.Cells(16, 3) & " - " & ws1.Cells(8, 4)
En sachant que je voudrais ajouter une option "si la cellule à gauche de ws2.Cells(9, 3) est vide alors passer à ws2.Cells(10, 3)".

J'ai tenté d'écrire plusieurs versions de ce type de code (dont je n'ai pas gardé de copie) :
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
17
18
19
Sub test()
 
Set ws1 = ThisWorkbook.Sheets(1)
Set ws2 = ThisWorkbook.Sheets(2)
 
WS_Count = ActiveWorkbook.Worksheets.Count
 
For i = 9 To 16
 For j = 6 To WS_Count
  For k = 6 To 8
   If ws2.Cells(i, 2).Value = "" Then GoTo Continue Else
    Sheets(j).Name = ws2.Cells(i, 3) & " - " & ws1.Cells(k, 4)
   End If
  Next k
 Next j
Continue:
Next i
 
End Sub
Je n'arrive pas à trouver la bonne logique/syntaxe/écriture...