Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1932to1936
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Datei auf Desktop speichern
03.07.2023 22:21:12
EberhardDaniel

Guten Abend
Ich öffne mit unterstehenden Code das Dialogfenster zum speichern auf. Dummerweise befindet sich auf dem Desktop ein Ordner mit dem selben Name wie die Datei welche ich speichern möchte.
Nach Eingabe des Namen öffnet sich jedoch der Ordnen und speichert nicht wie gewünscht die Datei auf den Desktop. Kann man dies irgendwie umgehen?


Sub PDF_Generieren()
    Dim strOrdner As String
    Dim j As Long

    strOrdner = Environ("USERPROFILE") & "C:\"
    
    With Application.FileDialog(msoFileDialogSaveAs)
        .InitialFileName = strOrdner
        .Title = "Set 1 Band speichern"
        .ButtonName = "Datei speichern"
        .InitialView = msoFileDialogViewDetails
        .Show
        
        For j = 1 To .Filters.Count
            If UCase$(.Filters(j).Extensions) Like "*.PDF*" Then
                .FilterIndex = j: Exit For
            End If
        Next j
    End With
End Sub


Besten Dank für Eure Hilfe.

Freundliche Grüsse Daniel Eberhard

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei auf Desktop speichern
04.07.2023 01:49:15
onur
Wenn du doch vorher weisst, wo die Datei und unter welchem Namen, warum FileDialog?


AW: Datei auf Desktop speichern
04.07.2023 07:24:43
Eberhard Daniel
Hallo onur
Das weis ich bei meinem PC. Wie es auf dem PC von meinen Kollegen aussieht und wo sie die Datei speichern möchten, weis ich ja nicht.


AW: Datei auf Desktop speichern
04.07.2023 08:40:52
Ulf

Sub PDF_Generieren()
    Dim strOrdner As String
    Dim j As Long
    Dim strDatei As String
    Dim intErgebnis As Integer
    '???
    'Environ("USERPROFILE") ist ein vollständiger Pfad=> c:\users\%User%C:\
    'strOrdner = Environ("USERPROFILE") & "C:\"
    strOrdner = Environ("USERPROFILE") & "\Desktop"
    strDatei = "New.pdf"
    With Application.FileDialog(msoFileDialogSaveAs)
        'InitialFileName not InitialDirectory !
        .InitialFileName = strOrdner & "\" & strDatei
        .Title = "Set 1 Band speichern"
        .ButtonName = "Datei speichern"
        .InitialView = msoFileDialogViewDetails
        For j = 1 To .Filters.Count
            If UCase$(.Filters(j).Extensions) Like "*.PDF*" Then
                .FilterIndex = j: Exit For
            End If
        Next j
        intErgebnis = .Show
        If intErgebnis > 0 Then
            strDatei = .SelectedItems(1)
            MsgBox strDatei
        End If
    End With
End Sub
hth
Ulf


Anzeige
AW: Datei auf Desktop speichern
04.07.2023 16:16:04
Eberhard Daniel
Hallo Ulf
Danke für Deinen Vorschlag. Aber irgendwie funktioniert es auch nicht.
Ist es nicht möglich, dass es nach der Eingabe automatisch ein ".PDF" hinten dran schreibt?

Freundliche Grüsse
Daniel Eberhard


AW: Datei auf Desktop speichern
04.07.2023 16:21:15
onur
Wie ICH schon schrieb: der Filepicker ist "autark" - er verlässt VBA und VBA übernimmt erst wieder, wenn die Datei gespeichert wurde !


AW: Datei auf Desktop speichern
04.07.2023 19:22:18
Ulf
statt

strDatei = .SelectedItems(1)

strDatei = iif(lcase(right(.SelectedItems(1),4)>".pdf", .SelectedItems(1) & ".pdf", .SelectedItems(1))
hth
Ulf


Anzeige
AW: Datei auf Desktop speichern
04.07.2023 19:33:47
onur
Das macht den Kohl auch nicht fett.
Meine alte Deutschlehrerin hätte gesagt " Thema verfehlt - Setzen! Sechs!" :)
Die Aufgabe/das Problem war: wenn es einen Ordner auf dem Desktop gibt, die genauso heisst, wie die Datei heissen soll, wird sie nicht unter diesem Namen gespeichert, sondern es wird nur der Ordner geöffnet.


AW: Datei auf Desktop speichern
04.07.2023 13:49:49
onur
Solange du den Dateinamen ohne ".pdf" eingibst, wird das passieren, da das Makro unterbrochen ist, solange die Dialogbox offen ist und alles. was währenddessen passiert, nicht per VBA verarbeitet werden kann.
Also einfach Endung mit eingeben oder aber mit Folderpicker und Inputbox (für Namen) arbeiten. Oder einfach den blöden Ordner auf dem Desktop umbennen.


Anzeige
AW: Datei auf Desktop speichern
05.07.2023 01:06:32
Ulf

Option Explicit

Sub PDF_Generieren()
    Dim strOrdner As String
    Dim j As Long
    Dim strDatei As String
    Dim intErgebnis As Integer
    '???
    'Environ("USERPROFILE") ist ein vollständiger Pfad=> c:\users\%User%C:\
    'strOrdner = Environ("USERPROFILE") & "C:\"
    strOrdner = Environ("USERPROFILE") & "\Desktop"
    strDatei = "Öfter" '"Öfter.pdf"
    With Application.FileDialog(msoFileDialogSaveAs)
        'InitialFileName not InitialDirectory !
        .InitialFileName = strOrdner & "\" & strDatei
        .Title = "Set 1 Band speichern"
        .ButtonName = "Datei speichern"
        .InitialView = msoFileDialogViewDetails
        For j = 1 To .Filters.Count
            If UCase$(.Filters(j).Extensions) Like "*.PDF*" Then
                .FilterIndex = j: Exit For
            End If
        Next j
        intErgebnis = .Show
        If intErgebnis > 0 Then
            strDatei = IIf(LCase(Right(.SelectedItems(1), 4)) > ".pdf", .SelectedItems(1) & ".pdf", .SelectedItems(1))
            ThisWorkbook.Worksheets(1).ExportAsFixedFormat xlTypePDF, strDatei
            MsgBox strDatei
        End If
    End With
End Sub
Resultiert zu

da ergänzt wird

und somit:

nach .Show ist Ende im Hook.
GetSaveFile wär vernünftiger und Inputbox auch, aber ich entscheide nicht
hth
Ulf

Anzeige

178 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige