Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
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

Ordner erstellen

Ordner erstellen
02.04.2018 12:41:14
Volker
Hallo zusammen und frohe Ostern,
ich kämpfe mit folgendem Problem:
Aus einer Datei soll aus einem Tabellenblatt eine neue Arbeitsmappe generiert werden.
Es soll jetzt so sein, das der neue Ordner den Namen aus Zelle B1 bekommt die Arbeitsmappe jedoch den Namen aus Zelle C1 bekommt.
Ich stelle mir vor das der Ordner (Name aus Zelle B1) in einem bestimmten Pfad abgelegt wird "C\OrdnerA\OrdnerB\". Die Arbeitsmappe (Name aus Zelle C1) soll sich in diesem Ordner befinden. Es müsste eine Prüfung stattfinden, ob der Ordner mit dem Namen schon vorhanden ist, da mit der Zeit weitere Arbeitsmappen in diesem Ordner abgelegt werden sollen.
Ich hoffe ich habe mich halbwegs verständlich ausgedrückt.
Ich habe die Recherche schon bemüht, aber nichts brauchbares für mich gefunden (oder übersehen)
Ich hoffe jemand hat einen Tip für mich.
Danke und
Gruß Volker

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordner erstellen Beispieldatei
02.04.2018 13:11:04
Peter(silie)
Hallo,
hiermit kannst du Prüfen ob eine Datei oder ein Ordner existiert:
Sub test()
Debug.Print fpExists("C:\Windows")
Debug.Print fpExists("C:\Windows\test.txt")
End Sub
Private Function fpExists(ByVal pName As String) As Boolean
fpExists = Dir(pName, vbDirectory)  vbNullString
End Function

AW: Ordner erstellen Beispieldatei
02.04.2018 13:17:03
Volker
Hallo Peter(silie),
Danke für die Antwort, damit ist mir -zum Teil- gedient. Viel mehr interessierte mich der Code zum speichern der Datei bzw. erstellen des Ordners.
Danke und Gruß
Volker
Anzeige
AW: Ordner erstellen Beispieldatei
02.04.2018 13:35:16
Hajo_Zi
Hallo Volker,
Ordner in der Art
strDesktopPath = WSHShell.SpecialFolders.Item("Desktop")
MkDir strDesktopPath & "\" & strAblage
Speichern benutze den Makrorecorder.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: Ordner erstellen Beispieldatei
02.04.2018 13:40:30
Volker
Danke für den Knochen.
AW: Ordner erstellen Beispieldatei
02.04.2018 13:42:16
Hajo_Zi
warum offen?
Den Makrorecorder müsstest Du ja bedienen können, wenn Du Dich schon mit VBA befasst.
Gruß Hajo
AW: Ordner erstellen Beispieldatei
02.04.2018 13:46:29
Volker
Sehr geehrter Herr,
Ich hatte Ihnen ja schonmal etwas zu Ihrer Arroganz geschrieben.
Ebeso hat ein anderer Forumsteilnehmer Ihnen etwas zu Ihren Bemerkungen geschrieben.
Anzeige
AW: Ordner erstellen Beispieldatei
02.04.2018 13:50:14
Hajo_Zi
was ist an einer Lösung "Arroganz"
Wir können das hier ruhig weiter treiben, ich sehe immer noch keinen Grund für offen.
Gruß Hajo
AW: Ordner erstellen Beispieldatei
02.04.2018 13:55:36
Volker
Schön wäre Ihr Lieblingssatz:
Ich bin dann raus.
AW: Ordner erstellen Beispieldatei
02.04.2018 13:55:57
Hajo_Zi
nein
AW: Ordner erstellen Beispieldatei
02.04.2018 14:03:44
Volker
Also ist:
>Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss. Ist ja egal treibt die Beitragszahl auch in die Höhe.
AW: Ordner erstellen Beispieldatei
02.04.2018 14:04:22
Hajo_Zi
es fehlt immer noch was offen ist.
Gruß Hajo
Anzeige
AW: Ordner erstellen Beispieldatei
02.04.2018 14:12:34
Volker
+1
AW: Ordner erstellen Beispieldatei
02.04.2018 14:17:57
Hajo_Zi
kannst Du das mal übersetzen, mir ist nicht klar wo +1
Gruß Hajo
AW: Ordner erstellen Beispieldatei
02.04.2018 15:37:16
Klexy
Ich glaube, Volker hat das etwas knapp formulierte "offen" nicht verstanden.
Oder hat nicht verstanden, dass er sagen muss, was er nicht verstanden hat an der Lösung.
Kann ja mal passieren nach einer fetten Ostergans.
AW: Ordner erstellen Beispieldatei
02.04.2018 14:04:23
Hajo_Zi
es fehlt immer noch was offen ist.
Gruß Hajo
AW: Ordner erstellen Beispieldatei
02.04.2018 14:52:25
Robert
Hallo Volker,
nachstehender Code erstellt den gewünschten Ordner (falls er noch nicht existiert) und speichert das aktuelle Tabellenblatt als eigene Datei in diesem Ordner.
Deine Beispieldatei ist im XLS-Format. Das Makro speichert die neue Datei ebenfalls im xls-Format. Falls Du sie aber lieber in den neuen Formaten (xlsx oder xlsm) speichern willst, musst Du nur die entsprechenden Zeilen in dem Makro aktivieren (Hochkomma (') setzen bzw. entfernen).
Sub DateiErstellen()
Dim strPfad As String   'Start-Pfad
Dim strOrdner As String 'Ordnername
Dim strDatei As String  'Dateiname
strPfad = "C\OrdnerA\OrdnerB\"
strOrdner = Range("B1")
strDatei = Range("C1")
If Dir(strPfad & strOrdner, vbDirectory) = "" Then MkDir strPfad & strOrdner
ActiveSheet.Copy
'speichern im *.xls-Format (altes Excel-Format):
ActiveWorkbook.SaveAs Filename:=strPfad & strOrdner & "\" & strDatei & ".xls", FileFormat:= _
xlExcel8
'speichern im *.xlsm-Format (mit Makros):
ActiveWorkbook.SaveAs Filename:=strPfad & strOrdner & "\" & strDatei & ".xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled
'speichern im *.xlsx-Format (ohne Makros):
'Application.DisplayAlerts = False
'ActiveWorkbook.SaveAs Filename:=strPfad & strOrdner & "\" & strDatei & ".xlsx", FileFormat:= _
xlOpenXMLWorkbook
'Application.DisplayAlerts = True
End Sub
Gruß
Robert
Anzeige
Alternative
02.04.2018 14:02:08
RPP63
Moin!
Nutze eine winzige API-Funktion, dann brauchst Du nicht zu prüfen, ob der Ordner bereits vorhanden ist.
Außerdem ist - anders als mit MkDir() - auch die sofortige Erstellung eines Ordnerbaums möglich:
Option Explicit
Declare Function MakePath& Lib "imagehlp.dll" Alias _
"MakeSureDirectoryPathExists" (ByVal sPath$)
Sub CreatePath_()
Dim strPath As String
strPath = Environ("UserProfile") & "\Desktop\Test\1\2\"
MakePath strPath
End Sub
Wenn in B1 jetzt der Pfad mit abschließendem Backslash steht, reicht einfach:
MakePath Tabelle1.Range("B1")
ActiveWorkbook.SaveAs Tabelle1.Range("B1") & Tabelle1.Range("C1"), 52

bei einer Datei ohne Makros nimmst Du 51 statt 52
Gruß Ralf
Anzeige
Es gibt also nicht nur...
02.04.2018 14:27:29
Volker
quengelnde Kinder in diesem Forum, sondern auch echte brauchbare und verständliche Hilfe, diese wird auch von den allermeisten gerne gegeben. Es gibt natürlich auch welche, die sich anscheinend eine ganze Menge auf ihr Wissen einbilden und versuchen der Forumsmeister zu spielen. Sind in meinen Augen ganz arme Lichter.
Danke an Ralf, damit komme ich weiter.
AW: Es gibt also nicht nur...
02.04.2018 14:54:42
Werner
Hallo Volker,
hier deine Datei zurück mit entsprechendem Makro.
Datei wird auf dem Desktop - Neu - Module - Ordnername aus C1 - Dateiname aus B1 gespeichert.
Achtung: Ist eine entsprechende Datei bereits vorhanden so wird die ohne Nachfrage überschrieben.
Die gespeicherte Datei (ist ja offen) wird geschlossen und das kopierte Blatt gelöscht.
Hinweis: Der Code zum Prüfen und Anlegen des Ordners ist von Rudi Maintaire, hier aus dem Forum.
https://www.herber.de/bbs/user/120807.xlsm
Gruß Werner
Anzeige
AW: Es gibt also nicht nur...
02.04.2018 15:08:48
Volker
Hallo Werner,
auch Dir besten Dank, funktioniert
Gruß
Volker
Gerne u. Danke für die Rückmeldung. o.w.T.
02.04.2018 15:31:25
Werner
AW: Ordner erstellen
02.04.2018 16:29:29
snb
1. Verzichte auf Leerzeichen in Foldernames/filenames
2. Verzichte auf Punkten in Foldernames/Filenames
Viel zu viel Code für etwas einfaches:
Sub M_snb()
Application.DisplayAlerts = False
c00 = CreateObject("wscript.shell").specialfolders(4)
With Tabelle1
c01 = "Neu\Module\" & Replace([B1], " ", "_")
c02 = "\" & Replace(Replace([c1], ".", "_"), " ", "_") & ".xlsx"
CreateObject("shell.application").Namespace(c00).NewFolder c01
.Copy
ActiveWorkbook.SaveAs c00 & "\" & c01 & c02
ActiveWorkbook.Close 0
End With
End Sub

Anzeige
AW: Ordner erstellen
02.04.2018 18:45:25
Volker
Danke auch Dir!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige