Économie Rapport Sur L'Accès Aux
-
21-12-2019 - |
Question
J'ai le texte suivant qui ouvre la boîte de Dialogue enregistrer sous boîte, mais ce n'est pas vraiment de l'enregistrement du fichier, quand je clique sur enregistrer.
Dim SaveBox As Object
Set SaveBox = Application.FileDialog(msoFileDialogSaveAs)
With SaveBox
.AllowMultiSelect = False
.InitialFileName = "WeeklyLog " & Format(Now, "yyyy_mm_dd")
SaveBox.Show
End With
La solution
"...ouvre la boîte de Dialogue enregistrer sous boîte, mais ce n'est pas vraiment de l'enregistrement du fichier, quand je clique sur enregistrer"
FileDialog
pouvez vous donner une chaîne de caractères qui contient un chemin d'accès au fichier.Mais il ne fait pas d'effectuer une opération "Enregistrer sous".C'est à vous, le développeur, pour utiliser ce chemin de fichier dans votre code pour enregistrer quelque chose quelque part.
Dim SaveBox As Object
Dim strFilePath As String
Set SaveBox = Application.FileDialog(2) ' msoFileDialogSaveAs
With SaveBox
.InitialFileName = "WeeklyLog " & Format(Date, "yyyy_mm_dd")
If .Show = True Then
strFilePath = .SelectedItems(1)
End If
End With
' now do something with strFilePath ...
If Len(strFilePath) > 0 Then
MsgBox "File path: " & strFilePath
Else
MsgBox "Selection cancelled."
End If
Autres conseils
Cela permettra d'enregistrer un fichier Excel, je pense que vous n'avez besoin que d'un minuscule un peu de peaufine pour l'obtenir pour enregistrer un PDF:
Sub GetFileName()
Dim fd As FileDialog
Dim fname As String
Do
Set fd = Application.FileDialog(msoFileDialogSaveAs)
With fd
.AllowMultiSelect = False
.InitialFileName = "New To Do.xls"
If .Show = -1 Then fname = .SelectedItems(1)
If fname = fd.InitialFileName Then _
MsgBox "Please enter a new filename", vbOKOnly, "Filename Needed!"
End With
Loop Until fname <> fd.InitialFileName
If IsEmpty(fname) Or fname = vbNullString Then Exit Sub
ThisWorkbook.SaveAs fname
End Sub