Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: pdf naam geven  (gelezen 1655 keer)

0 leden en 1 gast bekijken dit topic.

Offline malsines

  • Lid
  • *
  • Berichten: 59
  • Geslacht: Man
  • Oplossing.be
pdf naam geven
« Gepost op: 18 januari 2022, 10:18:47 »
Beste forum

Ik gebruik de onderstaande vba code om meerdere sheet te opslaan als 1 pdf. hij doet het goed alleen wil ik de pdf een naam geven. bijvoorbeeld "bestellingen". ik heb een en al gegoogled maar kom er niet uit. graag jullie hulp. code geeft de naam "Waar 18_01_2022  10_09". dus ipv Waar wil ik graag Bestellingen hebben.


Sub PRINT_TO_PDF_ALL()
Dim sName$
Dim Path$
sName = Sheets(Array("chauffeur", "self service", "totaal", "productie")).Select
Path = CreateObject("WScript.Shell").specialfolders("Desktop")
On Error Resume Next
ThisWorkbook.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=Path & "\" & sName & " " & Format((Now), "dd_mm_yyyy  hh_mm") & ".pdf", _
    openafterpublish:=True
If Err.Number > 0 Then MsgBox "Error saving pdf."
With ActiveSheet.PageSetup
    .LeftMargin = Application.InchesToPoints(0.5)
    .RightMargin = Application.InchesToPoints(0.5)
    .TopMargin = Application.InchesToPoints(0.5)
    .BottomMargin = Application.InchesToPoints(0.5)
    .HeaderMargin = Application.InchesToPoints(0.2)
    .FooterMargin = Application.InchesToPoints(0.1)
    .PaperSize = xlPaperA4
    .Orientation = xlPortrait
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
End With
End Sub

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 19.376
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: pdf naam geven
« Reactie #1 Gepost op: 18 januari 2022, 10:37:07 »
Sub PRINT_TO_PDF_ALL()

Dim Path$
Path = CreateObject("WScript.Shell").specialfolders("Desktop")
On Error Resume Next
ThisWorkbook.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Path & "\" & "Bestelling" & ".pdf", _ openafterpublish:=True
If Err.Number > 0 Then MsgBox "Fout bij het opslaan van pdf."
With ActiveSheet.PageSetup
    .LeftMargin = Application.InchesToPoints(0.5)
    .RightMargin = Application.InchesToPoints(0.5)
    .TopMargin = Application.InchesToPoints(0.5)
    .BottomMargin = Application.InchesToPoints(0.5)
    .HeaderMargin = Application.InchesToPoints(0.2)
    .FooterMargin = Application.InchesToPoints(0.1)
    .PaperSize = xlPaperA4
    .Orientation = xlPortrait
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
End With
End Sub


:) SoftAid :)             
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline malsines

  • Lid
  • *
  • Berichten: 59
  • Geslacht: Man
  • Oplossing.be
Re: pdf naam geven
« Reactie #2 Gepost op: 18 januari 2022, 10:56:23 »
Dankjewel softaid

met jouw voorbeeld heb ik het zo gemaakt.

Filename:=Path & "\" & "Bestelling" & " " & Format((Now), "dd_mm_yyyy  hh_mm") & ".pdf", _

Hij doet het

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 19.376
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: pdf naam geven
« Reactie #3 Gepost op: 18 januari 2022, 11:10:02 »
Hallo malsines,

Prima toch....

Blij dat je geholpen bent  :)

Groeten,

:) SoftAid :)             
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Warme bakkertje

  • Excel-Expert
  • Volledig lid
  • *****
  • Berichten: 190
  • Geslacht: Man
Re: pdf naam geven
« Reactie #4 Gepost op: 18 januari 2022, 13:26:00 »
Enkel ter aanvulling.

Filename:=Path & "\" & "Bestelling" & " " & Format((Now), "dd_mm_yyyy  hh_mm") & ".pdf", _

Het rode gedeelte is eigenlijk overbodig want zodra je een Type kiest bij ExportAsFixedFormat wordt de juiste

extensie automatisch toegevoegd.  :thumbsup:
Windows 10 Home   NLD 64bit

Microsoft Office Professional Plus 2016 US

Offline malsines

  • Lid
  • *
  • Berichten: 59
  • Geslacht: Man
  • Oplossing.be
Re: pdf naam geven
« Reactie #5 Gepost op: 18 januari 2022, 13:42:51 »
Dankjewel warme bakkertje, collega :)

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 19.376
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: pdf naam geven
« Reactie #6 Gepost op: 18 januari 2022, 16:25:59 »
& ".pdf"is eigenlijk overbodig want zodra je een Type kiest bij ExportAsFixedFormat wordt de juiste extensie automatisch toegevoegd. 

Weer wat slimmer geworden. Dank je wel, Warm bakkertje  :thumbsup:

:) SoftAid :)             
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline malsines

  • Lid
  • *
  • Berichten: 59
  • Geslacht: Man
  • Oplossing.be
Re: pdf naam geven
« Reactie #7 Gepost op: 18 januari 2022, 16:27:55 »
Bij mijn code wijst B2 naar een datum die ik heb ingevoerd, en hij slaat op als bv. Bestelling 16-01-2022.
kan ik ipv dit ook zo opslaan met het dagnummer van het jaar ervoor. bv 016 Bestelling 16-01-2022

Sub PRINT_TO_PDF_ALL()
Dim sName$
Dim Path$
sName = Sheets(Array("chauffeur", "self service", "totaal", "productie", "productie")).Select
Path = CreateObject("WScript.Shell").specialfolders("Desktop")
On Error Resume Next
ThisWorkbook.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=Path & "\" & "Bestelling" & " " & Format((ActiveSheet.Range("B2")), "") & ".pdf", _
    openafterpublish:=True
If Err.Number > 0 Then MsgBox "Error saving pdf."
With ActiveSheet.PageSetup
    .LeftMargin = Application.InchesToPoints(0.5)
    .RightMargin = Application.InchesToPoints(0.5)
    .TopMargin = Application.InchesToPoints(0.5)
    .BottomMargin = Application.InchesToPoints(0.5)
    .HeaderMargin = Application.InchesToPoints(0.2)
    .FooterMargin = Application.InchesToPoints(0.1)
    .PaperSize = xlPaperA4
    .Orientation = xlPortrait
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
End With
End Sub

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 19.376
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: pdf naam geven
« Reactie #8 Gepost op: 18 januari 2022, 18:09:33 »
Hallo malines,

in een lege cel (ergens) kan je volgende formule zetten:
In de veronderstelling dat je datum (bvb 16/01/2022) in A1 staat:

=A1-DATUM(JAAR(A1);1;0)
dit geeft je de dag van het jaar (365 dagen) in een getal als 16

Mogelijk kan die formule ook in VBA gezet worden.

Die voorloop-nul die je in je voorbeeld gebruikt, moet in VBA goedgemaakt worden, indien je de voorwaarden (en de noodzakelijkheid) van de voorloop-nul (-len) opgeeft.

De uitkomst van je formule kan je dan gebruiken in VBA om je Dagnummer op te vragen

:) SoftAid :)             
« Laatst bewerkt op: 18 januari 2022, 18:30:37 door SoftAid »
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Warme bakkertje

  • Excel-Expert
  • Volledig lid
  • *****
  • Berichten: 190
  • Geslacht: Man
Re: pdf naam geven
« Reactie #9 Gepost op: 18 januari 2022, 18:53:53 »
Sub PRINT_TO_PDF_ALL()
Dim sName$
Dim Path$
sName = Sheets(Array("chauffeur", "self service", "totaal", "productie", "productie")).Select
Path = CreateObject("WScript.Shell").specialfolders("Desktop")
yearday = Format(DateDiff("d", CDate("1/1/" & Year(Now)), CDate(Now)) + 1, "000")
On Error Resume Next
ThisWorkbook.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Path & "\" & yearday & "Bestelling" & " " & Format((ActiveSheet.Range("B2")), ""), _
    openafterpublish:=True
If Err.Number > 0 Then MsgBox "Error saving pdf."
With ActiveSheet.PageSetup
    .LeftMargin = Application.InchesToPoints(0.5)
    .RightMargin = Application.InchesToPoints(0.5)
    .TopMargin = Application.InchesToPoints(0.5)
    .BottomMargin = Application.InchesToPoints(0.5)
    .HeaderMargin = Application.InchesToPoints(0.2)
    .FooterMargin = Application.InchesToPoints(0.1)
    .PaperSize = xlPaperA4
    .Orientation = xlPortrait
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
End With
End Sub
Windows 10 Home   NLD 64bit

Microsoft Office Professional Plus 2016 US

Offline malsines

  • Lid
  • *
  • Berichten: 59
  • Geslacht: Man
  • Oplossing.be
Re: pdf naam geven
« Reactie #10 Gepost op: 18 januari 2022, 19:02:02 »
Beste Bakker

Hij geeft de dagnummer van vandaag. kan ik niet de dagnummer krijgen van de datum wat in B2 staat.
En van softaid heb ik geprobeerd maar is me niet gelukt

Offline malsines

  • Lid
  • *
  • Berichten: 59
  • Geslacht: Man
  • Oplossing.be
Re: pdf naam geven
« Reactie #11 Gepost op: 18 januari 2022, 19:07:30 »
Beste bakker
met jouw vba is het me gelukt. dankjewel. jij ook bedankt softaid

Sub PRINT_TO_PDF_ALL()
Dim sName$
Dim Path$
sName = Sheets(Array("chauffeur", "self service", "totaal", "productie", "productie")).Select
Path = CreateObject("WScript.Shell").specialfolders("Desktop")
yearday = Format(DateDiff("d", CDate("1/1/" & Year(ActiveSheet.Range("B2"))), CDate(ActiveSheet.Range("B2"))) + 1, "000")
On Error Resume Next
ThisWorkbook.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Path & "\" & yearday & " " & "Bestelling" & " " & Format((ActiveSheet.Range("B2")), ""), _
    openafterpublish:=True
If Err.Number > 0 Then MsgBox "Error saving pdf."
With ActiveSheet.PageSetup
    .LeftMargin = Application.InchesToPoints(0.5)
    .RightMargin = Application.InchesToPoints(0.5)
    .TopMargin = Application.InchesToPoints(0.5)
    .BottomMargin = Application.InchesToPoints(0.5)
    .HeaderMargin = Application.InchesToPoints(0.2)
    .FooterMargin = Application.InchesToPoints(0.1)
    .PaperSize = xlPaperA4
    .Orientation = xlPortrait
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
End With
End Sub

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 19.376
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: pdf naam geven
« Reactie #12 Gepost op: 18 januari 2022, 19:32:29 »
Met je aanpassing van de code van Warm bakkertje zit je nu juist.

Succes verder (en natuurlijk altijd welkom),

:) SoftAid :)             


Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

 


www.combell.com