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

Code om een pdf document te maken werkt op kantoor maar niet thuis

Status
Niet open voor verdere reacties.

Scallebe

Gebruiker
Lid geworden
29 okt 2014
Berichten
535
Goede morgen specialisten

Ik heb op het net een code gevonden om mijn sheets individueel op te slaan als een pdf.

Ik heb er zelf wat code aan toegevoegd (als beginner...) en op kantoor werkt het... :)


Wanneer ik thuis de code wil laten uitvoeren lukt het niet.

Het opslaan zou moeten gebeuren in de folder "PDF-Documenten CCF" van hetzelfde "path" als de "workbook"

Ik ging er dus vanuit, ongeacht in welke folder het workbook is opgeslagen, dat excel het pdf document opslaat in dat zelfde path en onderliggende folder. Niet dus...


Waar gaat het fout?


Heel waarschijnlijk is de code niet samengesteld volgens de regels van het spel, ik weet het, maar we zijn aan het leren...

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Select Case ActiveCell.Address
Case "$A$3"

    Sheets("Alle CCF").Select
        Application.ScreenUpdating = False
            If ThisWorkbook.Sheets("Alle CCF").Name = "Alle CCF" Then
            Cancel = True
            Application.EnableEvents = False
                With ThisWorkbook.Sheets("Alle CCF")
                .Range("H1, I1, J1, K1, L1, AB1:BE1, BH1:BI1").EntireColumn.Hidden = True
                End With
            Application.EnableEvents = True
            End If
   
    Dim ws As Worksheet
    Dim strPath As String
    Dim myFile As Variant
    Dim strFile As String
    On Error GoTo errHandler
    
    Set ws = ActiveSheet
    
        strFile = Application.ActiveWorkbook.Path & "\PDF-Documenten CCF\" & _
                  ws.Name & " " & _
                  Format(Now(), "dd-mm-yyyy") & ".pdf"
        myFile = Application.GetSaveAsFilename _
                 (InitialFileName:=strFile, _
                 fileFilter:="PDF Files (*.pdf), *.pdf", _
                 Title:="Selecteert de folder en bestandsnaam om te bewaren")
                
    If myFile <> False Then
        ws.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=myFile, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
        MsgBox "Het PDF-document " & ws.Name & " is gemaakt."
    End If
        
        If ThisWorkbook.Sheets("Alle CCF").Name = "Alle CCF" Then
        Cancel = True
        Application.EnableEvents = False
            With ThisWorkbook.Sheets("Alle CCF")
            .Range("H1, I1, J1, K1, L1, AB1:BE1, BH1:BI1").EntireColumn.Hidden = False
            End With
        Application.EnableEvents = True
        End If
        
            Range("A3").Select
        Application.ScreenUpdating = True
exitHandler: Exit Sub
errHandler: MsgBox "Het PDF-document is niet gemaakt."
Resume exitHandler
    
    Case Else
        Application.EnableEvents = False
            MsgBox ("Je kan geen prestaties invoeren op ALLE CCF."), vbOKOnly
        Application.EnableEvents = True

End Select

SendKeys ("{ESC}")

End Sub


Bedankt

Groetjes

Pascal
 
Vertel ook even wat er dan wel gebeurt. Krijg je b.v. een foutmelding?
 
edmoor,

Ik krijg geen foutmelding.

Het gedeelte voor de Column hide wordt uitgevoerd en dan krijg ik het bericht "Het PDF-document is niet gemaakt."

Zoals de code voorziet bij errHandler (ik weet wel niet wat dat betekent)

Dus na de hide column gaat hij naar de regel : errHandler: MsgBox "Het PDF-document is niet gemaakt."

De ... column hide = False ... wordt ook niet meer uitgevoerd.

Alsook het venster Opslaan als komt niet te voorschijn. (op kantoor wel)


Groetjes

Pascal
 
Laatst bewerkt:
Wijzig dit:
exitHandler: Exit Sub

Eens in dit:
Code:
exitHandler:
    MsgBox Err.Description
    Exit Sub

Dan zie je welke fout zich voordoet.
 
Edmoor,

Momenteel zit ik op kantoor en kan het pas in de namiddag testen.

Alvast bedankt

Ik hou je op de hoogte.

Groetjes

Pascal
 
De opdracht "ExportAsFixedFormat" is pas vanaf versie 2007 beschikbaar in Excel. Werk je thuis toevallig nog met versie 2003 (of ouder)?
 
Ginger,

Neen, ik werk met de versie 2010. Ik heb ook al de versie 2016 geïnstalleerd maar heb het daar nog niet mee getest...

Voorlopig houd ik het bij 2010 omdat we op het werk ook met 2010 werken.

Groetjes
 
Ah.... In dat geval... Zet de opdracht "On Error GoTo errHandler" even als comment in je procedure (dat doe je door er een enkele quote (') voor te zetten). Doorloop nu je code met F8 (step by step). Elke keer als je op F8 drukt ga je een regel verder in je procedure. Op een gegeven moment zal er een regel geel worden gekleurd en kan je zien welke waardes de variabelen hebben aangenomen (dát kan je zelfs al op elke regel doen om het te volgen) en wat de fout is. Maar zó kan je heel eenvoudig thuis debuggen....
 
Edmoor, Ginger,

Ik heb jullie raad opgevolgd maar kreeg geen errors...

Na alles nog eens te testen werkte het plots wel en ben dan de codes beginnen vergelijken.

De code vermeld in #1 is van toepassing op de verzameling van mijn 5 individuele sheets en die werk wel. (die is onderaan ook een beetje anders...)

Op de individuele sheets werkte het niet maar ik denk dat ik het probleem gevonden heb :

Zie de rode lijn in de code, die heb ik weggelaten (ik kan thuis niet printen in A3)...

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Select Case ActiveCell.Address
    Case "$A$3"
Sheets("Apothekers").Select

Application.ScreenUpdating = False
        If ThisWorkbook.Sheets("Apothekers").Name = "Apothekers" Then
        Cancel = True
        Application.EnableEvents = False
            With ThisWorkbook.Sheets("Apothekers")
            .Range("H1, I1, J1, K1, L1, AB1:BE1, BH1:BI1").EntireColumn.Hidden = True
            End With
        Application.EnableEvents = True
        End If
    
    Dim ws As Worksheet
    Dim strPath As String
    Dim myFile As Variant
    Dim strFile As String
    On Error GoTo errHandler
    
    Set ws = ActiveSheet
    
    [COLOR="#FF0000"]ws.PageSetup.PaperSize = xlPaperA3[/COLOR]

    strFile = ThisWorkbook.Path & "\PDF-Documenten CCF\" & _
              ws.Name & " " & _
              Format(Now(), "dd-mm-yyyy") & ".pdf"
    myFile = Application.GetSaveAsFilename _
             (InitialFileName:=strFile, _
             fileFilter:="PDF Files (*.pdf), *.pdf", _
             Title:="Select Folder and FileName to save")
    If myFile <> False Then
        ws.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=myFile, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
        MsgBox "Het PDF-document " & ws.Name & " is gemaakt."
    End If
        If ThisWorkbook.Sheets("Apothekers").Name = "Apothekers" Then
        Cancel = True
        Application.EnableEvents = False
            With ThisWorkbook.Sheets("Apothekers")
            .Range("H1, I1, J1, K1, L1, AB1:BE1, BH1:BI1").EntireColumn.Hidden = False
            End With
        Application.EnableEvents = True
        End If
        Range("A3").Select
Application.ScreenUpdating = True
exitHandler: Exit Sub
errHandler: MsgBox "Het PDF-document is niet gemaakt."
Resume exitHandler
    
    Case Else
    
    If Not Application.Intersect(Target, Range("A6:A500")) Is Nothing Then
        Cancel = True
        Select Case Range("S" & Target.Row).Value
            Case "UW", "WMU"
                frmInputPrestaties.Show
            Case "WM", "WJ"
                frmInputWachten.Show
        End Select
    End If
End Select

End Sub

Ook heb ik volgend gedeelte van de code naast elkaar geplaatst maar ik weet niet of dat invloed zou hebben :

Code:
exitHandler: Exit Sub
errHandler: MsgBox "Het PDF-document is niet gemaakt."
Resume exitHandler

in plaats van :

Code:
exitHandler:
Exit Sub
errHandler:
MsgBox "Het PDF-document is niet gemaakt."
Resume exitHandler

In elk geval het werkt nu wel zowel thuis als op kantoor.

Bedankt voor de hulp.

Tot de volgende

cheers

Pascal
 
Dat naast elkaar plaatsen is nergens op van invloed. Zelf gebruik ik dat zo weinig mogelijk maar soms is het wel handig qua code layout.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan