Anzeige
Archiv - Navigation
1444to1448
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
Inhaltsverzeichnis

Dialogfeld Speichern unter

Dialogfeld Speichern unter
07.09.2015 09:28:41
Brandt
Hallo Zusammen
Ich möchte gerne folgendes realisieren.
Habe als Beispiel auf dem Laufwerk D:\Temp mehrere unterschiedliche Ordner mit unterschiedlicher Ordnerbenennung wie
0X001_Ordner1
0X002_OrdnerABC
0X003_Ordner XYZ
In diesen Ordnern gibt es jeweils immer den gleichen Unterordner.
Beispiel: 0X001_Ordner1\Unterordner
Jetzt möchte ich aus einem Excel sheet in einer Zelle z. B 0X001 eingeben und über ein Command Button folgende Befehle ausführen um den Pfad in einem Dialogfeld „Speichern unter“ (Application.GetSaveAsFilename) einzutragen.
Suche im Laufwerk D:\Temp den Ordner aus der Zelle. In diesem Fall 0X001. Es sollte aber nur nach den ersten fünf Digits gesucht werden.
Wenn der Ordner vorhanden ist nutze den kompletten Pfad und trage noch das Unterverzeichnis mit dazu (D:\Temp\0X001_Ordner1\Unterordner).Öffne das Dialogfeld „Speichern unter“ (Application.GetSaveAsFilename) mit dem Dateipfad. Vergebe den Vorschlagsnamen Testdatei.
Wenn der Ordner nicht vorhanden ist dann öffne eine Msgbox „ Der Ordner bzw. Laufwerk ist nicht vorhanden“ ->Abbruch
Konnte folgende Quellcode bis dato schreiben:
Sub Speichern_unter()
'Deklaration der Variablen
Dim Dateiname$
'Verzeichnis
ChDir ("D:\Temp))
'Laufwerkspfad
ChDrive "D"
'Dateinamen festlegen
Dateiname = ("Testdatei")
'Dialogfeld mit vorgegebenen Dateinamen und Pfad
AusgewählterName = Application.GetSaveAsFilename(Dateiname, "Excel-Arbeitsmappe (*.xlsm), *.xls" _
_
)
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
So?
07.09.2015 12:59:20
Michael
Hi Brandt,
versuch's mal so:
Sub Speichern_unter()
'Deklaration der Variablen
Dim Ordner$, Pfad$, dirPfad$
Dim wahlPfad
' wenn, dann bitte *alle*
Ordner = Range("C2")     ' das steht eben 0x001
Pfad = "C:\Dein_Ordner\"
dirPfad = Dir(Pfad & Ordner & "*", vbDirectory)
If Len(dirPfad) > 0 Then
wahlPfad = Application.GetSaveAsFilename(Pfad & dirPfad, _
"Excel-Arbeitsmappe (*.xls*), *.xls*")
MsgBox wahlPfad          ' Abbruch gedrückt? usw.
' weitere Aktionen
Else
MsgBox "Ordner " & Pfad & " nicht gefunden."
Exit Sub
End If
End Sub
Du mußt natürlich den Pfad auf Deine Bedürfnisse anpassen.
Überleg Dir bitte, was Du denn haben willst: .xlsm ODER .xls oder (wie oben) .xls*
Schöne Grüße,
Michael

Anzeige
AW: So?
07.09.2015 14:57:30
Brandt
Hallo Michael
Danke vorab für den Quellcode.
Habe die Endung auf xls abgeändert.
Was leider noch nicht furnktioniert ist, dass wenn ich in einer Zelle (C3 wie in Deinem Beispiel) einen Eintrag mache, nach dem Prüfen des Vorhandenseins des Ordners den Ordnerpfad + den Unterordner im Dialogfeld übernimmt.
Das wäre z.B. in meinem Fall D:\Temp\0X001_Ordner1\Unterordner\

ach so, übersehen...
07.09.2015 16:18:28
Michael
Hi Brandt,
dann mal so:
Sub Speichern_unter()
'Deklaration der Variablen
Dim Ordner$, Pfad$, dirPfad$, untPfad$
Dim wahlPfad
Const UnterOrdner = "\Unterordner\"
Ordner = Range("C2")     ' das steht eben 0x001
Pfad = "C:\Dein_Ordner\"
dirPfad = Dir(Pfad & Ordner & "*", vbDirectory)
If Len(dirPfad) > 0 Then
untPfad = Dir(Pfad & dirPfad & UnterOrdner, vbDirectory)
Else
MsgBox "Ordner " & Pfad & dirPfad & UnterOrdner & " nicht gefunden."
Exit Sub
End If
If Len(untPfad) > 0 Then
wahlPfad = Application.GetSaveAsFilename _
(Pfad & dirPfad & UnterOrdner, _
"Excel-Arbeitsmappe (*.xls), *.xls")
MsgBox wahlPfad          ' Abbruch gedrückt? usw.
' weitere Aktionen
Else
MsgBox "Ordner " & Pfad & " nicht gefunden."
Exit Sub
End If
End Sub
Ich glaube, bei der ersten Version hat ohnehin ein "\" am Schluß gefehlt.
Schöne Grüße,
Michael

Anzeige
AW: ach so, übersehen...
07.09.2015 16:46:08
Brandt
Genial Danke!!!

gerne, vielen Dank für die Rückmeldung owT
07.09.2015 17:04:07
Michael

AW: gerne, vielen Dank für die Rückmeldung owT
08.09.2015 09:45:15
Brandt
Eine Frage hätte ich noch!!
Habe mir soweit alles gestrickt und funktioniert gut.
Hatte vorher in meinem Quellcode den Dateinamen definiert.
AusgewählterName = Application.GetSaveAsFilename(Dateiname
Wie bekomme ich denn das hin das ich in Deinem Quellcode sagen könnte
wahlPfad = Application.GetSaveAsFilename _
(Dateiname & Pfad & dirPfad & UnterOrdner, _
"Excel-Arbeitsmappe (*.xls), *.xls")

AW: gerne, vielen Dank für die Rückmeldung owT
08.09.2015 12:36:09
Brandt
Habe es hinbekommen!!!
Thread geschlossen

ok, danke, "Thread geschlossen" owT
09.09.2015 14:37:51
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige