AW: VBA Excel Daten auslesen
21.02.2020 09:34:06
fcs
Hallo Wrona,
dann musst du dir Pfad/Dateiname für den Vormonat in Variablen "zusammenbasteln", die Vormonatsdatei kurz schreibgeschützt öffnen, Wert in Variable auslesen und Datei wieder schliessen.
Ungetestet kann das etwa wie folgt aussehen.
Sub Test()
Dim export As Workbook
Dim pfad As String, dateiname As String
Dim pfadVM As String, dateinameVM As String, wkbVM As Workbook, varWertVM
Dim Jahr As Integer, Monat As Integer
Jahr = Year(export.Sheets("Journal").Range("J1").Value)
Monat = Month(export.Sheets("Journal").Range("J1").Value)
If Monat = 1 Then
pfadVM = "Y:\Zwischenablage\" & Format(Jahr - 1, "0000") & "-" & Format(12, "00")
dateinameVM = Replace(export.Sheets("Journal").Range("H1"), " ", "") & "_" _
& export.Sheets("Journal").Range("B1")
Else
pfadVM = "Y:\Zwischenablage\" & Format(Jahr, "0000") & "-" & Format(Monat - 1, "00")
dateinameVM = Replace(export.Sheets("Journal").Range("H1"), " ", "") & "_" _
& export.Sheets("Journal").Range("B1")
End If
dateinameVM = Dir(pfadVM & dateinameVM & ".xls*")
If dateinameVM = "" Then
MsgBox "Datei für den Vormonat existiert nicht!"
varWertVM = "kein Wert"
Else
Application.ScreenUpdating = False
Set wkbVM = Application.Workbooks.Open(pfadVM & dateinameVM, ReadOnly:=True)
varWertVM = wkbVM.Worksheets("Blattname").Range("C7").Value 'Name und Zelle anpassen!
wkbVM.Close savechanges:=False
Application.ScreenUpdating = True
End If
pfad = "Y:\Zwischenablage\" & Format(export.Sheets("Journal").Range("J1"), "YYYY") & "-" & _
Format(export.Sheets("Journal").Range("J1"), "MM")
dateiname = Replace(export.Sheets("Journal").Range("H1"), " ", "") & "_" _
& export.Sheets("Journal").Range("B1")
End Sub