Option Explicit
Option Base 1
Sub test()
Dim MonSaut As HPageBreak, Ligne As Long, I As Integer, Planning As Integer
Dim MaString As String, Tablo(), Temp1, Temp2, J As Integer, K As Byte, Ok As Boolean
MaString = InputBox("Saisir la séquence planning à imprimer (type 1-4;7;45) :", "Impression planning")
I = 1
Temp1 = Split(MaString, ";")
For J = LBound(Temp1) To UBound(Temp1)
If InStr(1, Temp1(J), "-") = 0 Then
ReDim Preserve Tablo(I)
Tablo(I) = Temp1(J)
I = I + 1
Else
Temp2 = Split(Temp1(J), "-")
For K = Temp2(0) To Temp2(1)
ReDim Preserve Tablo(I)
Tablo(I) = K
I = I + 1
Next K
End If
Next J
K = MsgBox("Souhaitez-vous bien imprimer ces plannings ? " & Join(Tablo, ";"), vbExclamation + vbOKCancel, "Attention")
If K = vbCancel Then Exit Sub
Planning = Application.InputBox("N° de planning ?", "Selection", , , , , , 1)
I = 1
For J = 1 To UBound(Tablo)
If Tablo(J) = Range("A2") Then
Ok = True
End If
Next J
If Ok Then
With ActiveSheet.PageSetup
.CenterHeader = "&""-,Gras""&24Plannings N° " & Range("A2").Value
End With
ExecuteExcel4Macro "PRINT(2," & I & "," & I & ",1,,,,,,,,2,,,TRUE,,FALSE)"
End If
For Each MonSaut In ActiveSheet.HPageBreaks
I = I + 1
Ligne = MonSaut.Location.Row
Ok = False
For J = 1 To UBound(Tablo)
If Tablo(J) = Range("A" & Ligne + 1) Then
Ok = True
End If
Next J
If Ok Then
With ActiveSheet.PageSetup
.CenterHeader = "&""-,Gras""&24Plannings N° " & Range("A" & Ligne + 1).Value
End With
ExecuteExcel4Macro "PRINT(2," & I & "," & I & ",1,,,,,,,,2,,,TRUE,,FALSE)"
End If
Next MonSaut
End Sub