Option Explicit
________________________________________________
Function feuille_existe(nom_feuille)
Dim n As Integer
For n = 1 To Sheets.Count
If Sheets(n).Name = nom_feuille Then
feuille_existe = True
Exit Function
End If
Next n
feuille_existe = False
End Function
______________________________________________________
Sub Mensuel()
Dim mois As String
Dim feuille As Worksheet
Dim trouvée As Boolean
Dim sm As Long
Dim i As Integer
Dim n As Integer
Application.DisplayAlerts = False
mois = InputBox("Choissisez le mois svp")
[B]If (feuille_existe("Récap" & mois)) = True Then[/B]
Select Case MsgBox("La feuille existe déjà. Voulez-vous la remplacer?", vbYesNo)
Case vbYes
feuille.Delete
For n = 1 To Sheets.Count
If Sheets(n).Name = mois Then
trouvée = True
Sheets(n).Activate
Exit For
End If
Next n
If Not trouvée Then
MsgBox "Erreur", vbCritical + vbOKOnly
Exit Sub
End If
Sheets.Add.Move After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Récap" & Chr(160) & mois
Worksheets("Récap exemple").Visible = 1
Sheets("Récap exemple").Select
Cells.Select
Selection.Copy
Sheets("Récap" & Chr(160) & mois).Select
ActiveSheet.Paste
Selection.Replace What:="exemple", Replacement:=mois, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A1").Select
For sm = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Cells(sm, "O").Value = "0" Then
Rows(sm).Select
Selection.EntireRow.Hidden = True
End If
Next sm
Worksheets("Récap exemple").Visible = 0
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.787401575)
.RightMargin = Application.InchesToPoints(0.787401575)
.TopMargin = Application.InchesToPoints(0.984251969)
.BottomMargin = Application.InchesToPoints(0.984251969)
.HeaderMargin = Application.InchesToPoints(0.4921259845)
.FooterMargin = Application.InchesToPoints(0.4921259845)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed
End With
MsgBox "Rapport OK", vbInformation + vbOKOnly
Case vbNo
Exit Sub
End Select
[COLOR="Red"]Else[/COLOR]
For n = 1 To Sheets.Count
If Sheets(n).Name = mois Then
trouvée = True
Sheets(n).Activate
Exit For
End If
Next n
If Not trouvée Then
MsgBox "Erreur", vbCritical + vbOKOnly
Exit Sub
End If
Sheets.Add.Move After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Récap" & Chr(160) & mois
Worksheets("Récap exemple").Visible = 1
Sheets("Récap exemple").Select
Cells.Select
Selection.Copy
Sheets("Récap" & Chr(160) & mois).Select
ActiveSheet.Paste
Selection.Replace What:="exemple", Replacement:=mois, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A1").Select
For sm = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Cells(sm, "O").Value = "0" Then
Rows(sm).Select
Selection.EntireRow.Hidden = True
End If
Next sm
Worksheets("Récap exemple").Visible = 0
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.787401575)
.RightMargin = Application.InchesToPoints(0.787401575)
.TopMargin = Application.InchesToPoints(0.984251969)
.BottomMargin = Application.InchesToPoints(0.984251969)
.HeaderMargin = Application.InchesToPoints(0.4921259845)
.FooterMargin = Application.InchesToPoints(0.4921259845)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed
End With
MsgBox "Rapport OK", vbInformation + vbOKOnly
End If
End Sub