Sheet opslaan als PDF naar specifieke map afhankelijk van de cell waarde

Status
Niet open voor verdere reacties.

N1ckSch1lder

Gebruiker
Lid geworden
27 mrt 2017
Berichten
12
Beste lezer,

Ik ben vrij nieuw in de macro's maar ben door fora en youtube tutorials een heel eind gekomen.
Echter, nu zit ik vast bij de volgende situatie:

Ik heb een storingsoverzicht waar meldingen worden geregistreerd. Vanuit deze data wordt een werkbon automatisch ingevuld, waaronder een werkbonnummer.
Dit werkbonnummer is een samenvoeging van verschillende waardes --> Datum_Klant_Grootboeknummer_Opvolgnr., Doormiddel van de formule: C11 =CONCATENATE(A3&"_"&C3&"_"&E3&"_"&G3)
Deze werkbon kan ik opslaan als PDF in een specifieke map met als naam het werkbonnummer (Cell C11).

Nu wil ik dat de PDF wordt opgeslagen in een map afhankelijk van de klant die is ingevuld.
Op dit moment wordt de PDF opgeslagen op de desktop, zie onderstaande code:

Sub SavePDF()
'Save as PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\Users\Nick\Desktop" & _
ActiveSheet.Range("A18").Value & _
Worksheets("Overzicht").Range("C11").Value & ".pdf", _
OpenAfterPublish:=True
End Sub

Ik hoop dat iemand mij hier mee kan helpen!
Met vriendelijke groet,
Nick
 
Dat kan je dan toch gewoon, net zoals de naam van het bestand, in het pad opnemen?
 
Waarom gebruik je een functie als je die functie vervolgens niet gebruikt?
Code:
C11=CONCATENATE(A3;"_";C3;"_";G3;"_";I3) 
C11= A3&"_"&C3&"_"&E3&"_"&G3
Jij gebruikt een overbodige funtie op jouw manier.
Je vraag is verder niet helemaal duidelijk, want waar staat die klantmap? Bestaat die al of moet die eerst worden aangemaakt?
 
Heren,

Mijn excuses als ik niet helemaal duidelijk ben geweest.

@edmoor: Als ik dit in het pad opneem, dan zal de volgende melding die ingevuld word met misschien een andere klantnaam, automatisch in de map worden opgeslagen die ik in de code heb opgenomen.

@OctaFish: Concatenate is verwijderd uit de formule, mijn excuses, was overgenomen uit een andere map. De klantmappen bestaan al en staan op het bureaublad:
- Klant1
- Klant2
- Klant3

Wat mijn doel is:
Ik vul de data in, druk op de VBA save knop; is er in de data 'Klant1' verwerkt, dan wordt de sheet in map Klant1 opgeslagen, is er in de data 'Klant2' verwerkt, dan wordt de sheet in map Klant2 opgeslagen.

Ik hoop dat dit zorgt voor meer duidelijkheid.

Mvg,
Nick
 
Laatst bewerkt:
Als je de klantnaam automatisch wilt inlezen, moet die ergens te vinden zijn. Waar komt de naam vandaan? Uit een cel, tabbladnaam, bestandsnaam...
 
@ OctaFish: Klantnaam staat zowel in een cell op de sheet van het totale overzicht, in een cell die het werkbonnummer vormt (sheet: totale overzicht), als op de werkbon (sheet: werkbon).
 
Laatst bewerkt:
Als ik je eerste bericht goed heb gelezen, dan staat de klantnaam in C3. Krijg je zoiets:
Code:
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        FileName:=CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\" & ActiveSheet.Range("C3").Value & "\" _
        & ActiveSheet.Range("A18").Value & Worksheets("Overzicht").Range("C11").Value & ".pdf", _
        OpenAfterPublish:=True

In beginsel is het dus gewoon de juiste cel aan het basispad toevoegen.
 
@OctaFish

Uiteindelijk een vrij simpele oplossing! Bedankt voor de informatie, het werkt!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan