Option Explicit
Sub Bonne_impression_Test()
Dim Première_Ligne As Integer, Dernière_Ligne As Integer, i As Integer, j As Integer
Dim Compteur_1 As Integer, Compteur_2 As Integer
Application.ScreenUpdating = False
Worksheets("Feuil2").Activate
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotCache.Refresh
With Worksheets("Feuil2")
.Range("A2").Activate
Retour:
For i = 5 To 100
Worksheets("Impression").Range("A" & i & ":L" & i + 5 & " , L" & i & ":L" & i + 5).ClearContents
Next i
Première_Ligne = ActiveCell.Row
If ActiveCell = "Total général" Then Exit Sub
If ActiveCell = "(vide)" Then GoTo On_ne_traite_pas_si_vide
Do Until ActiveCell.Offset(1, 0) <> ActiveCell
ActiveCell.Offset(1, 0).Activate
Loop
Dernière_Ligne = ActiveCell.Row
Worksheets("Impression").Range("A5") = Worksheets("Feuil2").Range("D" & Première_Ligne) 'N°OF
Worksheets("Impression").Range("B5") = Worksheets("Feuil2").Range("E" & Première_Ligne) 'Masse
Compteur_1 = 5
For i = Première_Ligne + 1 To Dernière_Ligne
Application.ScreenUpdating = False
If .Range("B" & i) = .Range("B" & i - 1) And .Range("C" & i) <> .Range("C" & i - 1) Then
Compteur_2 = Compteur_2 + 2
ElseIf .Range("B" & i) = .Range("B" & i - 1) And .Range("C" & i) = .Range("C" & i - 1) Then
Compteur_2 = Compteur_2 + 1
Else
Compteur_1 = Compteur_1 + 8
Compteur_2 = 0
End If
Application.ScreenUpdating = False
Worksheets("Impression").Range("A" & Compteur_1 + Compteur_2) = Worksheets("Feuil2").Range("D" & i)
Worksheets("Impression").Range("B" & Compteur_1 + Compteur_2) = Worksheets("Feuil2").Range("E" & i)
Application.ScreenUpdating = False
Next i
Application.ScreenUpdating = False
Worksheets("Impression").PrintPreview
If MsgBox("Voulez-vous continuer ? ", vbYesNo, "Continuer l'impression") = vbNo Then
Exit Sub
End If
Application.ScreenUpdating = False
On_ne_traite_pas_si_vide:
ActiveCell.Offset(1, 0).Activate
Compteur_1 = -1
Compteur_2 = 0
GoTo Retour
Application.ScreenUpdating = False
End With
Worksheets("Impression").Activate
Application.ScreenUpdating = False
End Sub