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

Jüngste Datei aus dem Verzeichnes öffnen

Jüngste Datei aus dem Verzeichnes öffnen
04.02.2021 11:00:42
Kubilay
Hallo Zusammen,
ich brauche bitte dringend eure Hilfe.
Und zwar möchte ich in einer Excel Tabelle durch eine Schaltfläche die aktuellste Datei öffnen und wie unten beschrieben bearbeiten.
Die Dateien haben immer die selbe Endung (.col)
Ich habe auch bereits folgenden Makro erstellt, aber so zieht er mir nur explizit die .col Datei die ich im Verzeichnis ausgewählt habe.
Aber wir erstellen jeden Tag eine neue und ich möchte den kompletten Vorgang im Makro automatisch mit der neusten Datei durchführen.
Die .col Dateien sind immer so aufgebaut DFT12220443.COL (DFT= ORT / 12= Monat / 22=Tag / 0443= Uhrzeit)
Nach dem öffnen der .col Datei muss ich es immer mit dem Textkonventierungs-Assistent trennen deshalb auch im Makro der StartRow Bereich, anschließend kopiere ich die Datei und füge es in eine separate Tabelle ein. Im Makro funktioniert alles super bis auf das auswählen mit der neusten Datei.
Mein Makro:
Sub Makro1()
' Makro1 Makro
Workbooks.OpenText Filename:= _
"C:\Users\Z378\Desktop\test\col\DFT12220443.COL", Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 2), Array(10 _
, 2), Array(23, 2), Array(35, 2), Array(39, 2), Array(47, 2), Array(61, 2)), _
TrailingMinusNumbers:=True
Cells.Select
Selection.Copy
Windows("TNT HLG.xls").Activate
Cells.Select
ActiveSheet.Paste
End Sub

Ich danke euch im vor raus für eure Hilfe.

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeitstempel
04.02.2021 11:27:47
Fennek
Hallo,
die jüngste Datei eines Ordners findet der CMD

dir c:\temp\*.col /b/o-d
Mit VBA würde der Aufruf so aussehen:

sn = Split(CreateObject("wscript.shell").exec("cmd /c dir ""c:\temp\*.col"" /b/o-d").stdout. _
readall, vbCrLf)(0)
Es kann aber sein, dass die AV-Software das blockiert, dann müßte der Aufruf etwas anderst gestaltet werden.
mfg
AW: Jüngste Datei aus dem Verzeichnes öffnen
04.02.2021 11:35:47
volti
Noch 'ne Alternative:
Code:

[Cc][+][-]

Sub Makro1() Dim sPath As String, oFile As Object Dim sLastFilename As String, oLastFileDate As Variant sPath = "C:\Users\Z378\Desktop\test\col\" With CreateObject("scripting.filesystemobject").GetFolder(sPath) For Each oFile In .Files ' Ordner durchsuchen If Err = 0 Then With oFile If oFile.Name Like "*.xlsb" Then If FileDateTime(oFile) > oLastFileDate Then sLastFilename = oFile.Name oLastFileDate = FileDateTime(oFile) End If End If End With End If Err = 0 Next End With Workbooks.OpenText Filename:= _ sPath & sLastFilename, Origin:=xlMSDOS, _ StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 2), Array(10 _ , 2), Array(23, 2), Array(35, 2), Array(39, 2), Array(47, 2), Array(61, 2)), _ TrailingMinusNumbers:=True Cells.Select Selection.Copy Windows("TNT HLG.xls").Activate Cells.Select ActiveSheet.Paste End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Jüngste Datei aus dem Verzeichnes öffnen
04.02.2021 11:37:03
volti
Noch 'ne Alternative:
Code:

[Cc][+][-]

Sub Makro1() Dim sPath As String, oFile As Object Dim sLastFilename As String, oLastFileDate As Variant sPath = "C:\Users\Z378\Desktop\test\col\" With CreateObject("scripting.filesystemobject").GetFolder(sPath) For Each oFile In .Files ' Ordner durchsuchen If Err = 0 Then With oFile If oFile.Name Like "*.col" Then If FileDateTime(oFile) > oLastFileDate Then sLastFilename = oFile.Name oLastFileDate = FileDateTime(oFile) End If End If End With End If Err = 0 Next End With Workbooks.OpenText Filename:= _ sPath & sLastFilename, Origin:=xlMSDOS, _ StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 2), Array(10 _ , 2), Array(23, 2), Array(35, 2), Array(39, 2), Array(47, 2), Array(61, 2)), _ TrailingMinusNumbers:=True Cells.Select Selection.Copy Windows("TNT HLG.xls").Activate Cells.Select ActiveSheet.Paste End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Jüngste Datei aus dem Verzeichnes öffnen
04.02.2021 11:46:09
Kubilay
Hallo volti,
vielen Dank ich werde das heute Abend direkt probieren auf der Arbeit.
Kurze Frage noch muss ich in diesen Zeilen was ergänzen?
For Each oFile In .Files ' Ordner durchsuchen
und
Workbooks.OpenText Filename:=
Danke
Grüße
AW: Jüngste Datei aus dem Verzeichnes öffnen
04.02.2021 11:50:21
volti
Nein,
nichts ergänzen, das sollte alles so wie vorgefunden funktionieren.
VG KH
AW: Jüngste Datei aus dem Verzeichnes öffnen
04.02.2021 12:51:47
Kubilay
Vielen Dank,
ich habe da noch eine Frage die etwas komplizierter sein könnte.
Und zwar: Ich habe eine weitere Tabelle (bsp. Datei A) die ich in eine weitere Excel Datei einfügen muss (Bsp. Datei B). Die Excel Datei ist von Montag-Freitag aufgeteilt (Jeweils ein Sheet) ich bekomme Morgens die Zahlen für den Vortrag das heißt z.B Dienstag morgens die Zahlen vom Montag ich möchte es so haben das es zb. Dienstag morgens die Daten von Tabelle (Datei A) in die (Datei B) sheet (Montag) einfügt, und mittwochs das selbe spiel mit den Daten von der Tabelle (Datei A) in die (Datei B) sheet Dienstag einfügt, so dass ich Samstag morgens die letzte Datei in den Freitag von der (Datei B) einfüge.
Ist sowas möglich? Das wäre sehr hilfreich.
Vielen vielen vielen Dank.
Anzeige
AW: Jüngste Datei aus dem Verzeichnes öffnen
04.02.2021 13:02:22
volti
Hallo Kubilay,
grundsätzlich ist ja (fast) alles möglich, meistens nur eine Frage des Aufwandes.
Hierfür solltest Du mal eine Beispielmappe (Datei A, Datei B)hier hochladen, woraus Dein Anliegen besser hervorgeht als die Prosabeschreibung und mit der man dann auch mal testen könnte.
viele Grüße
Karl-Heinz
AW: Jüngste Datei aus dem Verzeichnes öffnen
04.02.2021 21:05:32
Kubilay
Guten Abend Karl-Heinz,
ich habe soeben dein Makro ausprobiert und es funktioniert hervorragend.
Vielen Dank noch einmal.
Anbei zwei Screenshots bezüglich meiner zweiten Frage.
Die Tabelle vom (Bild-Tabelle1) möchte ich gerne kopieren und in die Tabelle2 Dienstag morgens bei Montag einfügen.
Mein bestehendes Makro ist wie folgt:
Sub outfeed()
' outfeed Makro
Sheets("Chute+Outfeed").Select
Columns("A:BB").Select
Selection.Copy
ChDir "C:\Users\78DQJ\Desktop\test"
Workbooks.Open Filename:="C:\Users\78DQJ\Desktop\test\outfeed testtt.xlsx"
ActiveSheet.Paste
Windows("HLG.xls").Activate
End Sub

Userbild
Userbild
Anzeige
AW: Jüngste Datei aus dem Verzeichnes öffnen
04.02.2021 23:38:19
volti
Hallo Kubilay,
eigentlich hatte ih eine Mappe erwartet. Aber nun gut, teste mal dieses ersten Versuch....
Code:

[Cc][+][-]

Option Explicit Option Compare Text Sub Kopieren() Dim Wkb As Workbook, WSh As Worksheet Dim sPfad As String, sDateiname As String Dim sTag As String, i As Integer, iZeile As Long sPfad = "C:&bsol;Users&bsol;78DQJ&bsol;Desktop&bsol;test&bsol;" ' Pfad <<< ggf. anpassen>>> sDateiname = "outfeed testtt.xlsx" ' Dateiname <<< ggf. anpassen>>> On Error GoTo Fehler ' Zielblatt anhand des Datums ermitteln i = Weekday(Date - 1) If i < 3 Then i = 7 sTag = Choose(i - 2, "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag") Set WSh = ThisWorkbook.Sheets(sTag) ' Feststellen, ob Quelldatei schon offen ist For Each Wkb In Workbooks If Wkb.Name Like sDateiname Then GoTo Weiter Next Wkb Set Wkb = Workbooks.Open(Filename:=sPfad & sDateiname) Weiter: ' Jetzt die Daten übertragen With Wkb.Sheets("Chute+Outfeed") iZeile = .Cells(Rows.Count, "C").End(xlUp).Row WSh.Range("A1:BB" & iZeile).Value = .Range("A1:BB" & iZeile).Value End With ' Datei schließen Wkb.Close Savechanges:=False MsgBox "Die Daten wurden übertragen!", vbInformation, "Kopieren" Exit Sub Fehler: MsgBox "Es ist der Fehler " & Error & " aufgetreten!", vbCritical, "Kopieren" End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Jüngste Datei aus dem Verzeichnes öffnen
05.02.2021 20:19:14
Kubi
Guten Abend Karl-Heinz,
ich habe es eben versucht da kommt eine Fehlermeldung.
"Es ist der Fehler Index außerhalb des gültigen Bereichs aufgetreten"
Ich würde mich dann am Montag wieder melden und es dir ausführlicher berichten. Falls du Lust und Zeit hast können wir der Sache dann gerne erneut nachgehen.
Bis dahin schönes Wochenende.
Viele Grüße
AW: Jüngste Datei aus dem Verzeichnes öffnen
06.02.2021 10:15:56
volti
Hallo Kubi,
da könntest Du das on Error mal ausremmen und genau mitteilen, an welcher Stelle der Fehler vorkommt.
Oder am besten gleich die Mappe (ggf. anonymisiert) hier hochladen.
Wünsche auch ein schönes Wochenende aus Hessen (hier gießt ohne Ende)
KH
Anzeige
AW: Jüngste Datei aus dem Verzeichnes öffnen
08.02.2021 13:44:58
Kubilay
Hallo Karl-Heinz,
ich würde dir gerne die Mappe per Mail schicken wenn es für dich OK ist.
Falls du deine Mail adresse nicht veröffentlichen möchtest kann ich dir gerne meine da lassen und du meldest dich.
Das wäre echt super.
Grüße
Kubi
AW: Jüngste Datei aus dem Verzeichnes öffnen
08.02.2021 14:38:47
volti
Hallo Kubi,
da lass mal Deine da.
Gruß KH
AW: Jüngste Datei aus dem Verzeichnes öffnen
08.02.2021 14:55:20
Kubilay
Hallo,
kubilaygedik1907@gmail.com
Grüße
AW: Jüngste Datei aus dem Verzeichnes öffnen
04.02.2021 11:37:39
Kubilay
Hallo Fennek,
leider bin ich nicht so erfahren, dass ich jetzt wüsste wie ich es umbauen kann.
Könntest du mir bitte es ausführlicher hinschreiben evtl.so das ich es direkt einfügen könnte.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige