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

Macro: excel opslaan met naam van een cel uit een andere sheet

Status
Niet open voor verdere reacties.

Wezenspyk

Gebruiker
Lid geworden
2 apr 2016
Berichten
28
Goedemiddag,

graag zou ik met een macro een excelsheet als een PDF willen opslaan. Zie het voorbeeld.

Ik wil graag 'Blad2' als PDF opslaan, met als naam de waarde van cel E7 van 'Blad1', gevolgd door het woord Kasboek. ( in het voorbeeld dus: 9-5-2016 - Kasboek)

Bekijk bijlage Excel opslaan als PDF.xlsx

Kan iemand mij hiermee helpen?

Alvast bedankt!

Groet
 
Dat is al zo vaak aan de orde geweest dat je daarover alle informatie kan vinden via het zoekveld rechts bovenin.
Dit is er 1 van:
www.helpmij.nl/forum/showthread.php/757656-Elk-werkblad-afzonderlijk-opslaan-in-PDF

Mocht het niet lukken dan kan je er hier uiteraard vragen over stellen.

Uiteraard heb ik eerst uitgebreid gezocht naar een soortgelijk probleem, maar kan deze niet 1 2 3 vinden. Er zijn inderdaad veel vragen geweest omtrent het opslaan van excel naar PDF via een macro. Het lukt mij echter niet om het voor elkaar te krijgen. Opslaan lukt wel redelijk door de actie uit te voeren en op te nemen, maar ik wil graag dat deze opgeslagen wordt onder een naam die in een cel staat in een andere Sheet. Dit ben ik nog niet eerder tegengekomen.

Alvast dank voorde moeite
 
In de code van Warme bakkertje staat o.a.:
Code:
        fName = "C:\Project\" & .Range("A1") & "\Uitslagen\" & .Range("B1")

Dit doet wat jij wilt, maar dan met de naam in cel B1 ipv E7

Daarna wordt fname gebruikt bij het exporteren naar PDF
 
In de code van Warme bakkertje staat o.a.:
Code:
        fName = "C:\Project\" & .Range("A1") & "\Uitslagen\" & .Range("B1")

Dit doet wat jij wilt, maar dan met de naam in cel B1 ipv E7

Daarna wordt fname gebruikt bij het exporteren naar PDF

Dank voor je antwoord. Ik snap het echt nog niet helemaal. Is 'uitslagen' de betreffende map?
 
zo te zien wel....
 
Klopt, en die .Range("A1") ook, die kan je dus weglaten. Van .Range("B1") maak je dan Sheets("Blad1").Range("B1") om cel B1 van het juiste blad te gebruiken.
 
Klopt, en die .Range("A1") ook, die kan je dus weglaten. Van .Range("B1") maak je dan Sheets("Blad1").Range("B1") om cel B1 van het juiste blad te gebruiken.

Het ligt wellicht aan mij, maar krijg de ene foutmelding na de andere. De VBA die ik nu heb is :

Code:
Sub TESTPDFopslaan()
'
' TESTPDFopslaan Macro
'

'
    ChDir "C:\Users\PC\Desktop"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\PC\Desktop\" & Sheets("Opmaak").Range("Q13").pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
End Sub

In cel Q13 van de sheet Opmaak staat dus de naam die de PDF moet krijgen die moet worden opgebouwd van een andere Sheet (in dit geval de sheet met de naam: 'Totaal')
 
Oh trouwens, het woord 'kasboek' moet ook nog toegevoegd worden achter of voor de waarde die dan in Q13 staat..
 
Obv van het voorbeeldbestandje in #1 en om de PDF op het bureaublad te plaatsen.

Code:
Sub VenA()
  Sheets(2).ExportAsFixedFormat 0, CreateObject("WScript.Shell").specialfolders(Desktop) & "\" & Format(Sheets(1).[E7], "dd-mm-yyyy") & " - Kasboek.pdf"
End Sub
 
En dan mag je (Dektop) nog verruilen voor (4).
Ik weet nl. niet of bureaublad in een Windows versie ook met (Desktop) gaat.
 
Obv van het voorbeeldbestandje in #1 en om de PDF op het bureaublad te plaatsen.

Code:
Sub VenA()
  Sheets(2).ExportAsFixedFormat 0, CreateObject("WScript.Shell").specialfolders(Desktop) & "\" & Format(Sheets(1).[E7], "dd-mm-yyyy") & " - Kasboek.pdf"
End Sub

Jaa helemaal zoals ik het wil hebben! Helemaal top!!

Thanks.

Oh trouwens, Desktop moest idd door 4 vervangen worden! Wat als ik hem ergens anders wil opslaan? dus een andere locatie dan de desktop...?
 
Als je Desktop geen Desktop heet maar "Bureaublad" in sommige Windows versies.
Zoals je kunt lezen werkt (Desktop) bij Ts niet en moet (4) gebruiken.

Waar ik het vandaan haal?; ach, ik hang hier al wat langer rond. :D
 
Laatst bewerkt:
Op de vraag van 22:11 uur.
Bv.
Code:
Sheets(2).ExportAsFixedFormat 0, [COLOR=#ff0000]"C:\users\wezenspyk\documents\map1\"[/COLOR] & Format(Sheets(1).[E7], "dd-mm-yyyy") & " - Kasboek.pdf"
 
@VenA:

Code:
 1 - C:\ProgramData\Microsoft\Windows\Start Menu
 2 - C:\ProgramData\Microsoft\Windows\Start Menu\Programs
 3 - C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
 4 - C:\Users\Ed\Desktop
 5 - C:\Users\Ed\AppData\Roaming
 6 - C:\Users\Ed\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
 7 - C:\Users\Ed\AppData\Roaming\Microsoft\Windows\Templates
 8 - C:\Windows\Fonts
 9 - C:\Users\Ed\AppData\Roaming\Microsoft\Windows\Network Shortcuts
10 - C:\Users\Ed\Desktop
11 - C:\Users\Ed\AppData\Roaming\Microsoft\Windows\Start Menu
12 - C:\Users\Ed\AppData\Roaming\Microsoft\Windows\SendTo
13 - C:\Users\Ed\AppData\Roaming\Microsoft\Windows\Recent
14 - C:\Users\Ed\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
15 - C:\Users\Ed\Favorites
16 - C:\Users\Ed\Documents
17 - C:\Users\Ed\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
 
@edmoor,
Natuurlijk een :thumb:

hoewel off toptic.
Het pad opvragen is geen probleem. Maar het opvragen van het 'nummer' lijkt mij niet te lukken.

Code:
Sub VenA()
For Each it In CreateObject("WScript.Shell").specialfolders
    c00 = c00 & it & Chr(10)
Next it
MsgBox c00
End Sub

It zou iets van it.index of it. ..... specialfolders nummer moeten krijgen. ALs je het antwoord weet, dan is dat mooi, anders zit ik in een andermans draadje vragen te stellen, wat waarschijnlijk ook niet geheel de bedoeling is.
 
Je kan het indexnummer niet opvragen maar die zijn gelijk aan wat ik liet zien. De namen die je ervoor kan gebruiken zijn gelijk aan de tekst na het laatste \-teken.
 
Je kan het indexnummer niet opvragen maar die zijn gelijk aan wat ik liet zien. De namen die je ervoor kan gebruiken zijn gelijk aan de tekst na het laatste \-teken.

Dus als ik het goed begrijp, kan ik een map aanmaken die ik bijvoorbeeld 'kasboek 2016-2017' noem. Deze komt dan op locatie XX - C:\Users\Wezenspyk\Desktop\Kasboek 2016-2017 te staan.

In plaats van de laatst ingevulde 4, kan ik dan Kasboek 2016-2017 invullen?
 
Nee, die 4 is ervoor om aan te geven dat de map Desktop moet worden gebruikt.
In plaats van 4 mag je dus ook "Desktop" gebruiken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan