gewoon_marvin
Gebruiker
- Lid geworden
- 7 jun 2005
- Berichten
- 10
Goedendag,
Ik ben op zoek naar een VBA mogelijkheid om met één druk op de knop bepaalde bladen uit een Excel werkmap te exporteren naar PDF. Het probleem waar ik tegenaan loop is dat de map waar dit document dient te worden opgeslagen varieert per klant, en de mappenstructuur zo is ingericht dat eerst (een deel van) de klantnaam is verwerkt en vervolgens een spatie, een koppelstreepje (-), nog een spatie en dan een uniek klantnummer. De klantnaam kan uit 1 t/m 3 woorden bestaan mocht dit relevant zijn. Ook staan alle mappen op één schijf (Z).
Ik heb een werkende VBA code voor het printgedeelte (al is deze ook nog niet optimaal):
Mijn vraag is dus: Hoe krijg ik het voor elkaar dat het geëxporteerde bestand in de juiste map wordt opgeslagen, op basis van het unieke klantnummer?
Op dit mooie forum kwam ik dit (oude) topic tegen: https://www.helpmij.nl/forum/showthread.php/699527-Specifieke-folder-openen-in-explorer-via-VBA. Mijn kennis reikt echter niet zover dat ik deze code begrijp, maar hieruit kan ik wel afleiden dat het mogelijk zou moeten zijn om op basis van het unieke klantnummer de juiste map op te laten zoeken door de macro.
Met vriendelijke groet!
Ik ben op zoek naar een VBA mogelijkheid om met één druk op de knop bepaalde bladen uit een Excel werkmap te exporteren naar PDF. Het probleem waar ik tegenaan loop is dat de map waar dit document dient te worden opgeslagen varieert per klant, en de mappenstructuur zo is ingericht dat eerst (een deel van) de klantnaam is verwerkt en vervolgens een spatie, een koppelstreepje (-), nog een spatie en dan een uniek klantnummer. De klantnaam kan uit 1 t/m 3 woorden bestaan mocht dit relevant zijn. Ook staan alle mappen op één schijf (Z).
Ik heb een werkende VBA code voor het printgedeelte (al is deze ook nog niet optimaal):
Code:
Sub Print_test()
'
' Print_test Macro
'
'
Dim Klantnr As String
Dim Jaar As String
Dim Periode As String
Klantnr = ActiveSheet.Range("C1").Value ' De macro haalt met dit command het klantnummer op in het werkblad Start, om deze later als naam voor het PDF-bestand te gebruiken.
Jaar = ActiveSheet.Range("B2").Value ' De macro haalt het jaar op uit werkblad Start
Periode = ActiveSheet.Range("D3").Value ' De macro haalt de periode op uit werkblad Start
If Dir("Z:\KLANTNAAM - 1000044\" & Jaar & "\WERK\" & "BTW " & Klantnr & "-" & Jaar & "-" & Periode & " Aansluiting " & Periode & " " & Jaar & ".pdf") <> "" Then
MsgBox "Het bestand: " & "BTW " & Klantnr & "-" & Jaar & "-" & Periode & " Aansluiting " & Periode & " " & Jaar & ".pdf bestaat reeds" ' Een controle om geen dubbel PDF-bestand te maken.
' De map waarin je de PDF-bestanden in wilt creëeren moet op voorhand aangemaakt zijn!!
Exit Sub 'Verlaat de routine als het PDF-bestand reeds bestaat.
Else
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="Z:\KLANTNAAM - 1000044\" & Jaar & "\WERK\" & "BTW " & Klantnr & "-" & Jaar & "-" & Periode & " Aansluiting " & Periode & " " & Jaar & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, From:=1, To:=4, OpenAfterPublish:=True
End If
End Sub
Mijn vraag is dus: Hoe krijg ik het voor elkaar dat het geëxporteerde bestand in de juiste map wordt opgeslagen, op basis van het unieke klantnummer?
Op dit mooie forum kwam ik dit (oude) topic tegen: https://www.helpmij.nl/forum/showthread.php/699527-Specifieke-folder-openen-in-explorer-via-VBA. Mijn kennis reikt echter niet zover dat ik deze code begrijp, maar hieruit kan ik wel afleiden dat het mogelijk zou moeten zijn om op basis van het unieke klantnummer de juiste map op te laten zoeken door de macro.
Met vriendelijke groet!