Help!

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

Hulp bij posten

Recente topics

Auteur Topic: Macro: Worksheet opslaan als PDF, met nummer en datum van een cel  (gelezen 32674 keer)

0 leden en 1 gast bekijken dit topic.

Offline Speedy Kepke

  • Lid
  • *
  • Berichten: 45
  • Geslacht: Vrouw
  • Oplossing.be
Hoi,
ik heb reeds volgende macro, dewelke perfect werkt
echter wil ik ook dat het factuurnummer (positie cel G16) en de datum (positie cel G17) eveneens overgenomen wordt bij het opslaan.
Kan er iemand mij hierin helpen aub - alvast bedankt op voorhand voor de gedane moeite!

Sub Opslaan_Als_PDF()
    Dim vFilename As Variant
    Dim sPath As String
    strFileName = Range("F7").Value
    strFileName = Application.GetSaveAsFilename(InitialFileName:=strPath & strFileName, _
                                         FileFilter:="PDF Files, *.pdf")
If TypeName(strFileName) = "Boolean" Then Exit Sub
    If strFileName = "" Then Exit Sub
    sPath = "C:\users\Documenten\"
   
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strFileName, _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=True
End Sub

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro: Worksheet opslaan als PDF, met nummer en datum van een cel
« Reactie #1 Gepost op: 29 mei 2015, 23:16:17 »
Hallo Speedy,

Welkom op Oplossing.be.

Wat staat er op F7 ?

Een voorbeeldbestandje bijvoegen maakt het ons meestal veel gemakkelijker om te volgen.

Bij mijn boekhoudprogramma heb ik heel eenvoudige code gebruikt, een macro gekoppeld aan een knop:

Sub Mail()
    Dim FacName As String, Jaar As String, klantnaam As String
     Jaar = ("2015-")
    FacName = ActiveSheet.Range("K12") ' waar het factuurnummer staat
    klantnaam = ActiveSheet.Range("K13") ' waar de klantnaam staat
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
     "C:\users\Documenten\Facturen\" & Jaar & FacName & ".pdf" ' hier kan je tussen & en & nog variabelen toevoegen die je uit het werkblad haalt (je kan ze aan een variabele toewijzen als bvb: klantnaam =  ActiveSheet.Range("K14"), dan bekom je: )
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
     "C:\users\Documenten\Facturen\"&klantnaam &_& Jaar&_ &"Fac"& FacName & ".pdf"

Dan heet je PDF bestand:  klantnaam_2015_Fac_513.pdf

Zo kan je van alles combineren uit je werkblad.
Helpt dit?

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
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 Speedy Kepke

  • Lid
  • *
  • Berichten: 45
  • Geslacht: Vrouw
  • Oplossing.be
Re: Macro: Worksheet opslaan als PDF, met nummer en datum van een cel
« Reactie #2 Gepost op: 30 mei 2015, 08:02:12 »
BEDANKT SoftAid
die F7 is de positie waar de naam staat van de klant
ik probeer dit eens op jouw manier
en hou je zeker op de hoogte omtrent mijn bevindingen
stuur je dan ook een voorbeeldbestandje wel door hoor
nog een fijne dag verder!
 :) Speedy  ;)

Offline Speedy Kepke

  • Lid
  • *
  • Berichten: 45
  • Geslacht: Vrouw
  • Oplossing.be
Re: Macro: Worksheet opslaan als PDF, met nummer en datum van een cel
« Reactie #3 Gepost op: 30 mei 2015, 18:11:54 »
Hoi SoftAid,
in bijlage een voorbeeldfile met de macro waar ik thans mee werk
deze van jou eens geprobeerd, doch ik sukkel hiermee.
Mogelijks aan mijn voorbeeldfile zal je kunnen zien hoe alles thans werkt.
De werking op zichzelf vind ik prima, uitgezonderd dat ik het nummer & datum van de factuur er eveneens bij wens, wanneer het bestand wordt opgeslagen.
FacName = ActiveSheet.Range("G16") '
Datum = ActiveSheet.Range("G17") '

aangaande de naam klant, staat er nu bij mij: strFileName = Range("F7").Value.
Om het PDF-bestand - na opmaak - onmiddellijk te versturen per mail via de macro is niet nodig, gezien er niet gewerkt wordt noch met Outlook noch met Windows Mail, echter wel met Gmail dewelke niet kan toegepast worden.

Ik vind het belangrijk dat - na hét opslaan van de factuur als een PDF-bestand - Adobe Reader geopend wordt: OpenAfterPublish:=True.
Alvast hartelijk dank op voorhand voor je hulp.
Doei Speedy
 :)



Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro: Worksheet opslaan als PDF, met nummer en datum van een cel
« Reactie #4 Gepost op: 30 mei 2015, 19:28:51 »
Hallo Speedy,

je kan variabelen bijmaken voor FactuurNummer (FacNr=Range...) en voor FactuurDatum(FacDatum=Range...) en deze variabelen invoegen in de lijn:
strFileName = Application.GetSaveAsFilename(InitialFileName:=strPath & strFileName, FileFilter:="PDF Files, *.pdf")Dan bekom je deze code:
Sub Opslaan_Als_PDF()
    Dim vFilename As Variant, sPath As String, FacNr As String, FacDatum As string
       
    FacNr = Range("G16").Value
    FacDatum = Range("G17").Value
   
    strFileName = Range("F7").Value
    strFileName = Application.GetSaveAsFilename(InitialFileName:=strPath & strFileName & "_" & FacNr & "_" & FacDatum, _
                                         FileFilter:="PDF Files, *.pdf")
If TypeName(strFileName) = "Boolean" Then Exit Sub
    If strFileName = "" Then Exit Sub
    sPath = "C:\users\Documenten\"
   
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strFileName, _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=True
End Sub
.... die je als resultaat  "C:\users\Documenten\Van Der Eecken Eddy_15003_3/05/2015.pdf" als bestandsnaam voor je PDF-bestand oplevert.

Je kan hier nog zoveel variëren als je wilt, zolang je variabelen NIET tussen " " zet, en tekst WEL tussen " ".

:) SoftAid :)             

Maximum grootte bijlagen vergroot naar 4 MB
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 Speedy Kepke

  • Lid
  • *
  • Berichten: 45
  • Geslacht: Vrouw
  • Oplossing.be
Re: Macro: Worksheet opslaan als PDF, met nummer en datum van een cel
« Reactie #5 Gepost op: 01 juni 2015, 08:48:31 »
SUPER, hét werkt
bedankt SoftAid
echter treedt er een mankement op, nl, de datum in de factuur wordt als volgt vermeld, bv 01/06/2015
en dat '/' teken aanvaard het systeem niet
op welke manier kan dit omzeild worden?

Bij het opslaan kan ik wel die '/' veranderen naar '-', doch dit lijkt mij ietwade omslachtig,
oftewel dien ik de datum in gans de file facturen te wijzigen naar, bv 01-06-15.
Heb dit eens gedaan ---> de datum gewijzigd naar 01-06-2015, doch bij het opslaan wordt de datum als 01/06/2015 behouden
zie bijlage
hoogst waarschijnlijk doe ik iets verkeerd, echter zie ik niet 'wat'.
Mogelijks weet jij de oplossing.
Een hele dikke merci op voorhand voor je inzit!
Toedeloe Speedy
 :)

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Macro: Worksheet opslaan als PDF, met nummer en datum van een cel
« Reactie #6 Gepost op: 01 juni 2015, 13:03:47 »
Hey Speedy,

Je code heb je waarschijnlijk van ergens gekopieerd (waar op zich niets fout mee is  ;) ), maar daar diende ze toch voor net iets anders dan wat jij wil. Vermits je precies weet wat je waar wil opslaan zou ik dit weglaten :
strFileName = Application.GetSaveAsFilename(InitialFileName:=strPath & strFileName & "_" & FacNr & "_" & FacDatum, FileFilter:="PDF Files, *.pdf")
If TypeName(strFileName) = "Boolean" Then Exit Sub

 
De datumnotatie kan je oplossen door
FacDatum = Range("G17").Value
te vervangen door
FacDatum = WorksheetFunction.Text(Range("G17"), "dd-mm-yyyy")

Dan moet nog enkel het pad worden toegevoegd :
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & strFileName,
 
Probeer je eens ?
 
Mvg,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Speedy Kepke

  • Lid
  • *
  • Berichten: 45
  • Geslacht: Vrouw
  • Oplossing.be
Re: Macro: Worksheet opslaan als PDF, met nummer en datum van een cel
« Reactie #7 Gepost op: 01 juni 2015, 15:47:37 »
je hulp werkt perfect SoftAid, waarvoor dank of course
echter ben ik thans geconfronteerd met een nieuw probleem, nl:

* ik heb in mijn Voorbeeldfile1, de macro aangepast zoals door jou thans opgegeven
deze werkt naar behoren - zie bijlage 1: Bewerking Voorbeeldfile1

* echter wanneer ik die goed werkende macro wil toepassen in de originele file der facturen
neemt deze geen enkele gegevens over - zie bijlage 2: Bewerking1 Originele file facturen

* als ik de oude macro laat lopen (deze waar enkel de naam van de klant wordt overgenomen) in de originele file der facturen
werkt deze wel - zie bijlage 2: Bewerking2 Originele file facturen


ik begrijp er echt geen snars meer van
wat loopt er juist fout of wat doe ik verkeerd?
doei - Speedy

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Macro: Worksheet opslaan als PDF, met nummer en datum van een cel
« Reactie #8 Gepost op: 01 juni 2015, 16:33:05 »
ik heb in mijn Voorbeeldfile1, de macro aangepast zoals door jou thans opgegeven

...opgegeven door SoftAid ? of door bibi ?  :D
 
Als je AL mijn adviezen samen (want zo zijn ze bedoeld) had meegenomen naar je originele file (aan je bijlagen is te zien dat je dat niet hebt gedaan) zou dat echt wel moeten werken.
 
Doe je misschien nog een poging ? Anders mag je altijd nog eens de volledige code sturen zoals ze nu in dat originele document zit.
 


 
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Speedy Kepke

  • Lid
  • *
  • Berichten: 45
  • Geslacht: Vrouw
  • Oplossing.be
Re: Macro: Worksheet opslaan als PDF, met nummer en datum van een cel
« Reactie #9 Gepost op: 01 juni 2015, 17:01:56 »
oesje, ik heb mij schromelijk vergist in naam  :-[
doch geen erg hé Pitufo, 't is hét mij vergeven!

ik weet al een beteke waar in feite het schoentje wringt
de voorbeeldfile heb ik zelf opgemaakt
de originele file facturen door mijn vriend
en daar ligt het probleem, als hij van een bepaalde klant een nieuwe factuur dient te maken, maakt hij van de vorige factuur een kopie,
and of course krijgt hij dan na een zekere tijd een foutmelding - zie bijlage.
want hij maakt altijd kopie van kopie van kopie..... en da's vast niet OK hé.
Wanneer ik in de originele file facturen de macro toepast volgens de oude manier = enkel de naam klant wordt overgenomen - zie bijlage textbestand Opslaan als PDF,
dan werkt dit volkomen.
De vraag is tevens nu: hoe kan de foutmelding: U wilt een formule of bestand verplaatsen of kopiëren met daarin de naam halo, die al bestaat op het bestemmingswerkblad wegkrijgen, of gaat dit niet?

In bijlage stuur ik hier nogmaals mijn voorbeeldfile door, met daarin de verbeterde macro,
echter heb ik wel hét volgende niet weggelaten, niettegenstaande werkt de macro perfect:

strFileName = Application.GetSaveAsFilename(InitialFileName:=strPath & strFileName & "_" & FacNr & "_" & FacDatum, FileFilter:="PDF Files, *.pdf")
If TypeName(strFileName) = "Boolean" Then Exit Sub


Misschien kan jij deze macro eens op punt stellen met jouw weglatingen
zou dit enorm op prijs stellen
ALVAST STRAF WEL BEDANKT pitufo
doei Speedy

 


Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Macro: Worksheet opslaan als PDF, met nummer en datum van een cel
« Reactie #10 Gepost op: 01 juni 2015, 18:49:22 »
Hoi Speedy,

Awel ja, het is je vergeven  :D :D :D

als hij van een bepaalde klant een nieuwe factuur dient te maken, maakt hij van de vorige factuur een kopie, and of course krijgt hij dan na een zekere tijd een foutmelding

...wat niet meer het geval zal zijn als factuurnummer en -datum aan de bestandsnaam worden toegevoegd   8)

want hij maakt altijd kopie van kopie van kopie..... en da's vast niet OK hé.

't is te zeggen... veel zou dat niet mogen uitmaken...

In het voorbeeldje hierbij heb ik effectief de "overbodige" code verwijderd, je zal vlug genoeg merken waarom  :-\

Heb trouwens zowel in de macro als op het voorbeeldwerkblad wat schoonheidsfoutjes aangepakt  ;)

Een mens zou zich verder kunnen afvragen waarom je voor elke factuur een nieuw werkblad toevoegt. Doe je daar, nadat het als pdf is opgeslagen, verder nog iets mee ? Anders zou het logischer zijn steeds hetzelfde werkblad te gebruiken.

Maar bekijk misschien alvast de werking van de macro al eens in zijn huidige vorm.
Nieuwsgierig naar je mening overigens  ;)

Groetjes,
Pitufo
 
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Speedy Kepke

  • Lid
  • *
  • Berichten: 45
  • Geslacht: Vrouw
  • Oplossing.be
Re: Macro: Worksheet opslaan als PDF, met nummer en datum van een cel
« Reactie #11 Gepost op: 01 juni 2015, 19:03:01 »
kiekeboe Pitufo
bedankt voor de gedane moeite
echter bij het uitvoeren van de macro krijg ik een foutmelding - zie bijlage
hoe dit te verhelpen

toitoitoi - Speedy

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro: Worksheet opslaan als PDF, met nummer en datum van een cel
« Reactie #12 Gepost op: 01 juni 2015, 19:20:14 »
Hallo Speedy,

in de lijn code ontbreekt volgens mij: & .PDF

Dus:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & strFilename, _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=True
zou moeten worden

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & strFilename & ".pdf", _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=True

Anders heb je geen geldige bestandsnaam.

:) SoftAid :)             

Maximum grootte bijlagen vergroot naar 4 MB
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 pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Macro: Worksheet opslaan als PDF, met nummer en datum van een cel
« Reactie #13 Gepost op: 01 juni 2015, 19:25:03 »
Hey Speedy,

De macro is gestopt op het ogenblik dat hij effectief de pdf wou opslaan, meer valt er uit je bijlage niet af te leiden.
't Is niet onwaarschijnlijk dat de locatie "C:\users\Documenten\" niet bestaat op je testsysteem. Ik had als commentaar in de macro al gezet dat je sPath misschien moet veranderen :
' hierna standaardlocatie voor opslaan eventueel aanpassen :
sPath = "C:\users\Documenten\"

Bekijk je dat even vooraleer we ons zorgen maken  ;)

Groetjes,
Pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Macro: Worksheet opslaan als PDF, met nummer en datum van een cel
« Reactie #14 Gepost op: 01 juni 2015, 19:35:30 »
Hallo SoftAid,

in de lijn code ontbreekt volgens mij: & .PDF

Volgens mij haalt hij dat automatisch uit "Type:=xlTypePDF".
Bij mij werkt dat althans, maar misschien niet in alle Office-versies ( :( )

Anderzijds, de extensie er bijzetten zal natuurlijk ook geen kwaad kunnen  ;)

Hoe dan ook komen we er met vereende krachten wel  0:-)
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

 


www.combell.com