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

Fixen Bereich aus varibalen Datei kopieren

Fixen Bereich aus varibalen Datei kopieren
08.05.2019 11:40:44
Memo
Guten Tag Excelliebhaber,
ich wende mich mal wieder mit einem Vorhaben an euch und bitte um eure Unterstützung.
Ich habe eine Masterdatei_Lieferstatus zur Überwachung von Lieferstatus.
Der Inhalt dieser Datei wird wöchentlich in einem anderen Laufwerk + andere Namen zur Verfügung gestellt.
Der Rahmen der beiden Dateien sind exakt gleich aufgebaut, bis auf die Spalte A, welches ich bei der Masterdatei_Lieferstatus hinzugefügt habe.
Nun soll das Makro beim Starten die aktuellste Datei im Laufwerk öffnen, den Bereich B2 bis Yxx kopieren und in die Masterdatei_Lieferstatus in die nächste leere Zelle von Spalte B einfügen.
Beim Einfügen in die Masterdatei_Lieferstatus soll es in die Spalte A den aktuellen Datum des Kopierens einfügen.
Name Masterdatei: Masterdatei_Lieferstatus
Name Quelldatei: Lieferstatus_20190508 (Datum fortführend)
Kurz gefasst soll das Makro:
1. Laufwerk Quelldatei öffnen
2. Aktuelle Datei aus Laufwerk mit aktuellstem Datum öffnen
3. Bereich ab B2 bis letzte mit Inhalt beschriebene Zelle kopieren
4. Kopierte Daten in die Datei Masterdatei_Lieferstatus Arbeitsblatt "Tabelle1" ab Spalte B in die nächste leere Zelle einfügen.
5. Zusätzlich noch beim Einfügen das Datum in die Spalte A eintragen.
6. wenn möglich nach Punkt 5 noch zusätzlich die Spalte A schützen, sodass man das Datum nachträglich nicht ändern kann, Passwort Blattschutz kann "Herber" heissen.
Zur einfachen Verständigung lade ich die Masterdatei_Lieferstatus hoch.
https://www.herber.de/bbs/user/129654.xlsx
Danke an alle die etwas beitragen.
VG
Memo

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fixen Bereich aus varibalen Datei kopieren
08.05.2019 12:11:00
Hajo_Zi
Hallo Memo,
das geht nicht, da eine XLSX Datei kein Makro enthalten kann.
Ich sehe keinen Grund eine Datei 2x zu speichern. Ich führe keine Liste unter welchem Dateinamen ich die Datei gespeichert habe.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Fixen Bereich aus varibalen Datei kopieren
08.05.2019 12:56:44
Memo
Hi Hajo,
da haste natürlich vollkommen Recht.
Anbei die Datei als Makrovariante.
https://www.herber.de/bbs/user/129659.xlsm
Danke für den Hinweis.
VG
Memo
Anzeige
AW: Fixen Bereich aus varibalen Datei kopieren
08.05.2019 13:52:09
Memo
Hallo Forum,
hat mir jmd anderst ein Tipp für mein Anliegen?
VG
Memo
AW: Fixen Bereich aus varibalen Datei kopieren
08.05.2019 13:59:19
Torsten
Hallo Memo,
2 Fragen:
1.

Der Inhalt dieser Datei wird wöchentlich in einem anderen Laufwerk + andere Namen zur Verfügung gestellt.
Heisst das, dass sich der Pfad staendig aendert? Dann muesste ja staendig der Pfad im Code angepasst werden oder man muesste mit einer Inputbox den Pfad abfragen.
2.

Aktuelle Datei aus Laufwerk mit aktuellstem Datum öffnen
Ist diese aktuellste Datei auch die zuletzt gespeicherte Datei im Ordner?
Wie sieht die Ordnerstruktur aus?
Anzeige
AW: Fixen Bereich aus varibalen Datei kopieren
08.05.2019 14:09:24
Memo
Hi Thorsten,
danke für die prompte Rückmeldung.
zu 1:
Der Pfad zum Ordner ist immer der selbe...ist fix...M:\Y2\557 XYZ\...
zu 2: Die aktuellste Datei ist immer die nach Datum aktuell ist.
z.b. Lieferstatus_20190508 ist die aktuellste
Nächste Woche am 16.05.2019 wird höchstwahrscheinlich die aktuellste Datei so heissen:
Lieferstatus_20190515.xls und so weiter Woche für Woche
VG
Memo
AW: Fixen Bereich aus varibalen Datei kopieren
08.05.2019 14:54:49
Memo
...Nachtrag..
Hi Torsten,
ja die Datei ist überwiegend die zuletzt gespeicherte Datei..es kommt aber durchaus mal vor dass nachträglich was aktualisiert wird und somit nicht immer die zuletzt gespeicherte auch die aktuelle ist.
Wenn man aber nach dem Datum ausgeht, kann man sicher sein dass diese dann die aktuelleste Datei ist.
Die Ordnerstruktur ist wie folgt:
Laufwerk..
..Zielordner..
..Zieldateien in Listendarstellung
Hoffe deine Fragen beantwortet zu haben.
VG
Memo
Anzeige
AW: Fixen Bereich aus varibalen Datei kopieren
09.05.2019 09:14:50
Torsten
Hallo Memo,
bin dran an deiner Sache. Noch eine weitere Frage:
Wie heisst die Tabelle in der Quelldatei? Tabelle1?
AW: Fixen Bereich aus varibalen Datei kopieren
09.05.2019 09:52:08
Memo
Hi Torsten,
die Bezeichnung der Arbeitsblätter beider Dateien sind identisch:
Name der Masterdatei: Masterdatei_Lieferstatus, Arbeitsblatt "Tabelle1"
Name der Quelldatei: Lieferstatus_20190508, Arbeitsblatt "Tabelle1"
Das Datum jedoch ist variabel, ändert sich jede Woche. Ansonsten bleibt alles gleich.
Gruß, Memo
AW: Fixen Bereich aus varibalen Datei kopieren
09.05.2019 10:40:12
Torsten
Hi Memo,
hier nun anbei deine Datei zurueck incl. Code. Schau dir den Code mal an. Habe ein paar Kommentare zur Erklaerung reingeschrieben. Vielleicht geht das ganze auch einfacher. Aber es funktioniert.
Sollte es Probleme geben, sag bescheid.
Gruss Torsten
https://www.herber.de/bbs/user/129680.xlsm
Anzeige
AW: Fixen Bereich aus varibalen Datei kopieren
09.05.2019 11:03:08
Memo
Hallo Torsten,
danke für dein Code und die nützlichen Kommentare.
Beim Ausführen des Codes bekomme ich leider die Fehlermeldung "ungültiger Prozeduraufruf"
Datum = Mid(Datei, pos1 + 1, (pos2) - (pos1 + 1)).
Warum bekomme ich bei der selben Datei eine Fehlermeldung, während es bei dir funktioniert?
Der Code wird aus der Masterdatei: Masterdatei_Lieferstatus, Arbeitsblatt "Tabelle1" gestartet.
...und kopiert sich den Inhalt aus der Quelldatei: Lieferstatus_20190508, Arbeitsblatt "Tabelle1" .
Mit welcher Datumsformat wäre der Code denn einfacher zu erstellen?
Gruß
Memo
Anzeige
AW: Fixen Bereich aus varibalen Datei kopieren
09.05.2019 11:36:18
Torsten
Das ist etwas merkwuerdig, da an dieser Stelle eigentlich nur das Datum aus dem Dateinamen gefiltert wird. Es kann hoechstens sein, dass der Code vorher keine Dateien gefunden hat, also keine Dateinamen in der Tabelle2 Spalte 1 stehen. Dann kann er natuerlich nichts filtern. Deshalb der Fehler.
Bitte ueberpruef mal im Code den Pfad zu dem Ordner, wo die Dateien drin sind und korrigiere diesen, wenn noetig. Er kommt in jedem Modul 1 mal vor.
Wenn der Pfad korrekt ist, dann liegt es vielleicht am Ordnernamen. VBA kann keine Leerstellen im Pfad vertragen. Kannst du den Ordnernamen eventuell anpassen?
So: M:\Y2\557_XYZ\ also mit Unterstrich
Ich hatte eh noch den Datumseintrag in Spalte A vergessen. Also hier nochmal die korrigierte Version.
Gruss Torsten
https://www.herber.de/bbs/user/129683.xlsm
Anzeige
AW: Fixen Bereich aus varibalen Datei kopieren
09.05.2019 12:12:40
Memo
Hi Torsten,
super, funktioniert tadellos.
Das war echt schnell von dir.
Besten Dank.
VG
Memo
gerne und danke fuer die Rueckmeldung...
09.05.2019 12:40:38
Torsten
...wenn ich gestern mehr Zeit gehabt haette, waere es noch schneller gewesen.
AW: gerne und danke fuer die Rueckmeldung...
09.05.2019 14:41:43
Memo
Hi Torsten,
bin grad dabei dein Code zu begreifen, dank deinen Kommentaren geht das um einiges einfacher.
Jedoch habe ich wegen einer Stelle im Code 2 Fragen:
1. Warum tust du eine andere Tabelle, die "Tabelle2", als Hilfstabelle nutzen um die jüngste Datei zu finden?
Kann man stattdessen vielleicht den letzten Teil der Dateiname "Lieferstatus_20190509" auslesen und ein Vergleich machen ob Datum aktuell oder nicht? (Das Datumsformat muss nicht zwingend "yyyymmdd" sein).
2. Darf ich die Tabelle2 nutzen (mit Daten füllen)? Einfacher wäre es natürlich komplett auszublenden.
Danke für deine Unterstütung.
Gruß,
Memo
ThisWorkbook.Sheets("Tabelle2").UsedRange.Clear
For Each objDatei In objDateienliste
If Not objDatei Is Nothing And Right(objDatei.Name, 5) = ".xlsx" Then
ThisWorkbook.Sheets("Tabelle2").Cells(lngZeile, 1) = objDatei.Name
lngZeile = lngZeile + 1
End If
Next objDatei
act_workbook_name_and_copy
End Sub
Anzeige
letzte Verständnisfrage
09.05.2019 15:55:40
Memo
Hi Torsten,
bin grad dabei dein Code zu begreifen, dank deinen Kommentaren geht das um einiges einfacher.
Jedoch habe ich wegen einer Stelle im Code 2 Fragen:
1. Warum tust du eine andere Tabelle, die "Tabelle2", als Hilfstabelle nutzen um die jüngste Datei zu finden?
Kann man stattdessen vielleicht den letzten Teil der Dateiname "Lieferstatus_20190509" auslesen und ein Vergleich machen ob Datum aktuell oder nicht? (Das Datumsformat muss nicht zwingend "yyyymmdd" sein).
2. Darf ich die Tabelle2 nutzen (mit Daten füllen)? Einfacher wäre es natürlich komplett auszublenden.
2.1. Wo stehen die Dateinamen in Tabelle2 ? Ich sehe keine Auflistung im kompletten Arbeitsblatt "Tabelle2", muss ich etwa zum Augenartzt !?
Danke für deine Unterstütung.
Gruß,
Memo
ThisWorkbook.Sheets("Tabelle2").UsedRange.Clear
For Each objDatei In objDateienliste
If Not objDatei Is Nothing And Right(objDatei.Name, 5) = ".xlsx" Then
ThisWorkbook.Sheets("Tabelle2").Cells(lngZeile, 1) = objDatei.Name
lngZeile = lngZeile + 1
End If
Next objDatei
act_workbook_name_and_copy
End Sub
Anzeige
AW: letzte Verständnisfrage
10.05.2019 09:03:47
Torsten
Hallo Memo,
kein Problem. Werd ich dir erklaeren.
Zu 1. ich nutze die Tabelle2 als Hilfstabelle wegen dem Format. Ich filtere das Datum aus einem Textstring, sprich dem Dateinamen. Da dieses Datum in diesem Moment kein richtiges Datum ist sondern nur ein Text, muss ich es erst in ein richtiges Datum umwandeln, um das juengste Datum finden zu koennen. Ist einfacher so und das Format im Dateinamen ist in dem Moment egal, da es immer erst ein Text ist, wenn man es rausfiltert.
Zu 2. hier siehst du keine Daten mehr, da ich am Ende des Codes den benutzten Bereich immer saeubere, also loesche. Das habe ich gemacht, damit kein Nutzer der Datei verwirrt wird, falls mal jemand anderes als du die Datei nutzt. Du kannst deshalb diese Tabelle schlecht fuer andere Daten nutzen, da immer alles geloescht wird, um eine saubere Tabelle zu haben fuer die Datumssuche.
Wenn du die Tabelle2 komplett ausblenden willst, dann geh in den VBA Editor, klick Tabelle2 an und waehle in den Eigenschaften aus unter Visible xlSheetVeryHidden. Dann kann man es nur noch per Code oder im VBA Editor wieder sichtbar machen.
Hoffe das hilft zum verstehen.
Gruss Torsten
Anzeige
AW: letzte Verständnisfrage
10.05.2019 09:12:40
Memo
Guten Morgen Torsten,
danke für die verständliche Erklärung.
Ich bevorzuge die veryHidden Variante.
Angenehmes Wochenende
VG
Memo

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige