Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
300to304
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
300to304
300to304
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

speichern unter durch VBA nach Zellbezug

speichern unter durch VBA nach Zellbezug
01.09.2003 17:26:34
udo
Liebe EXCEListen,

ich habe folgendes Problemchen in einem Makro welches mir meine Datei
dann unter einem Namen speichern soll, der als Zellwert in einer Zelle steht.
z.B. in A1

Zunächst noch als Anmerkung, das Makro funktioniert wunderbar, wenn der
Zielpfad ( z.B.: C:\Testdateien\Test1 ) bereits existiert, dann gibts kein Problem.

Der Fehler taucht erst auf wenn der Ordner X noch gar nicht existiert, und ich also dann versuche da zu Speichern wo ganz klar dieser Ordner noch nicht existiert .
Jetzt hatte ich gedacht / versucht in diese Zelle ( A1 ) mal angenommen einen
Pfad an zu geben der wie gesagt noch nicht existiert, und bin eigentlich davon ausgegangen, das mir das Makro dann dort die entsprechenden Ordner einrichtet,
Anhand dieser Zieldefinition aus der Zelle A1.

Funkt so scheinbar nicht , kann mir Jemand von Euch hier bitte kurz einen Tipp geben wie man das so hinbekommt, das er dann den Ordner ebenfalls entwirft, sollte dieser noch nicht existieren.

z.B.: C:\Dateien\EXCEL\Test\Nummer1 oder so ähnlich

Ziel des ganzen sollte sein durch das Benennen der Zelle sich das Speichern zu erleichtern, und nicht jedesmal noch vorher Ordner zu entwerfen / platzieren.

Ich wäre euch sehr sehr dankbar wenn ihr mir kurz helfen könntet, Vielen lieben Dank im Voraus
Gruß udo
Ich hab hier mal noch mein Makro , wie s bisher aussieht:


Sub speichern_unter()
Dim Mldg As Byte
Mldg = MsgBox(" Speichern unter angezeigtem  Zielpfad  &  Namen ?        ", vbYesNo + vbQuestion, "", "", 0)
If Mldg = 6 Then                              ' ja es soll gelöscht werden
ThisWorkbook.SaveAs Range("AZ182").Value
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
MakeSureDirectoryPathExists - Funktion
01.09.2003 17:39:37
sergiesam
Hi,

es gibt einen API-Call, der sicherstellt, dass auch geschachtelte Ordner vorher angelegt werden:
MakeSureDirectoryPathExists

Zur Funktion: Schreib mal in ein Neues Modul:

Public Declare

Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long  'alles in eine Zeile, der editor verwendet hier 2 Zeilen
Public 

Function ap_LastInStr(strSearched As String, strSought As String) As Integer
Dim intCurrVal As Integer, intLastPosition As Integer
intCurrVal = InStr(strSearched, strSought)
Do Until intCurrVal = 0
intLastPosition = intCurrVal
intCurrVal = InStr(intLastPosition + 1, strSearched, strSought)
Loop
ap_LastInStr = intLastPosition
End Function



Sub test()
Dim datei As String
Dim pfad As String
datei = "C:\Test2\test3\test4\text.xls"
pfad = Left(datei, ap_LastInStr(datei, "\"))
MakeSureDirectoryPathExists pfad
End Sub


Ap_LastInStr sorgt dafür, dass nur der Pfad ohne Datei geprüft wird.
In deinem Beispiel wäre es also:

Sub speichern_unter()
Dim Mldg As Byte
Mldg = MsgBox(" Speichern unter angezeigtem  Zielpfad  &  Namen ?        ", vbYesNo + vbQuestion, "", "", 0)
If Mldg = 6 Then                              ' ja es soll gelöscht werden
dim pfad as string
pfad = Left(Range("AZ182"), ap_LastInStr(Range("AZ182"),"\"))
if not MakeSureDirectoryPathExists(pfad) then
msgbox "Die Ordner konnten nicht angelegt werden!"
exit sub
end if
ThisWorkbook.SaveAs Range("AZ182").Value
End Sub

Viel Spaß,
Sam
Anzeige
Super, perfekt ! Vielen lieben Dank Sam, ...
01.09.2003 17:53:07
udo
... hast mir sehr geholfen .

Wenn du möchtest schicke ich dir nen super Vokabeltrainer als kleines Dankeschön rüber, den ich mal selbst zu meiner Schulzeit entworfen hatte ( Deutsch / Engl. Oberstufe , ca. 2MB gezippt).
Den nutzen mitlerweile recht viele Leute ...

Vielen Dank nochmal, kannst mich unter udo-de@web.de anposten ;-)

Gruß udo

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige