• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA code opslaan locatie PDF bestanden

Status
Niet open voor verdere reacties.

oeldere

Terugkerende gebruiker
Lid geworden
26 dec 2008
Berichten
2.741
Beste forumleden,

met onderstaande code worden een bestand opgeslagen.

a75 = bestandslokatie
c14 = toevoeging bij faktuurnummer
b14 = faktuurnummer
b53 = naam

Deze code werkt wel voor de excel bestanden.

Als ik nu met dezelfde code een pdf laat maken van dit bestand, dan worden deze bestanden
geplaatst in de directorie waar ik de laatste keer een PDF heb opgeslagen.

Die code is met een macro opgenomen.

Wie kan en wil me helpen met de oplossing voor dit probleem?

Ik denk dat de oranje code aangepast moet worden.

Bij voorbaat dank.

Code:
Sub Opslaan()
Range("b14").Value = Range("b14").Value + 1

With Sheets("Invulblad")
ActiveWorkbook.SaveAs Filename:= _
.[a75] & .[C14] & "-" & Format(.[B14], "000") & " " & .[B53] & ".xls"
End With

'
' PDFprinten Macro
' De macro is gemaakt op 05-03-2010 door BEKEND.

[COLOR="darkorange"][COLOR="darkred"]With Sheets("faktuur").Select
    Application.ActivePrinter = "CutePDF Writer op CPW2:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "CutePDF Writer op CPW2:", Collate:=True
End With

With Sheets("Invulblad")
ActiveWorkbook.SaveAs Filename:= _
.[a75] & .[C14] & "-" & Format(.[B14], "000") & " " & .[B53] & ".pdf"
End With[/COLOR][/COLOR]

With Sheets("invulblad").Select
    ActiveWindow.SmallScroll Down:=-12
    Range("A1").Select
End With

ActiveSheet.Range("b3:b9").ClearContents
ActiveSheet.Range("d4:j7").ClearContents
Range("b51:j51").Value = "=1"

Application.DisplayAlerts = False

With Sheets("Invulblad")
ActiveWorkbook.SaveAs Filename:= _
.[a76] & .[a1] & ".xls"
End With

Application.DisplayAlerts = True
End Sub
 
Beste Hoornvan,

heb een andere PDFcreator => ga hier toch nog mee aan de slag.

Beste Danny,

ik kan het bestand op het werk niet openen (.rar).
ga hier vanavond (thuis) mee aan de slag.

ik kom hier nog op terug.
 
Beste oeldere ;)

Je kan ook eens naar deze site kijken.

Excel omzetten in pdf in Excel zelf zonder macro's.
Wel voor de versie Excel 2007.

Zo doe ik het.

Groetjes Danny. :thumb:
 
beste Danny,

ik heb zojuist thuis de bestanden geopend.

ik zal hier vanavond naar kijken, of ik hiermee tot een oplossing kom.

de versie voor windows 2007 kan ik in mijn vraagstelling niet gebruiken (wordt nog oude versie gebruikt).
dit is voor toekomst wel een optie.

Is mijn code (oranje gedeelte) niet aan elkaar te koppelen, zodat ik hiermee ook de gewenste uitkomst krijg?

alvast bedankt voor de reactie
 
aangepaste code

Met het voorbeeld van Danny heb ik het bestand als volgt aangepast.

in de thuissituatie werkt deze macro.

in de werksituatie krijg ik de foutmelding:

"deze eigenschap of methode wordt niet ondersteund door dit object"


heeft dit te maken dat deze PDF writers niet aanwezig zijn?

Iedereen alvast bedankt.

Code:
Sub Pdf_maken_bekend_definitief()

Dim Pad As String, BestandsNaam As String

Pad = Sheets("invulblad").Range("a80").Value
BestandsNaam = Sheets("invulblad").[C14].Value & "-" & " " & Sheets("invulblad").[B14].Value & " " & Sheets("invulblad").[B53].Value
Sheets("Faktuur").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Pad & BestandsNaam, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub
 
Heeft iemand een idee? (anders sluit ik morgen deze topic)

"deze eigenschap of methode wordt niet ondersteund door dit object"

heeft dit te maken dat deze PDF writers niet aanwezig zijn?

Iedereen alvast bedankt.
 
het probleem is dat ik zelf geen rechten heb om PDF-printers op het systeem te installeren.

ik dien dus de aanwezige PDF-printers:

1) CutePDF writer
2) Micorsoft XPS Document Writer

te gebruiken.

A) Heeft de foutmelding met het niet aanwezig zijn van de printer te maken

of

B) heeft dit een andere reden (b.v. code niet op de goede plek geplaatst).

