HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
Forumbeitrag
Excel-Version des Fragestellers:
2016
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
Alwin Weisangler
15.07.2026 13:30:03
AW: Mehrere Blätter in einem Gesamtblatt automatisch ausfüllen
Hallo Bodo,

anbei VBA-Lösung.

Ich habe in jeder Tabelle (Jahre) in Spalte A am Kopf des auszuwertenden Bereichs den Begriff "Auswertung" gesetzt. Dies ist erforderlich, da es kein brauchbares einmaliges Merkmal mehr in den Jahren gab. Das musst du beim Erzeugen eines neuen Tabellenblattes an der Stelle stets setzen.

Des Weiteren habe ich noch eine UDF für die Tabelle ab Gesamt!T5 eingebaut. Somit braucht es keine angepassten Formeln mehr. Es reicht rüber und runterziehen.


Option Explicit

Function TeilnahmeImWMJahr(Jahr As String, rng_Werte As String, Land As String) As Long
TeilnahmeImWMJahr = Application.WorksheetFunction.CountIf(ThisWorkbook.Worksheets(Jahr).Range(rng_Werte), Land)
End Function

Sub Ergebnisse()
Dim wks As Worksheet, arrSum(), rngWerte As Range, rng_Land As Range, i&, j&, k&, l&, iST, iFund
Set rng_Land = Tabelle15.Range("C5:C" & Tabelle15.Cells(Rows.Count, 1).End(xlUp).Row)
ReDim arrSum(1 To rng_Land.Rows.Count, 1 To 15)
For Each wks In ThisWorkbook.Sheets
If IsNumeric(wks.Name) Then
iST = Application.Match("Auswertung", wks.Columns(1), 0)
If Not IsError(iST) Then Set rngWerte = wks.Range("B" & iST & ":J" & wks.Cells(Rows.Count, 2).End(xlUp).Row)
For i = 1 To rng_Land.Count
j = j + 1
iFund = Application.Match(rng_Land.Cells(i, 1), rngWerte.Columns(1), 0)
If Not IsError(iFund) And Not IsError(iST) Then
If wks.Name < "1994" Then
arrSum(j, 1) = arrSum(j, 1) + rngWerte.Cells(iFund, 2)
arrSum(j, 2) = arrSum(j, 2) + rngWerte.Cells(iFund, 3)
arrSum(j, 3) = arrSum(j, 3) + rngWerte.Cells(iFund, 4)
arrSum(j, 4) = arrSum(j, 4) + rngWerte.Cells(iFund, 5)
arrSum(j, 5) = arrSum(j, 5) + rngWerte.Cells(iFund, 6)
arrSum(j, 6) = arrSum(j, 6) + rngWerte.Cells(iFund, 7)
arrSum(j, 7) = arrSum(j, 5) - arrSum(j, 6)
arrSum(j, 8) = arrSum(j, 8) + rngWerte.Cells(iFund, 8)
arrSum(j, 9) = arrSum(j, 9) + rngWerte.Cells(iFund, 9)
Else
arrSum(j, 10) = arrSum(j, 10) + rngWerte.Cells(iFund, 2)
arrSum(j, 11) = arrSum(j, 11) + rngWerte.Cells(iFund, 3)
arrSum(j, 12) = arrSum(j, 12) + rngWerte.Cells(iFund, 4)
arrSum(j, 13) = arrSum(j, 13) + rngWerte.Cells(iFund, 5)
arrSum(j, 5) = arrSum(j, 5) + rngWerte.Cells(iFund, 6)
arrSum(j, 6) = arrSum(j, 6) + rngWerte.Cells(iFund, 7)
arrSum(j, 7) = arrSum(j, 5) - arrSum(j, 6)
End If
End If
Next i
j = 0
k = 0
l = 0
End If
Next
For i = LBound(arrSum) To UBound(arrSum)
arrSum(i, 14) = (arrSum(i, 11) * 3) + arrSum(i, 12)
arrSum(i, 15) = arrSum(i, 8) + arrSum(i, 14)
Next i
Tabelle15.Cells(5, 4).Resize(UBound(arrSum), 15) = arrSum
End Sub

UDF Aufruf in T5 (runter- und rüberziehen):

=TeilnahmeImWMJahr(T$3;"$AA$1:$AA$102";$C5)


https://www.herber.de/bbs/user/180915.xlsm

Gruß Uwe
Als Antwort auf diesen Beitrag
BodoV
10.07.2026 17:23:37
AW: Mehrere Blätter in einem Gesamtblatt automatisch ausfüllen
Moin Uwe,

danke für Deine Ausführungen.
Ich schau mir das alles nochmal in Ruhe an.
Das nächste Mal sende ich Dir die vollständige überarbeitete Datei zu.

Gruß Bodo
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.