Sub M_snb()
sn = Sheets("Data").Cells(1).CurrentRegion
sp = Sheets("Mapping").UsedRange
sf= split("dddd_'mmm-yy_\Wk ww_\WB dd-mm-yyyy_\WE dd-mm-yyyy","_")
For j = 2 To UBound(sn)
For jj = 2 To UBound(sp)
If sn(j, 3) = sp(jj, 1) Then Exit for
next
sn(j, 17) = sp(jj, 2)
sn(j, 18) = sp(jj, 4)
sn(j, 19) = sp(jj, 5)
For jj = 2 To UBound(sp)
If sn(j, 1) = sp(jj, 16) Then exit for
next
sn(j, 20) = sp(jj, 20)
sn(j, 21) = sp(jj, 21)
w_00 = sn(j, 2) - Weekday(sn(j, 2))
For jj = 22 To 28
If jj < 27 Then sn(j, jj - 10) = Format(Choose(jj - 21, sn(j, 2), sn(j, 2), sn(j, 2), w_00 + 1, w_00 + 7), sf(jj - 21))
sn(j, jj) = Choose(jj - 21, sn(j, 5) * sn(j, 4), sn(j, 6) * sn(j, 4), sn(j, 7) * sn(j, 4), sn(j, 8) * sn(j, 4), sn(j, 9) / 600, sn(j, 10) / 60, sn(j, 11) / 60)
Next
Next
Sheets("Data").Cells(1).CurrentRegion.Offset(19) = sn
End Sub