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

Makroanpassung

Makroanpassung
09.12.2008 09:42:19
Ernst
Hallo Vba Experten !
Dieser Code Funktioniert einwandfrei jedoch wird die Datei im Quellordner mit dem zuletzt angelegtem Datum abgefragt:
Ich würde es aber so geändert brauchen das die Datei mit dem Aktuellstem Datum als Bezugsdatei herangezogen wird.
Also nicht die zuletzt angelegte sondern die mit dem Aktuellstem Datum.
Beispiel:Jetzt läuft es so ab das ich im Quellordner Folgende Dateien habe 05.12.2008,06.12.2008 usw
lege ich jetzt den 04.12.2008 an oder ich rufe ein älteres Datum auf so nimmt er dieses als Bezugsdatei für die Aktualisierung und das ist genau das was ich nicht möchte sondern immer das aktuellste.
Wäre für Lösungsvorschläge Dankbar.
Lg.Ernst

Sub DatenHolen()
Dim wksQuelle As Worksheet, wksZiel As Worksheet
Const strFolder As String = "C:\Dokumente und Einstellungen\Ernst\Desktop\neuer ordner (2)" _
If MsgBox("Abgestellte Züge Aktualisieren?", vbYesNo, "Frage") = vbYes Then
Set wksZiel = ThisWorkbook.Sheets("Tabelle2")
Set wksQuelle = Workbooks.Open(NeuesteDatei(strFolder, ThisWorkbook.Name)).Sheets(1)
With wksQuelle
.Range("B5:B15").Copy
wksZiel.Range("O87").PasteSpecial xlPasteValues
.Range("D5:D15").Copy
wksZiel.Range("P87").PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
wksQuelle.Parent.Close False
End If
End Sub



Function NeuesteDatei(strPfad As String, Optional strIgnoredWkb As String) As String
Dim oFS As Object, oFolder As Object, oFile As Object
Dim dteMax As Date
Const strType As String = "*.xls"
Set oFS = CreateObject("scripting.filesystemobject")
Set oFolder = oFS.getfolder(strPfad)
For Each oFile In oFolder.Files
If oFile Like strType And oFile.datecreated > dteMax Then
dteMax = oFile.datecreated
NeuesteDatei = oFile
End If
Next
Set oFolder = Nothing
Set oFS = Nothing
End Function


5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makroanpassung
09.12.2008 11:24:43
Rudi
Hallo,
heißen die Dateien dann auch 05.12.2008.xls, 06.12.2008.xls etc?
Gruß
Rudi
AW: Makroanpassung
09.12.2008 11:38:32
Ernst
Hallo Rudi !
Die Dateien heißen 04.12.2008.Do.xls,05.12.2008.Fr.xls..usw
Lg.Ernst
AW: Makroanpassung
09.12.2008 12:41:00
Erich
Hi Ernst,
probier mal

Option Explicit
Sub DatenHolen()
Dim wksQuelle As Worksheet, wksZiel As Worksheet
Const strFolder As String = "C:\Dokumente und Einstellungen\Ernst\Desktop\neuer ordner (2)"
If MsgBox("Abgestellte Züge aktualisieren?", vbYesNo, "Frage") = vbYes Then
Set wksZiel = ThisWorkbook.Sheets("Tabelle2")
Set wksQuelle = Workbooks.Open(NeuesteDatei(strFolder)).Worksheets(1)
With wksQuelle
.Range("B5:B15").Copy
wksZiel.Range("O87").PasteSpecial xlPasteValues
.Range("D5:D15").Copy
wksZiel.Range("P87").PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
wksQuelle.Parent.Close False
End If
End Sub
Function NeuesteDatei(strPfad As String) As String
Dim oFS As Object, oFolder As Object, oFile As Object, dteMax As Date
Const strType As String = "*.xls"
Set oFS = CreateObject("scripting.filesystemobject")
Set oFolder = oFS.getfolder(strPfad)
For Each oFile In oFolder.Files
If oFile.Name Like "##.##.20##.?.xls" Then
If DateValue(Left(oFile.Name, 10)) > dteMax Then
dteMax = DateValue(Left(oFile.Name, 10))
NeuesteDatei = oFile
End If
End If
Next
Set oFolder = Nothing
Set oFS = Nothing
End Function

Den (ignorierten) Parameter "strIgnoredWkb" habe ich rausgeworfen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Perfekt !
09.12.2008 12:54:00
Ernst
Recht herzlichen Dank.
genau so hab ichs nir vor gestellt.
Lg.ERNST
AW: Makroanpassung
10.12.2008 00:40:00
Rudi
Hallo Erich,

Den (ignorierten) Parameter "strIgnoredWkb" habe ich rausgeworfen.


Der stammt noch aus der Urversion, als ich davon ausgegangen bin, dass das Ziel-Wkb im gleichen Ordner steht.


Const strType As String = "*.xls"


kann man wegen


If oFile.Name Like "##.##.20##.?.xls" Then


und da nicht benutzt auch noch löschen.
Gruß
Rudi

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige