Bonsoir le forum,
J'ai besoin de votre expertise car j'ai une macro qui fonctionne très bien, mais je souhaiterai pouvoir faire 2 choses de plus, à savoir :
1- choisir le dossier d'enregistrement avec la boite de dialogue "enregistrer sous",
2 -si dans le répertoire choisit, le nom du PDF existe déjà soit il me propose de le remplacer soit de le renommer
merci beaucoup pour votre aide
Private Sub Print_PDF_Click()
Dim Mdp As String
Mdp = Application.InputBox("Veuillez introduire le mot de passe")
If Mdp <> "romi" Then MsgBox "Accès refusé !": Exit Sub
Application.ScreenUpdating = False
If Sheets("V3").Range("G27") = "" Then MsgBox "Vous devez renseigner la cellule !", vbCritical, "PL vous informe": Exit Sub
Dim Sh1 As Worksheet
Set Sh1 = Feuil24 'A adapter si besoin en fonction du codename de la feuille 1
With Sh1.PageSetup
.PrintArea = "A148" 'Zone d'impression à adapter de la feuille 1
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
'Réglage des marges
.LeftMargin = Application.InchesToPoints(0.1) 'Marge gauche
.RightMargin = Application.InchesToPoints(0.1) 'Marge droite
.TopMargin = Application.InchesToPoints(1#) 'Marge haut de page
.BottomMargin = Application.InchesToPoints(0.1) 'Marge bas de page
.Orientation = xlLandscape 'Paysage
' .Orientation = xlPortrait 'Portrait
End With
Sheets(Array(Sh1.Name).Select
Dim NFichier As String
NFichier = Sh1.Range("G27") & "-" & Sh1.Range("F30") & "-" & Sh1.Range("F33") & Format(Date, "-dd-mm-yyyy")
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & NFichier, IgnorePrintAreas:=False, OpenAfterPublish:=False
Sh1.Select '<=== A rajouter
MsgBox "Le PDF a été enregistré." & vbCrLf & vbCrLf & "Ici ==> " & ThisWorkbook.Path & "-" & vbCrLf & vbCrLf & _
"Sous le nom : " & NFichier & ".pdf", 64, "PL vous informe..."
Set Sh1 = Nothing 'Decharge la feuille 1
'ActiveWindow.Close
Application.ScreenUpdating = True
End Sub
bonne soirée
J'ai besoin de votre expertise car j'ai une macro qui fonctionne très bien, mais je souhaiterai pouvoir faire 2 choses de plus, à savoir :
1- choisir le dossier d'enregistrement avec la boite de dialogue "enregistrer sous",
2 -si dans le répertoire choisit, le nom du PDF existe déjà soit il me propose de le remplacer soit de le renommer
merci beaucoup pour votre aide
Private Sub Print_PDF_Click()
Dim Mdp As String
Mdp = Application.InputBox("Veuillez introduire le mot de passe")
If Mdp <> "romi" Then MsgBox "Accès refusé !": Exit Sub
Application.ScreenUpdating = False
If Sheets("V3").Range("G27") = "" Then MsgBox "Vous devez renseigner la cellule !", vbCritical, "PL vous informe": Exit Sub
Dim Sh1 As Worksheet
Set Sh1 = Feuil24 'A adapter si besoin en fonction du codename de la feuille 1
With Sh1.PageSetup
.PrintArea = "A148" 'Zone d'impression à adapter de la feuille 1
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
'Réglage des marges
.LeftMargin = Application.InchesToPoints(0.1) 'Marge gauche
.RightMargin = Application.InchesToPoints(0.1) 'Marge droite
.TopMargin = Application.InchesToPoints(1#) 'Marge haut de page
.BottomMargin = Application.InchesToPoints(0.1) 'Marge bas de page
.Orientation = xlLandscape 'Paysage
' .Orientation = xlPortrait 'Portrait
End With
Sheets(Array(Sh1.Name).Select
Dim NFichier As String
NFichier = Sh1.Range("G27") & "-" & Sh1.Range("F30") & "-" & Sh1.Range("F33") & Format(Date, "-dd-mm-yyyy")
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & NFichier, IgnorePrintAreas:=False, OpenAfterPublish:=False
Sh1.Select '<=== A rajouter
MsgBox "Le PDF a été enregistré." & vbCrLf & vbCrLf & "Ici ==> " & ThisWorkbook.Path & "-" & vbCrLf & vbCrLf & _
"Sous le nom : " & NFichier & ".pdf", 64, "PL vous informe..."
Set Sh1 = Nothing 'Decharge la feuille 1
'ActiveWindow.Close
Application.ScreenUpdating = True
End Sub
bonne soirée
Dernière édition: