Clever-Excel-Forum

Normale Version: [VBA] Suchfeld im SaveAs-FileDialog automatisch füllen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi,

ein Kollege hat das Abspeichern eines Blatts in einer neuen Mappe mit SaveAs programmiert.

Code:
...
  With Application.FileDialog(msoFileDialogSaveAs)
     .InitialFileName = Application.DefaultFilePath & "\" & "ELC " & Cells(8, 6) & " " & Cells(9, 6)
     .Title = "Wählen sie bitte einen Speicherort für die Sicherung aus"
     .Show
     Dim wb As Workbook
     Set wb = Workbooks.Add
     ThisWorkbook.Sheets("Protokoll D").Copy Before:=wb.Sheets(1)
     If .SelectedItems.Count = 1 Then wb.SaveAs .InitialFileName
  End With
...

Nun geht der File-Dialog auf und er muß manuell in dem Suchfenster die Seriennummer aus Cells(9, 6) eingeben und danach suchen, dann öffnet er den entsprechenden Ordner und speichert dort die Datei ab.

Der Speicher-Ort liegt also in einem Unterverzeichnis eines Unterverzeichnisses des "Application.DefaultFilePath".

Kann die manuelle Eingabe in das Suchfeld des File-Dialogs automatisiert werden?
Hi Ralph,

ich könnte mir vorstellen den .InitialFileName außerhalb des Dialogs zusammenzusetzen und eine Messagebox mit OK/CANCEl oder so aufzurufen, in der der Filename steht und man nur bestätigen muß. Ist natürlich fehleranfällig, weil viele nicht richtig lesen.

 

      

Code:
InitialFileName = Application.DefaultFilePath & "\" & "ELC " & Cells(8, 6) & " " & Cells(9, 6)

     If MsgBox(InitialFileName & Chr(10) & "ist das korrekt", vbYesNo, "Datei wird gespeichert unter") = vbYes Then
     

        Dim wb As Workbook

    Set wb = Workbooks.Add

       ThisWorkbook.Sheets("Protokoll D").Copy Before:=wb.Sheets(1)

      wb.SaveAs .InitialFileName
      else
      exit sub
   End if
Hi,

das Problem ist, daß vom DefaultFilePath ausgehend der Unterordner Cells(9, 6) gesucht werden muß.
Zwischen DefaultFilePath und diesem Unterordner liegen aber noch ca. 2-3 Zwischenebenen an Ordnern.

Dieser Ordner wird gefunden, indem der Wert von Cells(9, 6) manuell in das Suchfeld (roter Pfeil) eingetragen wird.
Diese Eintragung soll automatisch erfolgen, gibt es für den FileDialog kein ".Suchfeld = Cells(9, 6).Value" oder so?
[attachment=19244]
Hi,

und was passiert da:


Zitat:.InitialFileName = Application.DefaultFilePath & "\" & "ELC " & Cells(8, 6) & " " & Cells(9, 6)
Hi,

es wird der Filedialog mit dem Application.DefaultFilePath aufgerufen und in dem Namensfenster steht dann der zusammengesetzte Dateiname drin.

Wenn dann die Seriennummer (Wert aus Cells(9, 6)) in das Suchfeld eigegeben und auf die Lupe gedrückt wird, kann der Speicherordner geöffnet werden und mit Klick auf "ok" wird die Datei dann abgespeichert.
Hi,

Dir ist aber schon aufgefallen, dass es bei mir keinen Filedialog gibt?
Nach meinem Verständnis von Deinem Code ist der komplette Pfad mit Dateiname in InitialFileName. Mein Code zeigt nur eine Messagebox, in der das steht und fragt, ob das ok ist und speichert das dann genauso ab.

Ich kann es allerdings momentan nicht testen.
Hi Edgar,

dies ist der komplette Pfad zu dem Ordner:

K:\Reklamationen_Reparaturen\EVG\Rekl_Rep2018\IST\2340515_8A\NE22D-400-210 00270511

Grün ist der bekannte DefaultFilePath
Rot ist der unbekannte Teil
Blau ist die Seriennummer, die manuell im Suchfeld eingegeben und gesucht wird. Dadurch finde ich (nee, nicht ich, der Kollege) dann den roten Teil.

Der Dateiname ist dann ebenfalls:
"NE22D-400-210 00270511.xlsx"