Toon posts:

Macro Automatisch Opslaan PDF

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Mijn vraag
...

Wil een excel automatisch opslaan als pdf in een bepaalde folder zonder dat het opslaan als venster opengaat

Wat ik al heb:

Sub PDFActiveSheet()
'www.contextures.com
'for Excel 2010 and later
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strTime As String
Dim strName As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myFile As Variant
On Error GoTo errHandler

Set wbA = ActiveWorkbook
Set wsA = ActiveSheet
strTime = Format(Now(), "yyyymmdd\_hhmm")

'get active workbook folder, if saved
strPath = wbA.Path
If strPath = "True" Then
strPath = Application.DefaultFilePath
End If
strPath = "c:\Users\ShawN\documenten" & "\"
ActiveWorkbook.Save
'replace spaces and periods in sheet name

strName = Replace(wsA.Name, " ", "")
strName = Replace(strName, ".", "_")

'create default name for savng file
strFile = Range("F10") & ".pdf"
strPathFile = strPath & strFile

'use can enter name and
' select folder for file
myFile = Application.GetSaveAsFilename _
(InitialFileName:=strPathFile, _
FileFilter:="PDF Files (*.pdf), *.pdf", _
Title:="Select Folder and FileName to save")

'export to PDF if a folder was selected
If myFile <> "False" Then
Wa.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=myFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=True, _
OpenAfterPublish:=True
'confirmation message with file info
MsgBox "PDF file has been created: " _
& vbCrLf _
& myFile
End If

exitHandler:
Exit Sub
errHandler:
MsgBox "Could not create PDF file"
Resume exitHandler
End Sub

Beste antwoord (via Verwijderd op 18-02-2018 15:30)


  • breew
  • Registratie: April 2014
  • Laatst online: 10:16
Verwijderd schreef op zaterdag 17 februari 2018 @ 21:47:
Heb de code Application.DisplayAlerts = False
overal al tussen geplaatst.
Vergeet je niet
Visual Basic:
1
Application.DisplayAlerts = True
ook toe te voegen?
Verwijderd schreef op zaterdag 17 februari 2018 @ 21:47:
Heb je aub een goed werkend macro code dat de naam pakt uit de cel F10 en opslaagt als pdf zonder dialoogvensters ? moet het morgen al hebben heb hier al lang mee bezig geweest zelf heb ik hier niets ervaring mee
kort antwoord: nee

wat langer antwoord:
Dit gaat niet goed zo. VBA is niet zomaar een speelgoedje.. Waarschijnlijk heb je, door overal Application.DisplayAlerts = False in te knallen, voorkomen dat je überhaupt nog vensters naar voren krijgt in excel.. Met VBA kun je je data, excel-bestand, office- en/of windowsinstallatie volledig om zeep helpen. Zomaar blind code van internet kopiëren, zonder dat je enige idee hebt wat het doet, is echt vragen om problemen. Tuurlijk doet iedereen het wel eens (I know I did), maar als je een bepaalde basis mist gaat het geheid een keer goed mis.

Als je serieus aan de slag wilt met VBA, dan kost dit tijd. In ieder geval de tijd en discipline om code van internet grondig door te vlooien totdat je min-of-meer begrijpt wat elke regel code inhoudt. Daarnaast kan ik je ook wel wat leesvoer aanbevelen, daarover is laatst nog een topic geweest in dit forum.

Als het je niet lukt met de code uit mijn vorige post, of je geen idee hebt wat je daarmee moet doen, dan kun je beter een ontwikkelaar inhuren als het morgen al klaar moet zijn.

[ Voor 59% gewijzigd door breew op 17-02-2018 22:55 ]

Alle reacties


Acties:
  • +3 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 10:16
Prachtig, een kopie van de eerste google-hit op "excel vba save pdf".

Ik neem aan dat je alles uitleg onder de code hebt doorgelezen, en daardoor begrijpt wat de code doet?
Welk gedeelte van je macro werkt niet naar behoren voor jou?

Iets meer on topic:
Dialoogvensters (zoals "Opslaan als") uitschakelen doe je met:
Visual Basic:
1
Application.DisplayAlerts = False

Edit:

De code die je hebt lijkt mij overkill voor een simpele save-as
Dit moet meer dan genoeg zijn (denk ik).. aanpassen naar wens...
Visual Basic:
1
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="map waarin je op wilt slaan" & "\" & ThisWorkbook.Name, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

[ Voor 148% gewijzigd door breew op 17-02-2018 21:11 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Waar moet ik dan die dialoog vensters uitschakelen waar zet ik de code hiervoor ?

Acties:
  • 0 Henk 'm!

  • Bastiaan
  • Registratie: November 2002
  • Laatst online: 25-09 15:35

Bastiaan

Bas·ti·aan (de, m)

Dit is inderdaad gewoon 1-op-1 copy-/pastewerk van de URL welke in die VBA-code staat; je kunt dus wel de code vinden, maar probeer dan inderdaad ook even verder te denken en te begrijpen/testen met het voorgekauwde werk en laat dán even weten waar het fout loopt. Steek je er gelijk wat van op en is de welwillendheid om te helpen hier gelijk een stuk groter :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heb de code Application.DisplayAlerts = False

overal al tussen geplaatst.

Heb je aub een goed werkend macro code dat de naam pakt uit de cel F10 en opslaagt als pdf zonder dialoogvensters ? moet het morgen al hebben heb hier al lang mee bezig geweest zelf heb ik hier niets ervaring mee

Acties:
  • +1 Henk 'm!

  • Bastiaan
  • Registratie: November 2002
  • Laatst online: 25-09 15:35

Bastiaan

Bas·ti·aan (de, m)

Ga eens aan de gang met de code van @breew; dat is al zo goed als kant-en-klaar voor jouw doeleinde.

Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 10:16
Verwijderd schreef op zaterdag 17 februari 2018 @ 21:47:
Heb de code Application.DisplayAlerts = False
overal al tussen geplaatst.
Vergeet je niet
Visual Basic:
1
Application.DisplayAlerts = True
ook toe te voegen?
Verwijderd schreef op zaterdag 17 februari 2018 @ 21:47:
Heb je aub een goed werkend macro code dat de naam pakt uit de cel F10 en opslaagt als pdf zonder dialoogvensters ? moet het morgen al hebben heb hier al lang mee bezig geweest zelf heb ik hier niets ervaring mee
kort antwoord: nee

wat langer antwoord:
Dit gaat niet goed zo. VBA is niet zomaar een speelgoedje.. Waarschijnlijk heb je, door overal Application.DisplayAlerts = False in te knallen, voorkomen dat je überhaupt nog vensters naar voren krijgt in excel.. Met VBA kun je je data, excel-bestand, office- en/of windowsinstallatie volledig om zeep helpen. Zomaar blind code van internet kopiëren, zonder dat je enige idee hebt wat het doet, is echt vragen om problemen. Tuurlijk doet iedereen het wel eens (I know I did), maar als je een bepaalde basis mist gaat het geheid een keer goed mis.

Als je serieus aan de slag wilt met VBA, dan kost dit tijd. In ieder geval de tijd en discipline om code van internet grondig door te vlooien totdat je min-of-meer begrijpt wat elke regel code inhoudt. Daarnaast kan ik je ook wel wat leesvoer aanbevelen, daarover is laatst nog een topic geweest in dit forum.

Als het je niet lukt met de code uit mijn vorige post, of je geen idee hebt wat je daarmee moet doen, dan kun je beter een ontwikkelaar inhuren als het morgen al klaar moet zijn.

[ Voor 59% gewijzigd door breew op 17-02-2018 22:55 ]

Pagina: 1