VBA script werkt niet op een Mac

Status
Niet open voor verdere reacties.

kani1977

Nieuwe gebruiker
Lid geworden
8 dec 2017
Berichten
4
Ik heb een schript gemaakt (deels gekopieerd van dit forum) voor iemand die een Mac heeft.
Op mijn windows PC werkt het prima, maar op de Mac geeft hij een fout bij de applicatie "GetSaveAsFilename"
Ook het opslaan van de PDF werkt niet :(

Doel is het openen van een Excel bestand dat beschermd is tegen overschrijven
na het invullen wordt het document opgeslagen als PDF en .xlsx bestand met een bestandsnaam die wordt opgehaald uit gegevens in de sheet.
Na het opslaan sluit hij alles af. Een soort sloop-proef document en een zekerheid dat de bestanden worden opgeslagen op de juiste manier!

Heeft iemand een idee wat ik voor een mac anders moet doen?

het script:
Code:
Sub Opslaan()
  Dim strFileName As Variant
  Dim strPath As String
  strFileName = Range("I2").Value
  Pad = ActiveWorkbook.Path + "\"
  strFileName = Application.GetSaveAsFilename(InitialFileName:=Pad & strPath & strFileName, _
                                              FileFilter:="Excel Files (*.xls), *.xls, Excel 2007 Files (*.xlsx), *.xslx", _
                                              FilterIndex:=2, _
                                              Title:="Kies de juiste map en pas eventueel de bestandsnaam aan!")

  If strFileName = False Then
    MsgBox "Oh oh... je hebt niet opgeslagen! "
  Else
    Application.DisplayAlerts = False
    Application.Run "PDF"
    ActiveSheet.Copy
    Columns("F:J").Select
    Selection.Delete
    ActiveWorkbook.SaveAs Filename:=strFileName
    ActiveWorkbook.Close SaveChanges = False
    Windows("Basisfactuur.xlsm").Activate
    MsgBox "Gelukt!  Opgeslagen als: " & strFileName
    Application.Quit
    
  End If
End Sub

Sub PDF()
'
' PDF Macro
'
  Dim strFileName As Variant
  Dim strPath As String
  Dim Pad As String
  strFileName = Range("I2").Value
  Pad = ActiveWorkbook.Path + "\"
  Naam = Pad & strFileName + ".pdf"
      
      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Pad & strFileName + ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
End Sub
 
Laatst bewerkt:
Ik meen onthouden te hebben dat de padscheidingstekens bij Apple anders zijn dan bij Windows.
 
Yep. Op te halen met Application.PathSeparator

Daarnaast ondersteund VBA op een Mac lang niet alles zoals op een Windows PC.
 
Ik wordt nog steeds niet vrolijk van die Mac. Goedkoper kunnen ze het niet maken, wel minder goed werkend :)
 
Ik meen onthouden te hebben dat de padscheidingstekens bij Apple anders zijn dan bij Windows.

Als ik het commando Pad weghaal blijft hij bij de foutcontrole aangeven dat de Application.GetSaveAsFilename niet goed is.
 
Je gebruikt ook de variabele strPath, maar die krijgt nergens een waarde.
 
Warom wil je de gebruiker überhaupt lastigvallen met een eenvoudige archiveringsoperatie ?
Laat de code bepalen onder welke naam in welke directory het bestand wordt opgeslagen.
 
Laatst bewerkt:
Warom wil je de gebruiker überhaupt lastigvallen met een eenvoudige archiveringsoperatie ?
Laat de code bepalen onder welke naam in welke directory het bestand wordt opgeslagen.

Omdat hij op zijn eigen appel niet snapt waar hij zijn bestanden wegschrijft :)
#tochmaareenwindowslaptopaanschaffen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan