VBA | Chosing path to save file

Outlook version
Outlook 2016 64 bit
Email Account
Office 365 Exchange
#1
Hi All,

I have below script:

Code:
Sub zapisz_PDF_dla_zaznaczonych()
Const sciezka$ = "C:\My Path\Files\"
Dim oMail As MailItem
For Each oMail In Application.ActiveExplorer.Selection
DoEvents
    If oMail.Attachments.Count > 0 Then _
    Call Zapis_Attmaila_na_dysk(oMail, sciezka)
Next
End Sub

Private Sub Zapis_Attmaila_na_dysk(Item As MailItem, patch As String)
Dim objAtt As Attachments, objAttach As Attachment
Set objAtt = Item.Attachments
For Each objAttach In objAtt
    With objAttach
    If LCase(Right(.FileName, 3)) = "pdf" Then
        Call MakeWholePath(patch)
        objAttach.SaveAsFile patch & _
        Left(.FileName, Len(.FileName) - 4) & "_" & _
        Format(Item.CreationTime, "YYYY-DD-MM") & ".pdf"
    End If
    End With
Next
Set objAtt = Nothing
End Sub

Private Sub MakeWholePath(FileWithPath$)
    Dim x&, PathToMake$ 'by OShon
    For x = LBound(Split(FileWithPath, "\")) To UBound(Split(FileWithPath, "\")) - 1
        PathToMake = PathToMake & "\" & Split(FileWithPath, "\")(x)
        If Right$(PathToMake, 1) <> ":" Then
            If FileExists(Mid(PathToMake, 2, Len(PathToMake))) = False Then _
            MkDir (Mid(PathToMake, 2, Len(PathToMake)))
        End If
    Next
End Sub

Private Function FileExists(FilePath As String) As Boolean
FileExists = Len(Dir(FilePath, vbDirectory Or vbHidden Or vbSystem)) > 0
End Function
There is code line (2) with const "C:\My Path\Files\" and this is path where files are saving.
I found some code to select folder but I'm not good with VBA and I don't know how to do this. I found something like below:

Code:
Sub SelectFolder()
Dim sFolder As String
    ' Open the select folder prompt
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = -1 Then ' if OK is pressed
            sFolder = .SelectedItems(1)
        End If
    End With
  
    If sFolder <> "" Then ' if a file was chosen
        ' *********************
        ' put your code in here
        ' *********************
    End If
End Sub
I would like to choose folder where save files, after I run script.

Can someone help me with this issue?

I will be really grateful.
 
Outlook version
Outlook 2016 32 bit
Email Account
Office 365 Exchange
#2
Remove the Constant and use the code in the Show folder macro at the top of your macro. Oh wait, filedialog doesn't work in outlook. You either need to use the word or excel object model or use different code, such as the code at How to use Windows filepaths in a macro
 

Similar threads

Top