• 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.

opslaan als pdf

  • Onderwerp starter Onderwerp starter mbn
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

mbn

Gebruiker
Lid geworden
20 mrt 2007
Berichten
62
Ik heb een bestand waarbij via een macro een printblad wordt afgedrukt. \nu maken we nog altijd 2 afdrukken om 1 te bewaren. Dit geeft onnodig veel klappers vol papier. Ik wil graag de copie als pdf in een dir "kopie werkbon" opslaan.
Hoe kan ik dit in vba code krijgen dat hij de eerste afdruk op de printer maakt en de 2e als pdf opslaat in de juiste dir.

Gr Andre
 
Zoiets,

Code:
Sub PRINT()
    Application.ActivePrinter = "HP Color LaserJet op Ne03:"
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1
    Application.ActivePrinter = "CutePDF Writer op CPW2:"
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1
End Sub
 
Zoiets,

Code:
Sub PRINT()
    Application.ActivePrinter = "HP Color LaserJet op Ne03:"
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1
    Application.ActivePrinter = "CutePDF Writer op CPW2:"
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1
End Sub


Ja zou kunnen maar hoe slaat hem dan nu automatisch op in de dir "kopie werkbon" als pdf.
De bon moet dan de naam hebben die in cel a1 staat. (bv 62523.pdf)
 
Je kunt ook een programma als primopdf installeren.

Dit installeert een "printer" Alles wat je daarnaartoe afdrukt, wordt als PDF opgeslagen.

Dan kan je gewoon denk ik veel makkelijker dat type document printen naar een printer en naar de primopdf printer. Dan heb je gelijk een pdf.
 
Je kunt ook een programma als primopdf installeren.

Dit installeert een "printer" Alles wat je daarnaartoe afdrukt, wordt als PDF opgeslagen.

Dan kan je gewoon denk ik veel makkelijker dat type document printen naar een printer en naar de primopdf printer. Dan heb je gelijk een pdf.

Ja snap ik dat kan acrobat ook. Het probleem blijft volgens mij dan nog dat hij een document opent en jij hem zelf een naam moet geven en sluiten.
Dit moet niet want ik print soms wel 50 documenten per dag en dat kost dan veel tijd en kans op fouten. Hij moet dus kijken naar de naam in cel A1 en dan automatisch opslaan onder die naam zonder te openen.
 
Dan kan je gewoon denk ik veel makkelijker dat type document printen naar een printer en naar de primopdf printer. Dan heb je gelijk een pdf.

Klopt, maar je hebt nog de locatie en naam van de PDF die juist moeten zijn.

Mbn, bekijk eens de Name ... As ... mogelijkheid in VBA.

Wigi
 
Klopt, maar je hebt nog de locatie en naam van de PDF die juist moeten zijn.

Mbn, bekijk eens de Name ... As ... mogelijkheid in VBA.

Wigi

van primopdf is er een enterprise uitvoering (niet gratis meer natuurlijk)

NEW: Zero interface option enabling seamless conversion to PDF.

zonder interface -> volgens mij geautomatiseerd omzetten naar PDF dus toch mogelijk.

tevens is er ook de API beschikbaar

A user-friendly developer component, PrimoPDF API permits programmatic access to all PrimoPDF settings enabling developers to print to PDF from virtually any application programmatically.
 
On-topic:

Misschien is deze link nuttig.

Wigi


Ik realiseer nu dat ik het veel te moeilijk maak, het hoeft geen pdf te zijn. Ik kan beter werkblad genaamd printblad opslaan als exel document.
Hoe moet dit dan? Mijn bestand heet werkorders en het op te slaan werkblad heet printblad. In A1 staat een uniek nummer dat telkens verschilt. Onder dit nummer wil ik het blad dus opslaan in de dir C:\ kopie werkorder\ (Het bestand heet dan bv 62525.xls)
 
Als je hier op forum zoekt op Saveas in Excel subforum dan is dit al de derde link:

http://www.helpmij.nl/forum/showthread.php?t=298006

Wigi


Mag ik je nog even lastig vallen.

Ik heb diverse dingen geprobeerd. Huidige macro is alsvolgt

Sub opslaanwerkbonnen()
Dim CelMetNaam As String
Application.DisplayAlerts = False
CelMetNaam = ActiveSheet.Range("C2").Value
ActiveSheet.SaveCopyAs Filename:="C:\Documents and Settings\All Users\Documenten\kopie werkbonnen\" & CelMetNaam
Application.DisplayAlerts = True
End Sub

Hij geeft hierbij een fout op ActiveSheet.SaveCopyAs .
Ik wil dus alleen de die sheet opslaan en niet het gehele werkboek. Kan dat?

Gr Andre
 
Ik heb de code herschreven.

Bij mij werkt dit:

Code:
Sub opslaanwerkbonnen()
    Dim sBestandsnaam As String
    
    Application.ScreenUpdating = False
    
    With ActiveSheet
        sBestandsnaam = .Range("C2").Value
        .Copy
    End With
    
    With ActiveWorkbook
        .SaveAs "C:\" & sBestandsnaam
        .Close
    End With
    
    Application.ScreenUpdating = True
End Sub

Wigi
 
Gebruik ook eens code tags aub als je code hier neerzet. Gewoon die code selecteren en op het # teken klikken.
 
Werkt goed! Ben er erg blij mee. Nog een klein vraagje. Er zitten wat delen op het werkblad die ik liever niet mee opsla. Eigenlijk moeten alleen cellen A1 t/m C30 opgeslagen worden. Is dat ook mogelijk?

Alvast bedankt

gr Andre
 
Werkt goed! Ben er erg blij mee. Nog een klein vraagje. Er zitten wat delen op het werkblad die ik liever niet mee opsla. Eigenlijk moeten alleen cellen A1 t/m C30 opgeslagen worden. Is dat ook mogelijk?

Alvast bedankt

gr Andre

Andre, hoeveel keer gaat de vraagstelling nog veranderen?

En als het dan nog kleine veranderingen zijn, die schrijf ik normaal gezien zo. Maar eerst een bestand als PDF opslaan, dan een werkblad opslaan, dan een cellenbereik kopiëren, tja. Wat is het volgende?

Wigi
 
Andre, hoeveel keer gaat de vraagstelling nog veranderen?

En als het dan nog kleine veranderingen zijn, die schrijf ik normaal gezien zo. Maar eerst een bestand als PDF opslaan, dan een werkblad opslaan, dan een cellenbereik kopiëren, tja. Wat is het volgende?

Wigi

Oh sorry, was niet de bedoeling. PDF was veel te moeilijk gebleken. Veel programma's bekeken maar niets dat echt goed werkte, vandaar....
 
Vooruit maar weer.

Code:
Sub opslaanwerkbonnen()
    
    Dim sBestandsnaam As String
    Dim wkbNieuw As Workbook
    Dim wksOorspronk As Worksheet
    
    Application.ScreenUpdating = False
    
    Set wksOorspronk = ActiveSheet
    
    Set wkbNieuw = Workbooks.Add
    
    With wksOorspronk
        sBestandsnaam = .Range("C2").Value
        .Range("A1:C30").Copy wkbNieuw.Sheets(1).Cells(1)
    End With
    
    With wkbNieuw
        .SaveAs "C:\" & sBestandsnaam
        .Close
    End With
    
    Application.ScreenUpdating = True
End Sub

Wigi
 
Werkt als een speer.
Hartelijk dank daarvoor!

Gr Andre
 
Geachte,

ik ben al een hele tijd ook aan het proberen om een excel pagina op te slaan als pdf, maar dit alles moet ook nog via een afbeelding of een het woord "opslaan"
hoe kan ik excel dit automatisch laten doen ? en dan moet ook de naam voor het opslaan gebruikt worden uit cel "G3"
ik heb hier boven alles gelezen maar ik kom er helaas niet wijs uit.

wij kan me helpen ?

BVD Bearke
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan