Verschillende sheets opslaan in PDF mbv VBA

Status
Niet open voor verdere reacties.
Graag gedaan :)
 
Beste Edmoor,

De code werkt prima! Alleen probeer ik een controle in te bouwen waarbij er gekeken moet worden of de sheets "Totaal overzicht" & Totaal overzicht huurders_K" bestaan of niet. Indien er een sheet niet bestaat, dan krijg ik een melding van dat deze niet bestaat. Het is de bedoeling, indien beide niet bestaan, dat de macro moet stoppen. Indien alleen 1 niet bestaat, dan moet de blad wel in PDF aangemaakt worden.

Hoop dat het een beetje duidelijk is.

Sub MaakPDFs()
Dim OutName As String, OutPath As String

OutPath = ActiveWorkbook.Path & "\04 Concept\"
OutName = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)

MsgBox "Huidig padnaam is: " & _
ActiveWorkbook.Path

MsgBox "Huidig MC nummer is: " & _
OutName

Application.ScreenUpdating = False

On Error Resume Next


If IsError(ActiveWorkbook.Worksheets("Totaal overzicht")) Then
MsgBox "Het blad 'Totaal overzicht' bestaat niet!" = vbOKOnly
Else
Exit Sub
End If

If IsError(ActiveWorkbook.Worksheets("Overzicht huurders_K")) Then
MsgBox "Het blad 'Totaal overzicht' bestaat niet!"
Else
Exit Sub
End If

'Totaal overzicht
ActiveWorkbook.Worksheets("Totaal overzicht").Copy
ActiveWorkbook.ExportAsFixedFormat xlTypePDF, OutPath & OutName & "_t.pdf"
ActiveWorkbook.Close False

'Overzicht K
ActiveWorkbook.Worksheets("Overzicht huurders_K").Copy
ActiveWorkbook.ExportAsFixedFormat xlTypePDF, OutPath & OutName & "_o.pdf"
ActiveWorkbook.Close False
ActiveWorkbook.Worksheets("Gegevens").Select


Application.ScreenUpdating = True
MsgBox "PDF's zijn gemaakt en opgeslagen in " & OutPath
End Sub

Mvg

Roy.
 
Laatst bewerkt:
Met de gewenste aanpassing:

Code:
Sub MaakPDFs()
    Dim OutName As String, OutPath As String, PDFgemaakt As Boolean
    
    OutName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4)
    OutPath = ThisWorkbook.Path & "\03 Concept\"
    
    Application.ScreenUpdating = False
    
    If BladBestaat("Totaal overzicht") Then
        'Totaal overzicht
        ActiveWorkbook.Worksheets("Totaal overzicht").Copy
        ActiveWorkbook.ExportAsFixedFormat xlTypePDF, OutPath & OutName & "_t.pdf"
        ActiveWorkbook.Close False
        PDFgemaakt = True
    End If
    
    If BladBestaat("Overzicht huurders_B") Then
        'Overzicht B
        ActiveWorkbook.Worksheets("Overzicht huurders_B").Copy
        ActiveWorkbook.ExportAsFixedFormat xlTypePDF, OutPath & OutName & "_o.pdf"
        ActiveWorkbook.Close False
        PDFgemaakt = True
    End If
    
    Application.ScreenUpdating = True
    If PDFgemaakt Then
        MsgBox "PDF's zijn gemaakt"
    Else
        MsgBox "Niet alle PDF's zijn gemaakt"
    End If
End Sub

Function BladBestaat(ByVal Bladnaam As String) As Boolean
    Dim Sht As Worksheet
        
    BladBestaat = False
    For Each Sht In ActiveWorkbook.Worksheets
        If Sht.Name = Bladnaam Then
            BladBestaat = True
            Exit Function
        End If
    Next Sht
End Function
 
Laatst bewerkt:
Beste Edmoor,

Code werkt nog niet helemaal goed. Ik heb 1 van de sheets verwijderd waarover de controle zou moeten plaatsvinden, echter gaat de code gewoon door en geeft aan dat de bladen zijn aangemaakt i.p.v. dat sommige niet zijn aangemaakt. Het zou een melding moeten geven welke blad ontbreekt.

zou je ernaar willen kijken?

alvast bedankt.

Mvg

Roy.
 
Die code heb ik uitgebreid gecontroleerd en werkt bij mij prima. Hij geeft alleen geen aparte melding van wel blad ontbreekt. Daarvoor zou je per controle een messagebox moeten gebruiken.
 
Beste Edmoor,

Bij het testen gaat het niet helemaal goed. Ik zal ff verder uitzoeken waar het niet goed gaat. Ik laat wel weten als ik niet uitkom.

Mvg

Roy.
 
Plaats ander je document even. Daar heb ik echter niet eerder tijd voor dan vanavond.
 
Beste Edmoor,

bijgaand het bestand.

Kijk maar wanneer je tijd hebt.

Mvg

Roy.
 

Bijlagen

  • Voobeeld_Mc14042.xlsm
    54,1 KB · Weergaven: 17
Hij doet het prima, alleen de berichten zijn niet naar je wens. Er volgt nu een bericht dat de PDF's zijn aangemaakt, ook als er maar 1 is gemaakt. Dat is zo simpel aan te passen dat ik je daar echt nog even zelf naar laat kijken.
 
Beste Edmoor,

Het is gelukt.

Ik heb de volgende stukje aangepast:

Code:
    If BladBestaat("Totaal overzicht") = True Then
    'Totaal overzicht
    ActiveWorkbook.Worksheets("Totaal overzicht").Copy
    ActiveWorkbook.ExportAsFixedFormat xlTypePDF, OutPath & OutName & "_t.pdf"
    ActiveWorkbook.Close False
    PDFgemaakt = True
    Else
    MsgBox "Blad Totaal overzicht niet gevonden. Controleer dit en probeer opnieuw."
    Exit Sub
    End If

Ik wil je hartelijk bedanken voor jouw tijd en inspanning.

Mvg

Roy
 
Graag gedaan. En goed dat het je zelf is gelukt :thumb:
 
Hopelijk heb ik wel aangepast wat jij ook in gedachte had:).
Zoals aangegeven, ben ik een beginner. Spelenderwijs en m.b.v. jullie leer ik dit ook onder knieën te krijgen. Ik heb nog een paar andere dingen die ik op de site zal zetten voor hulp.

Mvg

Roy.
 
had je ook geprobeerd ?

Code:
Worksheets("Totaal overzicht").ExportAsFixedFormat xlTypePDF, OutPath & OutName & "_t.pdf"
 
Hopelijk heb ik wel aangepast wat jij ook in gedachte had:).

Er zijn meerdere manieren en het is ook afhankelijk van welke melding je op welk moment wilt zien.
Al doende leert men :)
 
Beste snb,

Ik heb jouw code geprobeerd en dit werkt ook prima.

Ik wil even in het kort uitleggen wat ik hiermee wil bereiken. Wij maken namelijk dagelijks van dit soort rapporten, waarbij ook tekeningen (vanuit AutoCAD in PDF formaat) samengevoegd worden met PDF Redirect pro. Ik vroeg me af, of het mogelijk is om deze 3 PDF bestanden vanuit VBA Excel (Mcxxxxx_t.PDF & Mcxxxxxx_o.PDF & Mcxxxxxx_A4.PDF (tekeningen)) samen te voegen tot 1 bestand. Deze bestanden worden allemaal in directory \04 Concept\ opgeslagen en nadat deze samengevoegd zijn, krijgen deze de naam "Mcxxxxx_concept.PDF.

Ik weet niet of ik hier een aparte vraag moet aanmaken of hier verder kan gaan met vragen.

Mvg

Roy.

Dit wordt momenteel handmatig allemaal gedaan.
 
Ik gebruik zelf PDF Redirect waar dit ook mogelijk is. Alleen was ik benieuwd of dit met behulp van VBA ook samengevoegd kan worden.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan