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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| Private Sub EffacerHorsZoneImpression()
Dim cel, celu, i, coladroite, lignendessous, premcelzi, lignaudessus, colagauche, zi
Dim col, prem, colg
Dim nbCelu As Long
Dim nbgraphs As Integer
Dim f As Integer
For f = 1 To ActiveWorkbook.Sheets.Count
Sheets(f).Activate
nbCelu = 0
zi = ActiveSheet.PageSetup.PrintArea 'zi=zone d'impression
If zone = "" Then GoTo suivant
For Each cel In Range(zi)
i = cel.Address
nbCelu = nbCelu + 1
Next cel
nbgraphs = ActiveSheet.ChartObjects.Count
If nbgraphs = 0 Then
'Efface les colonnes à droite de la zone d'impression
coladroite = Range(i).Offset(0, 1).Columns.Address(ColumnAbsolute:=False)
col = InStr(coladroite, "$")
coladroite = Left(coladroite, col - 1)
Columns(coladroite & ":iv").Clear
'Efface les lignes en dessous
lignendessous = Range(i).Offset(1, 0).Row
Rows(lignendessous & ":65536").Clear
'recherche de la première cellule de la zone d'impression
If nbCelu > 1 Then
prem = InStr(zi, ":")
premcelzone = Left(zi, prem - 1)
Else
premcelzi = zi
End If
If premcelzone <> "$A$1" Then
'Efface les lignes au dessus de la zone d'impression
On Error GoTo line1
lignaudessus = Range(premcelzi).Offset(-1, 0).Row
Rows("1:" & lignaudessus).Clear
'Efface les colonnes à gauche de la zone d'impression
line1:
On Error GoTo suivant
colagauche = Range(premcelzi).Offset(0, -1).Columns.Address(ColumnAbsolute:=False)
colg = InStr(colagauche, "$")
colagauche = Left(colagauche, colg - 1)
Columns("a:" & colagauche).Clear
End If
End If
suivant:
Application.DisplayAlerts = False
Next f
Application.DisplayAlerts = True
End Sub |
Partager