Sub Button7_Click()
If MsgBox("Voulez-vous vraiment archiver cet enlèvement ?", vbQuestion + vbYesNo, "Confirmation") = vbYes Then
'Desactive les changement à l'écran
Application.ScreenUpdating = False
'Déclaration de variable
Dim archive As String
'Créer un nouveau worbook
Workbooks.Add
newclass = ActiveWorkbook.Name
'Copie des cellules du classeur d'origine
Windows("Outils Facturation.xlsm").Activate
Sheets("Facture").Cells.Copy
'Selection nouveau classeur
Windows(newclass).Activate
With Workbook(newclass).Sheets(1)
Application.CutCopyMode = False
.Name = "Facture" 'Nommée la page "encodage" sur le premier fichier "encodage" sur le second aussi (idem facturation)
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'collage valeurs
.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'collage format (pour les dates entre autre)
End With
'Chemin d'accès fichier
archive = "U:\...\Archive\" & "Enlèvement " & [G3].Value & " du " & [B1].Value & ".xlsx"
'Copie des cellules du classeur d'origine
Windows("Outils Facturation.xlsm").Activate
Sheets("Encodage").Cells.Copy
'Selection nouveau classeur
Windows(newclass).Activate
With Workbook(newclass).Sheets(2)
Application.CutCopyMode = False
.Name = "Encodage"
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'collage valeurs
.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'collage format (pour les dates entre autre)
End With
'Hide feuille inutilisée
Sheets("Sheet3").Delete 'Sheets("Sheet3").Visible =
'Défini les paramètres d'impression
ActiveWindow.View = xlPageBreakPreview 'Avoir un affichage en "Page Break View"
Application.PrintCommunication = False
For i = 1 To 2 'Boucle sur les 2 pages, vu que c'est la même
With Workbook(newclass).Sheets(1).PageSetup
.PrintArea = "$A$1:$G$96" 'A vérifier, j'ai pris le fichier exemple de formulaire.
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0) 'Marge haut/bas/gauche/droite = 0
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0.31496062992126) 'A définir si ok
.FooterMargin = Application.InchesToPoints(0.31496062992126) 'A définir si ok
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = True
.CenterVertically = True
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperLetter
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False 'Option d'impression : centrée sur la feuille
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
Next i
Application.PrintCommunication = True
'sauvegarde du nouveau fichier
ActiveWorkbook.SaveAs Filename:=archive, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Close
'Retour sur classeur d'origine
Windows("Outils Facturation.xlsm").Activate
Range("A1").Select
'On rétabli ce qu'on a désactivé avant
'Application.ScreenUpdating = True 'Même commentaire qu'avant, ce paramètre est remis automatiquement à True à la fin de tes macros
MsgBox "Fichier arichivé à l'adresse suivant : " & vbCrLf & archive
Else: MsgBox "Echec de l'archivage !"
End If
End Sub