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
| Sub LancerTraitement()
Dim wSh1 As Worksheet, wSh2 As Worksheet
Dim kR1 As Long, kR2 As Long, k As Long
Set wSh1 = ActiveWorkbook.Sheets("REF")
Set wSh2 = ActiveWorkbook.Sheets("FICHE")
kR1 = 3 '--- première ligne à traiter
While wSh1.Cells(kR1, 1) <> "" '--- continuer tant que cellule en colonne 1 non vide
If wSh1.Cells(kR1, 12) = 1 Then '--- 12 = 12e colonne: L
'--- copier de wSh1 sur wSh2
wSh2.[E2] = wSh1.Cells(kR1, 1)
wSh2.[M2] = wSh1.Cells(kR1, 2)
wSh2.[H3] = wSh1.Cells(kR1, 6)
wSh2.[F6] = wSh1.Cells(kR1, 3)
wSh2.[J6] = wSh1.Cells(kR1, 4)
wSh2.Range("D9:M12").ClearContents '--- vider la plage
Select Case wSh1.Cells(kR1, 3) & wSh1.Cells(kR1, 4)
Case "CARREROUGE"
kR2 = 9
Case "CARREBLEU"
kR2 = 10
Case "CERCLEBLEU"
kR2 = 11
Case Else '--- autre cas
kR2 = 12
End Select
For k = 1 To 5
wSh2.Cells(kR2, 2 + 2 * k) = wSh1.Cells(kR1, 5 + k)
Next k
wSh2.PrintPreview '--- aperçu avant impression
'wSh2.PrintOut '--- impression directe
End If
kR1 = kR1 + 1 '--- passer à la ligne suivante
Wend
Set wSh1 = Nothing
Set wSh2 = Nothing
End Sub |
Partager