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

Datumsformat für Dateiöffnung

Datumsformat für Dateiöffnung
26.02.2024 16:09:56
Michael
Hallo zusammen,
ich habe nun schon mehrfach versucht aus einer Zelle (bspw. A1, 30.01.2024) das Datum auszulesen und in einem zweiten Schritt mit anderem Format (20240130, müsste meines Wissens cells(1,1,).numberformat = "yyyymmdd" sein) eine Datei zu öffnen, die am Tagesende entsprechend abgelegt wird, sprich
workbooks.open filename:=" Pfad xxx_"20240130.txt
Allerdings erkennt VBA den Pfad so nicht. Selbst wenn ich das neue Format als Variable festlege mit bspw:
v1 = Sheets("Tabelle1").cells(1,1).numberformat:= "yyyyddmm" ist das Resultat hier nicht 20240130, das gesucht ist.
Kann hier bitte jemand weiterhelfen und behilflich sein?
Vielen Dank im Voraus.
Gruß Michael

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datumsformat für Dateiöffnung
26.02.2024 16:20:57
Sigi.21
Hallo Michael,

das Datum 30.01.2024 ist in Excel eine Zahl (45321).
Ändern des Zellenformats (Excel od. VBA) ändert nichts am Inhalt (45321).
Du willst jedoch einen Textstring machen als 20240130, das wäre ...
in Excel TEXT(45321/od.Bezug; "JJJJMMTT")
oder in VBA FORMAT(45321/od.Bezug, "YYYYMMDD")

Gruß Sigi
AW: Datumsformat für Dateiöffnung
26.02.2024 16:22:58
onur
v1 = Sheets("Tabelle1").cells(1,1).numberformat:= "yyyyddmm"

ist Quatsch. Wenn, dann so:
v1 = Format(Sheets("Tabelle1").cells(1,1),"yyyyddmm")

Was soll das hier?
workbooks.open filename:=" Pfad xxx_"20240130.txt 

Was ist Pfad xxx_?

Anzeige
AW: Datumsformat für Dateiöffnung
26.02.2024 17:08:53
Michael
Vielen Dank Sigi & Onur für die schnelle Rückmeldung. Das was Onur geschrieben hat ist genau das, was ich gesucht habe für den ersten Schritt (zumindest sehe ich das richtige Ergebnis wenn ich mit F8 durch das Makro springe).

Ich möchte 4 Variablen zu 4 Stichtagen festlegen, die in den Zellen A1:A4 aufgeführt sind, bspw.
v1 = Format(Sheets("Tabelle1").cells(1,1),"yyyymmdd")
v2 = Format(Sheets("Tabelle1").cells(2,1),"yyyymmdd")
v3 = Format(Sheets("Tabelle1").cells(3,1),"yyyymmdd")
v4 = Format(Sheets("Tabelle1").cells(4,1),"yyyymmdd")

und im nächsten Schritt die 4 Dateien nacheinander mit einer Schleife anhand des Namen der Variablen öffnen sprich

for v =1 to 4
workbooks.open filename :="G:\Test\xxx_" & v & ".txt"
Sheets("xxx_" & v & ")").Columns("A").Copy
Workbooks("ABC.xlsm").Sheets("Test2").Range("A1").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Workbooks("xxx_" & v & ".txt").Close False

das funktioniert aktuell aber noch nicht, daher die Bitte um Unterstützung, vielen Dank vorab!
Anzeige
AW: Datumsformat für Dateiöffnung
26.02.2024 17:42:17
onur
    Dim i, v

For i = 1 To 4
Workbooks.Open Filename:="G:\Test\xxx_" & v(i) & ".txt"
v = Format(Sheets("Tabelle1").Cells(i, 1), "yyyymmdd")
Sheets("xxx_" & v & ")").Columns("A").Copy
Workbooks("ABC.xlsm").Sheets("Test2").Range("A1").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Workbooks("xxx_" & v & ".txt").Close False
Next i

Aber das ist irgendwie auch Quatsch, denn du öffnest 4 Dateien und schreibst daraus einen bestimmten Wert in immer die gleiche Zelle (A1) .
D.h. NUR DER LETZTE WERT bleibt erhalten. Soll das IMMER in A1 kopiert werden ???
Wenn untereinander, dann:
Workbooks("ABC.xlsm").Sheets("Test2").Range("A" & i).PasteSpecial Paste:=xlValues

Anzeige
AW: Datumsformat für Dateiöffnung
26.02.2024 19:53:33
Uduuh
Hallo,
hast du dich beim Level verklickt?
Sub aa()

Dim v(1 To 4), i As Integer
Dim wkbQuelle As Workbook
Dim wksZiel As Worksheet

Set wksZiel = Workbooks("ABC.xlsm").Sheets("Test2")

For i = 1 To 4
v(i) = Format(Sheets("Tabelle1").Cells(i, 1), "YYYYMMDD")
Next i

For i = 1 To 4
Set wkbQuelle = Workbooks.Open(Filename:="G:\Test\xxx_" & v(i) & ".txt")
Sheets("xxx_" & v(i)).Columns("A").Copy
'das ist Unsinn: (immer der gleiche Zielbereich)
wksZiel.Range("A1").PasteSpecial Paste:=xlPasteValues
'vielleicht so? (nebeneinander)
'wksZiel.Cells(1, i).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
wkbQuelle.Close False
Next i

End Sub

Gruß aus'm Pott
Udo
Anzeige
AW: Datumsformat für Dateiöffnung
26.02.2024 21:57:11
Yal
Hallo Michael,

noch zu viele nicht beherrschten Grundlagen, um als "VBA gut" zu gelten. Aber nur meine Meinung.

Sub ÖffnenUndKopieren()

Dim Val
Dim WB As Workbook

For Each Val In ThisWorkbook.Worksheets("Tabelle1").Range("A1:A4").Value
Set WB = Datei_öffnen(Filename:="G:\Test\xxx_" & Format(Val, "yyyymmdd") & ".txt")
If Not WB Is Nothing Then
WB.Sheets(1).Columns(1).Copy 'Eine Textdatei führt zu einem WB mit nur einen Sheet!
Workbooks("ABC.xlsm").Sheets("Test2").Range("XFD1").End(xlToLeft).Offset(0, 1).PasteSpecial Paste:=xlValues 'Spalten nebeneinander
Application.CutCopyMode = False
WB.Close False
End If
Next
End Sub

Private Function Datei_öffnen(Dateiname As String) As Workbook
On Error Resume Next
Set Datei_öffnen = Workbooks.Open(Dateiname)
End Function


VG
Yal
Anzeige
AW: Datumsformat für Dateiöffnung
26.02.2024 20:14:22
onur
Und alle 4 Werte werden in wksZiel.Range("A1") gequetscht. :)
AW: Datumsformat für Dateiöffnung
26.02.2024 16:52:12
Uduuh
Hallo,
prinzipiell so:
Sub aa()

Dim strPfad As String, strDatei As String
strPfad = "c:\test\"
strDatei = Format(Range("A1"), "YYYYMMDD") & ".txt"
Workbooks.Open strPfad & strDatei
End Sub

Workbooks.Open für .txt funktioniert solange es sich um Tab-getrennte Daten handelt

Gruß aus'm Pott
Udo

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige