ich habe ein Problem wo ich nochmal eure Unterstützung gebrauchen könnte.
Ich speichere einen Suchbegriff(aus anderer Mappe)in einer Variablen.
Der Suchbegriff ist immer eine 4-stellige Zahl (z.B. 1747, 1816).
Von der Variablen lese ich die ersten beiden Zahlen aus (Kostenstelle). Diese sind gleichzeitig
die Jahreszahlen 17=2017/18=2018 etc. Die ausgelesenen Zahlen verknüpfe ich mit einem String zu einer neuen Variablen (Kostenstelle1). Diese Variable wird nun in raSpalte gesucht und die Daten der rechtsliegenden Zellen summiert. Das läuft. Was ich nicht hinbekomme ist, die If Abfrage die mir folgendes auswertet:
Wenn in Variablen (Kostenstelle) z.B. Wert 15 gespeichert ist, soll er nicht nur die Zellen von "Summe 2015" summieren, sondern auch die Summen bis einschl. akutellem Jahr
(also Summe 2016, Summe 2017 & Summe 2018). Ich muss mit diesen Summen später weitere Berechnungen anstellen.
Public Sub Daten_holen_Aggregation()
Dim strPfad As String, strDatei As String, raSpalte As Range
Dim wbQuelle As Workbook, loSuchbegriff As Long, Kostenstelle As String, Kostenstelle1 As _
String, boGefunden As Boolean
Dim loSumBewkum As Long
Dim Summe
'Pfad an deine Bedürfnisse anpassen
strPfad = "C:\Users\Desktop\"
strDatei = "Aggregation Baustellenbewertung und Leistungsplanung_ab 2015.xlsx"
loSuchbegriff = ActiveSheet.Range("J1")
loSumBewkum = ActiveSheet.Range("I43")
Kostenstelle = Mid(loSuchbegriff, 1, 2)
Kostenstelle1 = "Summe 20" & Kostenstelle
'Bildschirmaktualisierung aus
Application.ScreenUpdating = False
'Datei öffnen
Set wbQuelle = Workbooks.Open(strPfad & strDatei)
With wbQuelle.Worksheets("Werte für Bewertung")
'Suche nach loSuchbegriff in Zeile 2
Set raSpalte = .Range("A:A").Find(what:=Kostenstelle1, LookIn:=xlValues, lookat:=xlWhole)
'wenn gefunden dann
If Not raSpalte Is Nothing Then
'bei Fund Variable auf Wahr setzen
boGefunden = True
'Daten berechnen & übertragen
If Kostenstelle = 15 Then
'Spalte B und C in der gefundenen Zeile
Summe = .Cells(raSpalte.Row, 2).Value + .Cells(raSpalte.Row, 3).Value
'MsgBox Summe
ThisWorkbook.ActiveSheet.Range("A65") = Summe
End If
End If
End With
'Quelldatei ohne Speichern schließen
wbQuelle.Close (False)
'kein Fund - Meldung ausgeben
'If Not boGefunden Then MsgBox "Die Kostenstelle " & Kostenstelle & " wurde nicht gefunden."
'Variable aufräumen
Set wbQuelle = Nothing: Set raSpalte = Nothing
'Bildschirmaktualisierung an
Application.ScreenUpdating = True
End Sub
Gibt es hier eine gute Lösung?
Danke vorab
Gruß
Andreas