Iedereen alvast bedankt voor alle reacties.
 
Je oorspronkelijk vraag nog eens lezend, vroeg alleen om in de juiste map je pdf op te staan, immers je vertelt dat je een werkende code hebt.

Aannemende dat [a27] een volledige mapnaam is dan:
Code:
ChDrive [a27]
ChDir [a27]
voor je print opdracht plaatsen. Dat wil wel eens helpen.
 
Laatst bewerkt:
Foutcode 438

Beste Emil S.

bedankt voor je reactie, maar ook met jouw code wordt onderstaande code geel.

Uiteraard toch bedankt voor je bijdage.

Code:
Sheets("Faktuur").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Pad & BestandsNaam, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

Foutcode 438 "deze eigenschap of methode wordt niet ondersteund door dit object"
 
In oorspronkelijke code gebruikte je de print opdracht. Daar zou mijn voorstel kunnen werken.
Via de opdracht export gaat het niet lukken met Excelversies < 2007.
 
Beste Emil S.

Samenvatting
Thuis gebruik ik office 2007 => hier werkt het dus wel

op het werk wordt office < 2007 gebruikt => hier werkte de export oplossing dus niet.

Bedankt voor deze bevindingen.

Nu kan ik je opmerking met Chdir en chdrive ook beter begrijpen.

het gaat nog niet helemaal zoals ik wil (pdf worden niet meer geopend).

maar hier moet ik eerst zelf nog mee aan het stoeien.

wordt vervolgt

Perfecte opmerkingen en uiteraard bedankt :thumb::thumb:
 
Oeldere,

Graag gedaan.

En het zelf oplossen van een probleem geeft grote voldoening.

Voor het openen van een pdf via Excel heb ik een oplossing gemaakt en zoals gezegd maakte dat mijn dag helemaal goed.

Om je toepassing voor meer dan een versie geschikt te maken, kijk eens naar de instructie #if .. then .. #else.
 
VBA pdf opslaan - zonder bevestiging -

Via onderstaande code worden bestanden met naam ook als pdf opgeslagen.
Met dank voor alle forumleden werkt deze manier ook.

met het opslaan van de pdf (oranje tekst) moet nog wel handmatig de file worden opgeslagen (moet op save klikken).
met welke code is dit te automatisern (dat dit automatisch gaat?



Code:
Sub Opslaan()
Range("b14").Value = Range("b14").Value + 1

With Sheets("Invulblad")
ActiveWorkbook.SaveAs Filename:= _
.[a75] & .[C14] & "-" & Format(.[B14], "000") & " " & .[B53] & ".xls"

End With
'
' PDFprinten Macro
' De macro is gemaakt op 05-03-2010 door BEKEND.
[COLOR="darkorange"]ChDrive [a75]
ChDir [a75]
With Sheets("faktuur").Select
Application.ActivePrinter = "CutePDF Writer op CPW2:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "CutePDF Writer op CPW2:", Collate:=True[/COLOR]
End With

With Sheets("invulblad").Select
    ActiveWindow.SmallScroll Down:=-12
    Range("A1").Select
End With

ActiveSheet.Range("b3:b9").ClearContents
ActiveSheet.Range("d4:j7").ClearContents
Range("b51:j51").Value = "=1"

Application.DisplayAlerts = False

With Sheets("Invulblad")
ActiveWorkbook.SaveAs Filename:= _
.[a76] & .[a1] & ".xls"
End With

Application.DisplayAlerts = True
End Sub
 
zie ook post 16.

Via onderstaande code worden bestanden met naam ook als pdf opgeslagen.
Met dank voor alle forumleden werkt deze manier ook.

met het opslaan van de pdf (oranje tekst) moet nog wel handmatig de file worden opgeslagen (moet op save klikken).
met welke code is dit te automatisern (dat dit automatisch gaat?heeft iemand nog een idee

]wil de vraag graag afsluiten.

alvast bedankt.
 
Laatst bewerkt:
Probeer dat eens met SendKeys, even in de help kijken naar de syntaxis
 
Code:
With Sheets("faktuur").Select
    Application.ActivePrinter = "CutePDF Writer op CPW2:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "CutePDF Writer op CPW2:", Collate:=True
        'SendKeys.send ("{ENTER}")
Application.SendKeys.send("{ENTER}")
End With

ik heb het met beide mogelijkheden geprobeert, maar het is niet gelukt.
de 'heb ik bij het testen (uiteraard) weggelaten.

wat doe ik fout?
 
SendKeys "{ENTER}", True
is de juiste syntaxis.

Hoe kom je op:
'SendKeys.send ("{ENTER}")
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan