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

Datei automatisch verschieben

Datei automatisch verschieben
03.05.2021 15:01:24
Andreas
Hi zusammen,
habe eine Vorlagedatei, diese ist in dem Verzeichnis
C:\Users\andreas.\Desktop\Verschieben Test
gespeichert.
Diese Datei wird dann geöffnet und unter neuem Namen abgespeichert und in
C:\Users\andreas\Desktop\Verschieben Test\Auftragserfassung
abgelegt.
Das passiert automatisch mit meiner VBA1, (unten)
Habe in diesem Verzeichnis noch 4 Stationen, in die das Dokument automatisch verschoben wird,
sobald die Arbeitsvorgänge auf Erledigt gesetzt werden.
Außerdem gibt es noch die VBA2, die mir einen Ordner in dem Verzeichnis
C:\Users\andreas\Desktop\Verschieben Test\Versendet
erstellt. Der Ordnername, wird automatisch vergeben und setzt sich aus den Feldern A7-A9 zusammen.
Mein Ziel ist es, dass die Datei sobald der letzte Arbeitsschritt auf Erledigt gesetzt wird, in den Ordner verschoben wird,
der am Anfang dafür auch erstellt wurde.
Gerne kann auch der Dateiname automatisch aus diesen 3 Feldern erzeugt werden, wenn das dann nachher einfacher ist.
Hier meine Datei: https://www.herber.de/bbs/user/145949.xlsm
Vielen Dank vorab für eure Hilfe
Gruß Andreas
VBA1:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Pfad As String, Von As String, Nach As String
Dim V1 As String, V2 As String, V3 As String, V4 As String
Dim Z1 As Integer, RNG As Range, Aktion As String, Wb As Workbook
Set Wb = ThisWorkbook
Set RNG = Range("C:F")
Z1 = 6
Aktion = "Erledigt"
Pfad = "C:\Users\andreas\Desktop\Verschieben Test\"               'inkl. \ am Ende
V1 = "Auftragserfassung"
V2 = "Versandbereit"
V3 = "Versendet"
V4 = "Abgeschlossen"
If Target.Row = Z1 Then
If Not Intersect(RNG, Target) Is Nothing Then
If Trim(Target) = Aktion Then
Select Case Trim(Target.Offset(-1, 0))
Case V1
Nach = V1
Case V2
Von = V1
Nach = V2
Case V3
Von = V2
Nach = V3
Case V4
Von = V3
Nach = V4
End Select
Wb.SaveAs Pfad & Nach & "\" & Wb.Name
If Dir(Pfad & Von & "\" & Wb.Name)  "" Then
Kill Pfad & Von & "\" & Wb.Name
End If
End If
End If
End If
End Sub
VBA2:
Sub OrdnerErstellen()
MkDir "X:\Vertrieb\Versendet\" & Range("A7") & "-" & Range("A8") & "_" & Range("A9")
End Sub

37
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei automatisch verschieben
03.05.2021 15:40:18
Herbert_Grom
Hallo Andreas,
wenn du eine Beispieldatei hochlädst, brauchst du nicht auch noch die Makros zu posten. Du schreibst: Wenn der Auftrag dann versendet wurde und auf Erledigt gesetzt wird, soll die Datei in den Ordner Erledigt verschoben werden.. Meinst du da den Ordner "Abgeschlossen"?
Servus
AW: Datei automatisch verschieben
03.05.2021 16:08:33
Andreas
Hi Herbert,
wollte es möglichst gut erklären, werde deinen Ratschlag aber für das nächste Mal berücksichtigen.
Die Datei erzeugt ja durch VBA2 wenn das Makro ausgeführt wird einen Ordner, deren Name durch die Datei selbst vergeben wird (A7-A9).
Der Ordner landet dann hier X:\Vertrieb\Versendet\
das endgültige Verzeichnis heißt dann in meinem Beispiel:
X:\Vertrieb\Versendet\Name1-Name2_Name3
Dahin soll dann im letzten Schritt auch die Datei verschoben werden.
Gruß Andreas
Anzeige
AW: Datei automatisch verschieben
03.05.2021 16:21:16
Herbert_Grom
soll die endgültige Datei wirklich so heißen: X:\Vertrieb\Versendet\Name1-Name2_Name3 einmal mit "-" und einmal mit "_"?
AW: Datei automatisch verschieben
03.05.2021 16:25:24
Andreas
Hi Herbert,
nein besser ist es wahrscheinlich mit einem Unterstrich an beiden Stellen.
Name 1 - Name 3 sind aktuell ja auch nur Platzhalter.
Mir geht es hauptsächlich darum, dass die Datei, wenn beim letzten Arbeitsschritt auf erledigt gesetzt wird dann eben auch in den extra dafür erstellten Ordner wandert. Dort sollen dann nämlich noch andere Dokumente abgelegt werden, die damit zu tun haben.
Gruß Andreas
AW: Datei automatisch verschieben
03.05.2021 17:07:25
Herbert_Grom
Habe ich das richtig verstanden, dass du die jeweilige Datei von Ordner zu Ordner verschiebst und sie jeweils aus dem Ordner wieder öffnest, in den du sie zuletzt verschoben hast?
Also wenn die Datei, nach der ersten Bearbeitung, in den Ordner "Auftragserfassung" verschoben wurde, wirst du sie beim nächsten Mal aus diesem Ordner öffnen, bearbeiten und dann in den nächsten Ordner verschieben! Und nach der letzten Verarbeitung mit "Versendet", wird sie dann in den neuen Ordner "Name1_Name2_Name3", im Ordner "X:\Vertrieb\Versendet", abgelegt. D. h.: Im Ordner "Versendet" befinden sich dann mehrere Ordner, die den jeweiligen Namen aus den Zellen A7, A8 & A9 haben. Ist das so?
Anzeige
AW: Datei automatisch verschieben
04.05.2021 08:47:33
Andreas
Guten Morgen,
genau so ist es.
Die Datei soll am Ende in dem Verzeichnis landen, das mittels VBA2 ganz an Anfang erstellt wurde.
Wahrscheinlich muss die Datei dafür den selben Namen wie der Ordner haben?
Das wäre auch völlig in Ordnung.
Gruß Andreas
AW: Datei automatisch verschieben
04.05.2021 09:15:54
Herbert_Grom
Und was ist mit "Abgeschlossen"?
AW: Datei automatisch verschieben
04.05.2021 09:20:51
Andreas
Hallo Herbert,
dahin soll dann irgendwann manuell der ganze Ordner verschoben werden, sobald alles endgültig erledigt ist.
Falls es noch irgendwo in meiner VBA steht, kannst du das ignorieren.
Bei den Zwischenstationen bin ich mir sowieso noch nicht so sicher welche es da geben wird, aber die kann ich ja im nachhinein noch hinzufügen oder streichen.
Die Codes dafür stehen ja bereits.
Mir geht es momentan nur darum, dass der letzte Akt des Verschiebens in den extra dafür erzeugten Ordner funktioniert.
Gruß Andreas
Anzeige
AW: Datei automatisch verschieben
05.05.2021 09:05:40
Andreas
Guten Morgen Herbert,
Danke für deinen Lösungsvorschlag.
Der letzte Schritt scheint allerdings nicht zu funktionieren.
Setze ich "Versendet" auf "Erledigt", wird die Datei im Ordner Versendet und nicht im dafür erzeugten Ordner abgelegt.
Außerdem, wird die Datei "unsichtbar"? sobald ein Punkt auf erledigt gesetzt wird. Weiß nicht wie ich es anders Beschreiben soll,
muss aber auf jeden Fall die Datei erst schließen und neu öffnen, damit sie bearbeitet werden kann.
Das ist leider nicht so gut, da es auch sein kann das mehrere Schritte auf einmal erledigt werden können/bzw. bei manchen Dateien manche Punkte nicht benötigt, und somit direkt auf erledigt gesetzt werden können.
Gruß Andreas
Anzeige
AW: Datei automatisch verschieben
05.05.2021 10:33:24
Herbert_Grom
Logisch wird die Datei "unsichtbar", denn du willst sie ja "verschieben" und nicht kopieren! Oder meintest du kopieren?
AW: Datei automatisch verschieben
05.05.2021 10:57:52
Andreas
Hallo Herbert,
nein ich will Sie nicht kopieren.
Aber in meiner Ursprungsdatei, blieb die Datei offen und konnte weiter bearbeitet werden bzw. ich konnte z.B. Schritt 1 und 2 auf Erledigt setzen und die Datei wurde (während sie geöffnet war) in den Ordnern verschoben.
Bei deinem Lösungsvorschlag wird die Datei geschlossen, sobald man einen Punkt auf erledigt setzt.
Das sollte nicht sein.
Gruß Andreas
AW: Datei automatisch verschieben
05.05.2021 11:05:38
Herbert_Grom
Wenn eine Datei "verschoben" wird, dann ist sie im Ordner X weg und in den Ordner Y "verschoben"!!! Soll sie aber im Ordner X noch vorhanden sein, wird die Datei nicht "verschoben", sondern nur "kopiert"!!! Also willst du die Datei nicht "verschieben", sondern "kopieren"!!! Ist das so korrekt?
Um das Schließen der Datei zu verhindern, brauchst du doch nur die Codezeile

ActiveWorkbook.Close False
zu entfernen!
Ich schicke dir gleich noch die neue Datei.
Servus
Anzeige
AW: Datei automatisch verschieben
05.05.2021 12:18:29
Andreas
Hallo Herbert,
nein die Datei soll definitiv verschoben und nicht kopiert werden.
Soll aber solange sie geöffnet ist auch bearbeitet werden können.
"Um das Schließen der Datei zu verhindern, brauchst du doch nur die Codezeile
ActiveWorkbook.Close False
zu entfernen!"
Das hat geklappt, Danke.
Funktioniert jetzt also alles wie es soll, nur das die Datei am Ende im Ordner Versendet landet und nicht im Erzeugten Ordner.
Liegt vielleicht daran, dass der erzeugte Ordner nicht im Ordner Versendet erstellt wird, sondern auf der selben Ordnerebene?
Gruß Andreas
Anzeige
AW: Datei automatisch verschieben
05.05.2021 13:01:02
Andreas
Danke Herbert, wollte es gleich versuchen, aber das Makro lässt sich gar nicht starten?
Also hab ein Schaltfläche erstellt und wollte das Makro zuweisen, da wird aber keins aufgeführt.
Wenn ich Alt+F11 drücke, steht da auch kein Makro zur Auswahl.
Gruß Andreas
AW: Datei automatisch verschieben
05.05.2021 13:06:20
Herbert_Grom
Hallo Andreas,
du brauchst keine Schaltfläche! Ändere einfach auf „Erledigt“ und das Makro startet!
Servus
AW: Datei automatisch verschieben
05.05.2021 13:26:22
Andreas
Hallo Herbert,
hab ich versucht, dann kommt eine Fehlermeldung, dass der Pfad nicht gefunden wird.
Hab mal Fett markiert, wo anscheinend der Fehler liegen soll:
'* die VBA1
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sPfad$, sVon$, sNach$, sV1$, sV2$, sV3$, sV5$, Wkb As Workbook, sZielPfad$, sDirName$
'* Basis-Pfad bestimmen
sPfad = "C:\Users\andreas.senger\Desktop\Verschieben Test\Vertrieb\"
'* falls der Pfad noch nicht vorhanden ist, wird er hier erstellt
If Dir(sPfad, vbDirectory) = "" Then MkDir sPfad
'* neuen Ordner aus A7 & A8 & A9 erstellen
sV5 = [A7] & "_" & [A8] & "_" & [A9]
sDirName = sPfad & "Versendet\" & sV5 & "\"
If Dir(sDirName, vbDirectory) = "" Then VBA.MkDir sDirName
Gruß Andreas
Anzeige
AW: Datei automatisch verschieben
05.05.2021 14:59:41
Herbert_Grom
Hast du das mit meiner Datei getestet, oder hast du es mit deiner Originaldatei getestet?
AW: Datei automatisch verschieben
05.05.2021 15:08:34
Andreas
Mit deiner Datei, in die Originaldatei brauch ich es ja erst einzufügen wenn es geht.
Gruß Andreas
AW: Datei automatisch verschieben
05.05.2021 15:24:35
Andreas
Hallo Herbert,
hatte dir da wohl einen falschen Dateipfad gegeben.
Hab den jetzt hier angepasst:
sPfad = "C:\Users\andreas.senger\Desktop\Verschieben Test\"
Dann kommt aber leider weiter unten der nächste Fehler: Laufzeitfehler 1004
Microsoft Excel kann auf die Datei 'C:\users\andreas.senger\desktop\verschieben test\versendet\Auftragserfassung\ae0f4360 nicht zugreifen.
Aber da stimmt doch was nicht oder?
Diesen Pfad gibt es ja wirklich nicht.
Versendet und Auftragserfassung sind doch 2 separate Ordner in der selben Ebene?
Der Fehler bezieht sich auf die Vorletzte Zeile
'* die geöffnete Datei wird unter neuem Namen in das nächste, oder das neu erstellte, kopiert!
Wkb.SaveAs sPfad & "Versendet\" & sNach & "\" & Wkb.Name
Hoffe du hast eine Idee
Vielen Dank vorab
Gruß Andreas
Anzeige
AW: Datei automatisch verschieben
05.05.2021 15:31:23
Herbert_Grom
Hallo Andreas,
in deinem ersten Post schreibst du folgendes:
ich habe eine Vorlagedatei, diese ist in dem Verzeichnis C:\Users\andreas.\Desktop\Verschieben Test gespeichert. Diese Datei wird dann geöffnet und unter neuem Namen abgespeichert und in C:\Users\andreas\Desktop\Verschieben Test\Auftragserfassung abgelegt.
Deine "Vorlagedatei", ist das eine "xltm"-Datei?
Diese Datei wird dann ... unter neuem Namen abgespeichert
Unter welchem Namen? Vergibst du den manuell?
Servus
AW: Datei automatisch verschieben
05.05.2021 15:39:11
Andreas
Hallo Herbert,
meine Vorlage ist eine xlsm
Der Name wird manuell vergeben ja, kann aber auch gerne mit VBA vergeben werden.
Der Name kann auch gleich sein wie der Ordner, der erzeugt wird und wo die Datei dann ganz am Ende auch landen soll.
Gruß Andreas
Anzeige
AW: Datei automatisch verschieben
05.05.2021 15:53:37
Herbert_Grom
Dann ist es auch keine "Vorlagedatei", sondern eine ganz normale Excel-Datei als Basisdatei für deine Aufgabe!
Wie heißt denn diese "Basisdatei", damit ich das Ganze mal Schritt für Schritt nachvollziehen kann?
Und du hast den Ordner "Verschieben Test", und alle anderen Ordner darunter, wirklich auf deinem Desktop liegen?
AW: Datei automatisch verschieben
05.05.2021 16:31:43
Andreas
Hallo Herbert,
aktuell liegt alles auf meinem Desktop, da kann ich am besten Sachen ausprobieren ohne andere zu stören.
"Vorlage" hab ich es genannt, weil da schon gewissen Daten eingetragen sind, ist aber eine Excelmappe mit Makros unter Eigenschaften steht .xlsm.
Mit der Mappe werden Dokumente erstellt, und sie durchläuft mehrere Aufgaben, bevor sie abgelegt werden soll.
1.Die "Vorlage" wird geöffnet und die Auftragsdaten werden eingegeben.
2. Die Mappe wird unter einem neuen Namen gespeichert. Der Name kann auch gerne über Zellen aus der Mappe erzeugt werden.
Im gleichen Schritt soll dazu ein neuer Ordner im Verzeichnis C:\Users\andreas.senger\Desktop\Verschieben Test\Abgeschlossen
erstellt werden, gerne mit dem gleichen Namen wie die Datei.
!Wichtig ist, dass die Vorlagedatei nicht geändert wird und in C:\Users\andreas.senger\Desktop\Verschieben Test\ liegen bleibt, für den nächsten Auftrag.
3. Die Mappe soll dann eben über die Abfrage in den Ordner unter
C:\Users\andreas.senger\Desktop\Verschieben Test\
Auftragserfassung
Versendet
(Diese Ordner werde ich später noch umbenennen müssen und evtl. noch eine oder 2 Stationen einbauen)
wandern und am Ende in C:\Users\andreas.senger\Desktop\Verschieben Test\Abgeschlossen\
in dem dort dann in Schritt 1 erzeugten Ordner landen.
Hoffe dass ich das einigermaßen logisch erklären konnte.
Möchte zwischendurch schonmal Danke sagen für deine Mühe und wünsch einen schönen Abend.
Gruß Andreas
AW: Datei automatisch verschieben
05.05.2021 16:03:09
Herbert_Grom
jetzt sehe ich gerade, dass du in deiner ursprünglichen VBA2 folgendes geschrieben hast:

Sub OrdnerErstellen()
MkDir "X:\Vertrieb\Versendet\" & Range("A7") & "-" & Range("A8") & "_" & Range("A9")
End Sub
In deinem letzten Post steht da aber nix mehr von "X:\Vertrieb\Versendet\"
Also, wohin sollen die Dateien in den einzelnen Schritten? Sollen sie jetzt nach "X:\Vertrieb\Versendet\" oder nach "C:\Users\andreas.\Desktop\Verschieben Test\Versendet"?
AW: Datei automatisch verschieben
05.05.2021 16:33:15
Andreas
Hallo Herbert,
erstmal dahin:
"C:\Users\andreas.\Desktop\Verschieben Test\Versendet"
Die Pfade kann ich ja später umschreiben, sobald alles funktioniert.
Gruß Andreas
AW: Datei automatisch verschieben
05.05.2021 16:53:42
Herbert_Grom
Hallo Andreas,
mir reicht es jetzt! Entweder gibst du mir die Original-Pfade, in die du dann "später" die Dateien legen willst, oder ich bin raus, denn Erfahrungsgemäß funktioniert es dann doch nicht mit der "Umschreibung", weil die erforderlichen VBA-Kenntnisse dazu fehlen! Und dann kommt es doch wieder auf meinen Tisch und ich habe die doppelte Arbeit!
Also, ganz exakt: Was liegt wann wo?
Servus
AW: Datei automatisch verschieben
06.05.2021 09:10:23
Andreas
Hallo Herbert,
sorry, wollte dich nicht verärgern. Dann hab ich jetzt mal die Ordner im Verzeichnis erstellt.
Da kommt es dann hin:
X:\Vertrieb\Beratex\Logistik\Versandaufträge 2019-2021\2021
Das sind die Ordner:
X:\Vertrieb\Beratex\Logistik\Versandaufträge 2019-2021\2021\Auftragserfassung
X:\Vertrieb\Beratex\Logistik\Versandaufträge 2019-2021\2021\Versendet
Im folgenden Verzeichnis, sollen dann die Ordner erstellt werden und die Dateien am Ende landen:
X:\Vertrieb\Beratex\Logistik\Versandaufträge 2019-2021\2021\Erledigt
Gruß Andreas
AW: Datei automatisch verschieben
06.05.2021 09:22:31
Herbert_Grom
Na also, geht doch! ;o)=) Ich hoffe du verstehst mich auch, denn es macht keinen Spaß, immer im "Nebel" zu programmieren und hinterher ist doch alles anders. Ich mache mich nun daran und melde mich, wenn ich fertig bin.
Servus
AW: Datei automatisch verschieben
06.05.2021 09:23:43
Andreas
Alles gut Herbert, bin ja froh das du mir hilfst : )
AW: Datei automatisch verschieben
06.05.2021 09:36:41
Herbert_Grom
Jetzt war ich schon wieder zu euphorisch! Du schreibst:
Da kommt es dann hin: X:\Vertrieb\Beratex\Logistik\Versandaufträge 2019-2021\2021
WAS kommt da hin?
Und was ist mit dem Ordner "Versandbereit"?
AW: Datei automatisch verschieben
06.05.2021 09:41:27
Andreas
Hallo Herbert,
Da kommt es dann hin:
X:\Vertrieb\Beratex\Logistik\Versandaufträge 2019-2021\2021
Das ist das Verzeichnis, in dem die Vorlage liegt und in dem ich jetzt die folgenden Ordner erstellt habe:
Das sind die Ordner:
X:\Vertrieb\Beratex\Logistik\Versandaufträge 2019-2021\2021\Auftragserfassung
X:\Vertrieb\Beratex\Logistik\Versandaufträge 2019-2021\2021\Versendet
X:\Vertrieb\Beratex\Logistik\Versandaufträge 2019-2021\2021\Versandbereit "Den Ordner hatte ich dort noch nicht erstellt, ist jetzt aber auch da
Im folgenden Verzeichnis, sollen dann die Ordner erstellt werden (die automatisch mit der VBA Erzeugt werden) und die Dateien am Ende landen:
X:\Vertrieb\Beratex\Logistik\Versandaufträge 2019-2021\2021\Erledigt
Gruß Andreas
Bitte unten einen neuen Ast starten
06.05.2021 09:43:14
lupo1
... kann man ja nicht mehr navigieren!
AW: Datei automatisch verschieben
06.05.2021 09:49:41
Herbert_Grom
Wir sollten unsere Arbeit nun extern weiter führen, sonst gibt das hier noch Probleme. Andreas, schick mir bitte deine eMail-Adr. Meine findest du hier, in den "Profil"en.
Könnt Ihr bitte hier vorn weitermachen? Danke!
06.05.2021 09:38:01
lupo1
AW: Könnt Ihr bitte hier vorn weitermachen? Danke!
06.05.2021 09:42:31
Andreas
Das ist eine gute Idee Lupo, Danke : )

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige