Forum Discussion

excelnoob298's avatar
excelnoob298
Copper Contributor
Mar 04, 2021

How can I write this windows code into Mac code? (VBA)

Hi guys 

The code I wrote under is the one I used when I had Windows but recently I changed to Mac. I want to change the code so it runs on Mac but don't know what needs to be changed since this is my first time and I didn't find any information on internet. I hope if anyone could give some feedback. 

If Range("F3").Value = "" Then

    Windows("Import OT.xlsm").Activate

    Sheets("Cash").Select

    Dim filename102 As String

    Dim path102 As String

    Application.DisplayAlerts = False

    path102 = Environ("UserProfile") & "\Dropbox\A271\5 Oppgjor\" & 2021 & "\"

    filename102 = Range("B1").Value & ".xlsx"

    ActiveWorkbook.SaveAs path102 & Range("A2") & "\" & Range("A1") & " " & filename102, xlOpenXMLWorkbook

    Application.DisplayAlerts = True

    Else

    Cells.Select

    Range("F3").Activate

    Selection.Copy

    Workbooks.Add

    ActiveSheet.Paste

    Dim Path2 As String

    Dim fpathname2 As String

    Path2 = Environ("UserProfile") & "\Dropbox\A271\4 Lonnslipper\"

    fpathname2 = Path2 & Range("F3") & "\" & Range("F2") & " " & Range("B3") & ".xlsx"

    ActiveWorkbook.SaveAs filename:=fpathname2, FileFormat:=51

    ActiveWorkbook.Close

Thanks πŸ™‚

4 Replies

  • Riny_van_Eekelen's avatar
    Riny_van_Eekelen
    Platinum Contributor

    excelnoob298 Folder paths on the Mac use forward slashes. Try recording a macro on the Mac, that opens and closes a file on your. Then you'll see how it works on a Mac. Now, re-write your "path" statements to match that format.

    • excelnoob298's avatar
      excelnoob298
      Copper Contributor
      I tried this method but there was to much code to write for what I have over. but it seems to work maybe on Mac. I encountered another problem if you could help with it πŸ™‚

      Path001 = Environ("UserProfile") & "\Dropbox\A271\4 Lonnslipper\" & Range("F3")
      Folder = Dir(Path001, vbDirectory)
      If Folder = vbNullString Then
      VBA.FileSystem.MkDir (Path001)
      ActiveWorkbook.SaveAs filename:=fpathname1, FileFormat:=51
      ActiveWorkbook.Close
      Else
      ActiveWorkbook.SaveAs filename:=fpathname1, FileFormat:=51
      ActiveWorkbook.Close
      End If
      the code works for finding if a folder exists or not and then based on this create or not.
      This code works fine on windows but on Mac I get error message on this part "VBA.FileSystem.MkDir (Path001)". I checked the link you sent but the code there was to long. if I have to write that code for every sheet I have then that would take me few days to fix. so I was wondering if you could point out what I have to edit here for it to work on Mac vba
      thanks πŸ™‚
      • NikolinoDE's avatar
        NikolinoDE
        Gold Contributor
        Regarding Mac, unfortunately, I can't help. A beginner is a pro compared to me.
        Sorry that I can't help you, but I'm sure that some of the great people and specialists here will take care of your issue.

        Thank you for your understanding and patience

        Nikolino
        I know I don't know anything (Socrates)

Resources