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

VBA Array active Sheet to PDF

Status
Niet open voor verdere reacties.

MatthiasPBelmans

Gebruiker
Lid geworden
13 aug 2020
Berichten
50
Hoi hoi

Kan iemand mij helpen?

ik zou een array van actieve sheets naar PDF moeten zetten

echter als 1 sheet verborgen is, loopt die vast..

PHP:
Sub PDFActiveSheet()

'Dim wsA As Sheets
   Dim wbA     As Workbook
   Dim strTime As String
   Dim strName As String
   Dim strPath As String
   Dim strFile As String
   Dim strPathFile As String
   Dim myFile  As Variant
   On Error GoTo errHandler

   Set wbA = ActiveWorkbook
   arr = Array("commercial invoice", "shipping advice", "end use letter", "shipper declaration", "EXPORT CERT A")
   Set wsA = Sheets(arr)
   wsA.Select
   strTime = Format(Now(), "yyyymmdd\_hhmm")

   'get active workbook folder, if saved
   strPath = wbA.Path
   If strPath = "" Then
      strPath = Application.DefaultFilePath
   End If
   strPath = strPath & ""

   'replace spaces and periods in sheet name
   strName = Replace(Replace(Join(arr), " ", ""), ".", "_")

   'create default name for savng file
   strFile = strName & "_" & strTime & ".pdf"
   strPathFile = strPath & strFile

   'use can enter name and
   ' select folder for file
   myFile = Application.GetSaveAsFilename _
            (InitialFileName:=strPathFile, _
             filefilter:="PDF Files (*.pdf), *.pdf", _
             Title:="Select Folder and FileName to save")

   'export to PDF if a folder was selected
   If myFile <> "False" Then
      ActiveSheet.ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=myFile, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
      'confirmation message with file info
      MsgBox "PDF file has been created: " _
             & vbCrLf _
             & myFile
   End If

exitHandler:
   Exit Sub
errHandler:
   MsgBox "Could not create PDF file"
   Resume exitHandler
End Sub
 
Heb jij de macrorecorder al eens gebruikt ?
 
hey ja, die heb ik gebruikt..

maar dit gaat toch moeilijk met de macro recorder?

De sheets worden geactiveerd door een waarde in een bepaalde cel.
 
Dat blijkt helemaal niet uit de code.
Wie heeft die voor je gemaakt ?
 
deze heeft een ex-collega voor mij gemaakt, maar geen contact niet meer mee.

in het verleden was dit ook niet met geactiveerde sheets op basis van een waarde, dit is iets nieuw
 
Als je denkt dat het met een macrorecoder moeilijk gaat, is het advies: gebruik eerst eens de macrorecorder.
 
echter als 1 sheet verborgen is, loopt die vast..
Als dat je probleem is maak dan eerst je tabbladen zichtbaar.
Voeg volgende regels code toe: (rood)
Code:
arr = Array("commercial invoice", "shipping advice", "end use letter", "shipper declaration", "EXPORT CERT A")
    [COLOR="#FF0000"]For Each naam In arr
        Worksheets(naam).Visible = True
    Next[/COLOR]
Set wsA = Sheets(arr)
 
Hy Pagadder

vraagje, de code werkt goed, alleen zou ik de verborgen sheets ook verborgen moeten kunnen houden.
Hij zou enkel en alleen de visible sheets moeten kunnen opslaan...

kan je me hierbij nog helpen?
 
Ik heb de code wat moeten aanpassen, ik zou enkel in de array de sheets moeten hebben die geactiveerd zijn om een PDF file te maken.
De sheets die verborgen zijn, moeten niet mee opgenomen worden.

Ik heb al verschillende pogingen gedaan, maar zonder succes

PHP:
Sub APDFActiveSheet()

'Dim wsA As Sheets
   Dim wbA     As Workbook
   Dim strTime As String
   Dim strName As String
   Dim strPath As String
   Dim strFile As String
   Dim strPathFile As String
   Dim myFile  As Variant
   On Error GoTo errHandler

   Set wbA = ActiveWorkbook
   arr = Array("COMMERCIAL INVOICE", "PACKING LIST", "END USE LETTER", "SHIPPER DECLARATION - 1", "EXPORT CERT - 1", "SHIPPER DECLARATION - 2", "EXPORT CERT - 2", "SHIPPER DECLARATION - 3", "EXPORT CERT - 3", "SHIPPER DECLARATION - 4", "EXPORT CERT - 4", "SHIPPER DECLARATION - 5", "EXPORT CERT - 5", "SHIPPER DECLARATION - 6", "EXPORT CERT - 6")
   For Each naam In arr
       Worksheets(naam).Visible = True
        Next
   Set wsA = Sheets(arr)
   wsA.Select
   strTime = Format(Now(), "yyyymmdd\_hhmm")

   'get active workbook folder, if saved
   strPath = Worksheets("DATA INPUT").Range("D36")
   If strPath = "" Then
      strPath = Application.DefaultFilePath
   End If
   strPath = strPath & ""

   'replace spaces and periods in sheet name
   'strName = Replace(Replace(Join(arr), " ", ""), ".", "_")

   'create default name for savng file
   strFile = strName & ".pdf"
   strPathFile = strPath & strFile

   'use can enter name and
   ' select folder for file
   myFile = Application.GetSaveAsFilename _
            (InitialFileName:=strPathFile, _
             Filefilter:="PDF Files (*.pdf), *.pdf", _
             Title:="Select Folder and FileName to save")

   'export to PDF if a folder was selected
   If myFile <> "False" Then
      ActiveSheet.ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=myFile, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
      'confirmation message with file info
      MsgBox "PDF file has been created: " _
             & vbCrLf _
             & myFile
   End If

exitHandler:
   Exit Sub
errHandler:
   MsgBox "Could not create PDF file"
   Resume exitHandler
End Sub
 
Als je verborgen bladen hebt worden deze niet meegenomen als je ThisWorkbook.exportasfixedformat gebruikt.
 
Hoi snb

Boek is al reeds besteld, het zou wel gewoon vriendelijk zijn om me nu momenteel al verder te helpen.
Hiervoor zijn deze forum's toch opgericht?
 
@snb,aandelen gekocht in Bol, gisteren ook al reclame gemaakt;:D:cool:
 
Er is basiskennis nodig om geholpen te kunnen worden. Anders gaat het om uitbesteden: wij doen dan het werk. Dat is geen hulp, zoals fora bedoeld zijn.

@Pag ik kan ook gewoon verwijzen naar mijn gratis website: www.snb-vba.eu
Die mag je overigens gewoon ondersteunen met een donatie, aandelen kopen hoeft niet.
 
@snb het grootste deel van mijn code bestaat toch, ik mis 1 enkele stap.. dit is dan toch vragen om hulp?
 
@Haije: gevonden en heb deze aangepast met dit ThisWorkbook.exportasfixedformat echter dan slaagt die alle sheets op en niet alleen die in mijn array staan, uit mijn array zouden dan alleen de geactiveerde sheets moeten zijn..
 
Hoi, kan iemand me toevallig verder helpen? Ik zou mijn excelfile moeten delen met mijn collega's en dit is het enigste wat bij mij gewoon niet lukt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan