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

Fout in VBA code?

Status
Niet open voor verdere reacties.

martindeboer1988

Gebruiker
Lid geworden
5 nov 2016
Berichten
93
Goedemorgen,

Ik krijg wanneer ik onderstaande VBA code probeer continu de melding "het bestand kon helaas niet opgeslagen worden vanwege een fout".
Waar ga ik de fout in?

Code:
Private Sub PDF_uitgifte_headset_Click()
Dim FacName As String
With Sheets("PDF_uitgifte_HS").PageSetup
        
        .PrintQuality = 600
        .CenterHorizontally = True
        .CenterVertically = False
        .Orientation = xlPortrait
        .PaperSize = xlPaperA4
        .Zoom = 110
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        End With

    'De macro haalt met deze opdracht gegevens op in het document, om deze later als naam voor het PDF-bestand te gebruiken.
    FacName = ActiveSheet.Range("Q6").Value & ".pdf"
    Application.ScreenUpdating = False
    'De folder waarin het bestand moet worden opgeslagen
    Map = "T:\Facilities-NL\Leeuwarden algemeen\*********\***\Filing\Uitgifte headsets\"
    If Dir(Map, vbDirectory) = "" Then
        MsgBox "De folder " & Map & " bestaat niet"
        Exit Sub
    End If
       
    'Een controle om geen bestaand PDF-bestand te overschrijven.
    If Dir(Map & FacName) <> "" Then
       MsgBox "Het bestand: " & FacName & " bestaat reeds"
    Else
        On Local Error GoTo Fout
        Sheets("PDF_uitgifte_HS").Range("A1:H37").ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=Map & FacName, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=False, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
        MsgBox "Het bestand: " & FacName & " is opgeslagen in de map \***\*****\Uitgifte headsets"
        Exit Sub
    End If
Fout:
    MsgBox "Het bestand: " & FacName & " kon helaas niet opgeslagen worden vanwege een fout."
End Sub
 
Laatst bewerkt:
En zo?
Code:
Private Sub PDF_uitgifte_headset_Click()
Dim FacName As String
With Sheets("PDF_uitgifte_HS").PageSetup
        
        .PrintQuality = 600
        .CenterHorizontally = True
        .CenterVertically = False
        .Orientation = xlPortrait
        .PaperSize = xlPaperA4
        .Zoom = 110
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        End With

    'De macro haalt met deze opdracht gegevens op in het document, om deze later als naam voor het PDF-bestand te gebruiken.
    FacName = ActiveSheet.Range("Q6").Value & ".pdf"
    Application.ScreenUpdating = False
    'De folder waarin het bestand moet worden opgeslagen
    Map = "T:\Facilities-NL\Leeuwarden algemeen\*********\***\Filing\Uitgifte headsets\"
    If Dir(Map, vbDirectory) = "" Then
        MsgBox "De folder " & Map & " bestaat niet"
        Exit Sub
    End If
       
    'Een controle om geen bestaand PDF-bestand te overschrijven.
    If Not Dir(Map & FacName) = "" Then
          On Local Error GoTo Fout
        Sheets("PDF_uitgifte_HS").Range("A1:H37").ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=Map & FacName, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=False, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
        MsgBox "Het bestand: " & FacName & " is opgeslagen in de map \***\*****\Uitgifte headsets"
        Exit Sub
     End If
        MsgBox "Het bestand: " & FacName & " bestaat reeds"
       Exit Sub
Fout:
    MsgBox "Het bestand: " & FacName & " kon helaas niet opgeslagen worden vanwege een fout."
End Sub
 
Laatst bewerkt:
Cobbe,

Als ik die code erin gezet geeft Excel de melding dat het bestand al bestaat terwijl er geen bestand is.
 
Ik heb de code iets aangepast in vorige post.
Anders moet je eens via F8 de code doorlopen en zien waar het misloopt.
 
De F8 toets zit links van de F9.
 
Dat weet ik heb het met de F8 toets doorlopen en markeringen bijgevoegd met de F9 toets puur voor het beeld.
Dit om te laten zien waar F8 de markeringen gaf.
 
Dat van die F9 versta ik niet.
Bij mij vliegt hij eruit op de regel 'MsgBox "De folder " & Map & " bestaat niet" , wat logisch is.
Wijzig deze regel eens:
If Not Dir(Map & FacName) <> "" Then
 
Wijzig die MsgBox regel eens in dit:
Code:
Msgbox Err.Number, Err.Description

Dan zie je tenminste de fout die VBA zelf geeft.
 
@Cobbe, Helaas blijft die daar fouten geven.
@edmoor, wanneer ik de Msgbox regel wijzig geeft die een "type mismatch" error.
 
Ok. En wat staat er dan letterlijk in cel Q6?
 
In cel Q6 staat
Code:
=Data!B33
en in cel B33 staat
Code:
=CONCATENATE(Portal!$E$9;"_";Portal!$E$13;"_";"LWD";"_";"UNSIGNED")
 
De bedoeling is om te achterhalen wat er exact als bestandsnaam wordt gebruikt.
De uiteindelijke waarde in FacName zou ik dus willen zien.
 
Laatst bewerkt:
de bestandsnaam is variabel en bestaat uit een samengestelde waarde uit verschillende cellen.
Ik begrijp niet helemaal wat voor informatie je nu nodig hebt?:o
 
Deze loopt zonder fout bij mij:
Code:
Private Sub PDF_uitgifte_headset_Click()
Dim FacName As String
With Sheets("PDF_uitgifte_HS").PageSetup
        
      '  .PrintQuality = 600
        .CenterHorizontally = True
        .CenterVertically = False
        .Orientation = xlPortrait
        .PaperSize = xlPaperA4
        .Zoom = 110
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        End With

    'De macro haalt met deze opdracht gegevens op in het document, om deze later als naam voor het PDF-bestand te gebruiken.
    FacName = ActiveSheet.Range("Q6").Value & ".pdf"
    Application.ScreenUpdating = False
    'De folder waarin het bestand moet worden opgeslagen
    Map = "C:\Testmap\"
    'Map = "T:\Facilities-NL\Leeuwarden algemeen\*********\***\Filing\Uitgifte headsets\"
    If Dir(Map, vbDirectory) = "" Then
        MsgBox "De folder " & Map & " bestaat niet"
        Exit Sub
    End If
       
    'Een controle om geen bestaand PDF-bestand te overschrijven.
    If Dir(Map & FacName) <> "" Then
       MsgBox "Het bestand: " & FacName & " bestaat reeds"
    Else
        On Local Error GoTo Fout
        Sheets("PDF_uitgifte_HS").Range("A1:H37").ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=Map & FacName, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=False, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
        MsgBox "Het bestand: " & FacName & " is opgeslagen in de map \***\*****\Uitgifte headsets"
        Exit Sub
    End If
Fout:
    MsgBox "Het bestand: " & FacName & " kon helaas niet opgeslagen worden vanwege een fout."
End Sub

Heb wel eerst de map Testmap gecreëerd.
 
Laatst bewerkt:
Ik had verder niet gereageerd omdat de code van Cobbe goed is en dus prima werkt.
Geen idee dus waar je die Error 5 vandaan krijgt.
 
Bedankt voor jullie hulp allebei ik moet nog maar eens goed alles doorlezen en kijken waar ik fout ben gegaan :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan