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

Zellen mehrerer Tabellen zählen

Zellen mehrerer Tabellen zählen
19.06.2018 12:02:15
Jürgen
Hallo VBA-Gemeinde
Ich muss mich leider mal wieder mit einem Problem an euch wenden!
Bitte lacht nicht über den Code, meine VBA-Kentnisse sind bescheiden.
Ich bin den Weg über VBA gegangen, da sich die Tabellennamen immer wieder verändern, und die Formel =SUMME(Tabelle2:Tabelle16!D5) nicht funktioniert hat.
In den Zellen welche addiert werden sollen, ist eine Formel Enthalten die eine Zahl zurückgibt. Ausser die Formel gibt eine 0 zurück, dann wir "" in der Zelle ausgegeben.
Steht in den Zellen eine 0 funktioniert das Makro wunderbar, aber seit ich diese durch "" (wegen der Übersicht) ersetzt habe funkt das Makro nicht mehr.
Wie kann ich hinterlegen dass das Makro "" ignoriert oder als 0 zählt?
Hier der Code dazu:
Hallo VBA-Gemeinde
Ich muss mich leider mal wieder mit einem Problem an euch wenden!
Bitte lacht nicht über den Code, meine VBA-Kentnisse sind bescheiden.
Ich bin den Weg über VBA gegangen, da sich die Tabellennamen immer wieder verändern, und die  _
Formel =SUMME(Tabelle2:Tabelle16!D5) nicht funktioniert hat.
In den Zellen welche addiert werden sollen, ist eine Formel Enthalten die eine Zahl zurückgibt.  _
Ausser die Formel gibt eine 0 zurück, dann wir "" in der Zelle ausgegeben.
Steht in den Zellen eine 0 funktioniert das Makro wunderbar, aber seit ich diese durch "" ( _
wegen der Übersicht) ersetzt habe funkt das Makro nicht mehr.
Wie kann ich hinterlegen dass das Makro "" ignoriert oder als 0 zählt?
Hier der Code dazu:
  • Private Sub Worksheet_Activate() Dim ErgebnisWV As Variant Dim ErgebnisEE As Variant Dim ErgebnisST As Variant Dim ErgebnisI As Variant Dim ErgebnisPE As Variant Dim ErgebnisT As Variant Dim ErgebnisDI As Variant Dim ErgebnisAT As Variant Application.ScreenUpdating = False ErgebnisWV = Sheets(2).Cells(5, 4) + Sheets(3).Cells(5, 4) + Sheets(4).Cells(5, 4) + Sheets( _ 5).Cells(5, 4) _ + Sheets(6).Cells(5, 4) + Sheets(7).Cells(5, 4) + Sheets(8).Cells(5, 4) + Sheets(9).Cells(5, _ 4) + Sheets(10).Cells(5, 4) _ + Sheets(11).Cells(5, 4) + Sheets(12).Cells(5, 4) + Sheets(13).Cells(5, 4) + Sheets(14). _ Cells(5, 4) + Sheets(15).Cells(5, 4) _ + Sheets(16).Cells(5, 4) + Sheets(17).Cells(5, 7) + Sheets(18).Cells(5, 8) Sheets(19).Cells(3, 14) = ErgebnisWV ErgebnisEE = Sheets(2).Cells(5, 5) + Sheets(3).Cells(5, 5) + Sheets(4).Cells(5, 5) + Sheets( _ 5).Cells(5, 5) _ + Sheets(6).Cells(5, 5) + Sheets(7).Cells(5, 5) + Sheets(8).Cells(5, 5) + Sheets(9).Cells(5, _ 5) + Sheets(10).Cells(5, 5) _ + Sheets(11).Cells(5, 5) + Sheets(12).Cells(5, 5) + Sheets(13).Cells(5, 5) + Sheets(14). _ Cells(5, 5) + Sheets(15).Cells(5, 5) _ + Sheets(16).Cells(5, 5) + Sheets(17).Cells(5, 8) + Sheets(18).Cells(5, 9) Sheets(19).Cells(4, 14) = ErgebnisEE ErgebnisST = Sheets(2).Cells(5, 6) + Sheets(3).Cells(5, 6) + Sheets(4).Cells(5, 6) + Sheets( _ 5).Cells(5, 6) _ + Sheets(6).Cells(5, 6) + Sheets(7).Cells(5, 6) + Sheets(8).Cells(5, 6) + Sheets(9).Cells(5, _ 6) + Sheets(10).Cells(5, 6) _ + Sheets(11).Cells(5, 6) + Sheets(12).Cells(5, 6) + Sheets(13).Cells(5, 6) + Sheets(14). _ Cells(5, 6) + Sheets(15).Cells(5, 6) _ + Sheets(16).Cells(5, 6) + Sheets(17).Cells(5, 9) + Sheets(18).Cells(5, 10) Sheets(19).Cells(5, 14) = ErgebnisST ErgebnisI = Sheets(2).Cells(5, 7) + Sheets(3).Cells(5, 7) + Sheets(4).Cells(5, 7) + Sheets( _ 5).Cells(5, 7) _ + Sheets(6).Cells(5, 7) + Sheets(7).Cells(5, 7) + Sheets(8).Cells(5, 7) + Sheets(9).Cells(5, _ 7) + Sheets(10).Cells(5, 7) _ + Sheets(11).Cells(5, 7) + Sheets(12).Cells(5, 7) + Sheets(13).Cells(5, 7) + Sheets(14). _ Cells(5, 7) + Sheets(15).Cells(5, 7) _ + Sheets(16).Cells(5, 7) + Sheets(17).Cells(5, 10) + Sheets(18).Cells(5, 11) Sheets(19).Cells(6, 14) = ErgebnisI ErgebnisPE = Sheets(2).Cells(5, 8) + Sheets(3).Cells(5, 8) + Sheets(4).Cells(5, 8) + Sheets( _ 5).Cells(5, 8) _ + Sheets(6).Cells(5, 8) + Sheets(7).Cells(5, 8) + Sheets(8).Cells(5, 8) + Sheets(9).Cells(5, _ 8) + Sheets(10).Cells(5, 8) _ + Sheets(11).Cells(5, 8) + Sheets(12).Cells(5, 8) + Sheets(13).Cells(5, 8) + Sheets(14). _ Cells(5, 8) + Sheets(15).Cells(5, 8) _ + Sheets(16).Cells(5, 8) + Sheets(17).Cells(5, 11) + Sheets(18).Cells(5, 12) Sheets(19).Cells(7, 14) = ErgebnisPE ErgebnisT = Sheets(2).Cells(5, 9) + Sheets(3).Cells(5, 9) + Sheets(4).Cells(5, 9) + Sheets( _ 5).Cells(5, 9) _ + Sheets(6).Cells(5, 9) + Sheets(7).Cells(5, 9) + Sheets(8).Cells(5, 9) + Sheets(9).Cells(5, _ 9) + Sheets(10).Cells(5, 9) _ + Sheets(11).Cells(5, 9) + Sheets(12).Cells(5, 9) + Sheets(13).Cells(5, 9) + Sheets(14). _ Cells(5, 9) + Sheets(15).Cells(5, 9) _ + Sheets(16).Cells(5, 9) + Sheets(17).Cells(5, 12) + Sheets(18).Cells(5, 13) Sheets(19).Cells(8, 14) = ErgebnisT ErgebnisDI = Sheets(2).Cells(5, 10) + Sheets(3).Cells(5, 10) + Sheets(4).Cells(5, 10) + _ Sheets(5).Cells(5, 10) _ + Sheets(6).Cells(5, 10) + Sheets(7).Cells(5, 10) + Sheets(8).Cells(5, 10) + Sheets(9). _ Cells(5, 10) + Sheets(10).Cells(5, 10) _ + Sheets(11).Cells(5, 10) + Sheets(12).Cells(5, 10) + Sheets(13).Cells(5, 10) + Sheets(14). _ Cells(5, 10) + Sheets(15).Cells(5, 10) _ + Sheets(16).Cells(5, 10) + Sheets(17).Cells(5, 13) + Sheets(18).Cells(5, 14) Sheets(19).Cells(9, 14) = ErgebnisDI ErgebnisAT = Sheets(2).Cells(5, 11) + Sheets(3).Cells(5, 11) + Sheets(4).Cells(5, 11) + _ Sheets(5).Cells(5, 11) _ + Sheets(6).Cells(5, 11) + Sheets(7).Cells(5, 11) + Sheets(8).Cells(5, 11) + Sheets(9). _ Cells(5, 11) + Sheets(10).Cells(5, 11) _ + Sheets(11).Cells(5, 11) + Sheets(12).Cells(5, 11) + Sheets(13).Cells(5, 11) + Sheets(14). _ Cells(5, 11) + Sheets(15).Cells(5, 11) _ + Sheets(16).Cells(5, 11) + Sheets(17).Cells(5, 14) + Sheets(18).Cells(5, 15) Sheets(19).Cells(10, 14) = ErgebnisAT Application.ScreenUpdating = True End Sub

  • 6
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Zellen mehrerer Tabellen zählen
    19.06.2018 12:04:19
    Jürgen
    Sorry hier übersichtlicher!
    Private Sub Worksheet_Activate()
    Dim ErgebnisWV As Variant
    Dim ErgebnisEE As Variant
    Dim ErgebnisST As Variant
    Dim ErgebnisI As Variant
    Dim ErgebnisPE As Variant
    Dim ErgebnisT As Variant
    Dim ErgebnisDI As Variant
    Dim ErgebnisAT As Variant
    Application.ScreenUpdating = False
    ErgebnisWV = Sheets(2).Cells(5, 4) + Sheets(3).Cells(5, 4) + Sheets(4).Cells(5, 4) + Sheets( _
    5).Cells(5, 4) _
    + Sheets(6).Cells(5, 4) + Sheets(7).Cells(5, 4) + Sheets(8).Cells(5, 4) + Sheets(9).Cells(5, _
    4) + Sheets(10).Cells(5, 4) _
    + Sheets(11).Cells(5, 4) + Sheets(12).Cells(5, 4) + Sheets(13).Cells(5, 4) + Sheets(14). _
    Cells(5, 4) + Sheets(15).Cells(5, 4) _
    + Sheets(16).Cells(5, 4) + Sheets(17).Cells(5, 7) + Sheets(18).Cells(5, 8)
    Sheets(19).Cells(3, 14) = ErgebnisWV
    ErgebnisEE = Sheets(2).Cells(5, 5) + Sheets(3).Cells(5, 5) + Sheets(4).Cells(5, 5) + Sheets( _
    5).Cells(5, 5) _
    + Sheets(6).Cells(5, 5) + Sheets(7).Cells(5, 5) + Sheets(8).Cells(5, 5) + Sheets(9).Cells(5, _
    5) + Sheets(10).Cells(5, 5) _
    + Sheets(11).Cells(5, 5) + Sheets(12).Cells(5, 5) + Sheets(13).Cells(5, 5) + Sheets(14). _
    Cells(5, 5) + Sheets(15).Cells(5, 5) _
    + Sheets(16).Cells(5, 5) + Sheets(17).Cells(5, 8) + Sheets(18).Cells(5, 9)
    Sheets(19).Cells(4, 14) = ErgebnisEE
    ErgebnisST = Sheets(2).Cells(5, 6) + Sheets(3).Cells(5, 6) + Sheets(4).Cells(5, 6) + Sheets( _
    5).Cells(5, 6) _
    + Sheets(6).Cells(5, 6) + Sheets(7).Cells(5, 6) + Sheets(8).Cells(5, 6) + Sheets(9).Cells(5, _
    6) + Sheets(10).Cells(5, 6) _
    + Sheets(11).Cells(5, 6) + Sheets(12).Cells(5, 6) + Sheets(13).Cells(5, 6) + Sheets(14). _
    Cells(5, 6) + Sheets(15).Cells(5, 6) _
    + Sheets(16).Cells(5, 6) + Sheets(17).Cells(5, 9) + Sheets(18).Cells(5, 10)
    Sheets(19).Cells(5, 14) = ErgebnisST
    ErgebnisI = Sheets(2).Cells(5, 7) + Sheets(3).Cells(5, 7) + Sheets(4).Cells(5, 7) + Sheets( _
    5).Cells(5, 7) _
    + Sheets(6).Cells(5, 7) + Sheets(7).Cells(5, 7) + Sheets(8).Cells(5, 7) + Sheets(9).Cells(5, _
    7) + Sheets(10).Cells(5, 7) _
    + Sheets(11).Cells(5, 7) + Sheets(12).Cells(5, 7) + Sheets(13).Cells(5, 7) + Sheets(14). _
    Cells(5, 7) + Sheets(15).Cells(5, 7) _
    + Sheets(16).Cells(5, 7) + Sheets(17).Cells(5, 10) + Sheets(18).Cells(5, 11)
    Sheets(19).Cells(6, 14) = ErgebnisI
    ErgebnisPE = Sheets(2).Cells(5, 8) + Sheets(3).Cells(5, 8) + Sheets(4).Cells(5, 8) + Sheets( _
    5).Cells(5, 8) _
    + Sheets(6).Cells(5, 8) + Sheets(7).Cells(5, 8) + Sheets(8).Cells(5, 8) + Sheets(9).Cells(5, _
    8) + Sheets(10).Cells(5, 8) _
    + Sheets(11).Cells(5, 8) + Sheets(12).Cells(5, 8) + Sheets(13).Cells(5, 8) + Sheets(14). _
    Cells(5, 8) + Sheets(15).Cells(5, 8) _
    + Sheets(16).Cells(5, 8) + Sheets(17).Cells(5, 11) + Sheets(18).Cells(5, 12)
    Sheets(19).Cells(7, 14) = ErgebnisPE
    ErgebnisT = Sheets(2).Cells(5, 9) + Sheets(3).Cells(5, 9) + Sheets(4).Cells(5, 9) + Sheets( _
    5).Cells(5, 9) _
    + Sheets(6).Cells(5, 9) + Sheets(7).Cells(5, 9) + Sheets(8).Cells(5, 9) + Sheets(9).Cells(5, _
    9) + Sheets(10).Cells(5, 9) _
    + Sheets(11).Cells(5, 9) + Sheets(12).Cells(5, 9) + Sheets(13).Cells(5, 9) + Sheets(14). _
    Cells(5, 9) + Sheets(15).Cells(5, 9) _
    + Sheets(16).Cells(5, 9) + Sheets(17).Cells(5, 12) + Sheets(18).Cells(5, 13)
    Sheets(19).Cells(8, 14) = ErgebnisT
    ErgebnisDI = Sheets(2).Cells(5, 10) + Sheets(3).Cells(5, 10) + Sheets(4).Cells(5, 10) +  _
    Sheets(5).Cells(5, 10) _
    + Sheets(6).Cells(5, 10) + Sheets(7).Cells(5, 10) + Sheets(8).Cells(5, 10) + Sheets(9). _
    Cells(5, 10) + Sheets(10).Cells(5, 10) _
    + Sheets(11).Cells(5, 10) + Sheets(12).Cells(5, 10) + Sheets(13).Cells(5, 10) + Sheets(14). _
    Cells(5, 10) + Sheets(15).Cells(5, 10) _
    + Sheets(16).Cells(5, 10) + Sheets(17).Cells(5, 13) + Sheets(18).Cells(5, 14)
    Sheets(19).Cells(9, 14) = ErgebnisDI
    ErgebnisAT = Sheets(2).Cells(5, 11) + Sheets(3).Cells(5, 11) + Sheets(4).Cells(5, 11) +  _
    Sheets(5).Cells(5, 11) _
    + Sheets(6).Cells(5, 11) + Sheets(7).Cells(5, 11) + Sheets(8).Cells(5, 11) + Sheets(9). _
    Cells(5, 11) + Sheets(10).Cells(5, 11) _
    + Sheets(11).Cells(5, 11) + Sheets(12).Cells(5, 11) + Sheets(13).Cells(5, 11) + Sheets(14). _
    Cells(5, 11) + Sheets(15).Cells(5, 11) _
    + Sheets(16).Cells(5, 11) + Sheets(17).Cells(5, 14) + Sheets(18).Cells(5, 15)
    Sheets(19).Cells(10, 14) = ErgebnisAT
    Application.ScreenUpdating = True
    End Sub
    

    Anzeige
    AW: Zellen mehrerer Tabellen zählen
    19.06.2018 13:20:21
    MCO
    Hallo Namenloser!
    Sorry, aber übersichtlich ist auch das nicht!
    Merke: Wenn du irgendetwas immer wieder machst, GEHT DAS EINFACHER!
    Dein Problem hab ich nicht gelöst, aber etwas Struktur reingebracht:
    Sub Worksheet_Activate()
    Dim ErgebnisWV As Variant
    Dim ErgebnisEE As Variant
    Dim ErgebnisST As Variant
    Dim ErgebnisI As Variant
    Dim ErgebnisPE As Variant
    Dim ErgebnisT As Variant
    Dim ErgebnisDI As Variant
    Dim ErgebnisAT As Variant
    ErgebnisWV = untersub(4)
    ErgebnisWV = ErgebnisWV + Sheets(17).Cells(5, 7) + _
    Sheets(18).Cells(5, 8)
    ErgebnisEE = untersub(5)
    ErgebnisEE = ErgebnisEE + Sheets(17).Cells(5, 8) + _
    Sheets(18).Cells(5, 9)
    ErgebnisST = untersub(6)
    ErgebnisST = ErgebnisST + Sheets(17).Cells(5, 9) + _
    Sheets(18).Cells(5, 10)
    ErgebnisI = untersub(7)
    ErgebnisI = ErgebnisI + Sheets(17).Cells(5, 10) + _
    Sheets(18).Cells(5, 11)
    ErgebnisPE = untersub(8)
    ErgebnisPE = ErgebnisPE + Sheets(17).Cells(5, 11) + _
    Sheets(18).Cells(5, 12)
    ErgebnisT = untersub(9)
    ErgebnisT = ErgebnisT + Sheets(17).Cells(5, 12) + _
    Sheets(18).Cells(5, 13)
    ErgebnisDI = untersub(10)
    ErgebnisDI = ErgebnisDI + Sheets(17).Cells(5, 13) + _
    Sheets(18).Cells(5, 14)
    ErgebnisAT = untersub(11)
    ErgebnisAT = ErgebnisAT + Sheets(17).Cells(5, 14) + _
    Sheets(18).Cells(5, 15)
    With Sheets(19)
    .Cells(3, 14) = ErgebnisWV
    .Cells(4, 14) = ErgebnisEE
    .Cells(5, 14) = ErgebnisST
    .Cells(6, 14) = ErgebnisI
    .Cells(7, 14) = ErgebnisPE
    .Cells(8, 14) = ErgebnisT
    .Cells(9, 14) = ErgebnisDI
    .Cells(10, 14) = ErgebnisAT
    End With
    End Sub
    

    Function untersub(spalte As Long)
    For Sh = 2 To 16
    untersub = untersub + Sheets(Sh).Cells(5, spalte)
    Next Sh
    End Function
    Gruß, MCO
    Anzeige
    AW: Zellen mehrerer Tabellen zählen
    19.06.2018 13:43:39
    Jürgen
    Hallo MCO
    Danke dir für deine Antwort und dein Makro!
    Es dauert nur ein wenig bis ich verstanden habe was wann passiert!
    Ist es nicht möglich, in die Funktion ein
    
    If sh isEmpty then next sh else ... 
    
    mit einzubauen?
    Ich versuch mal ob es irgendie klappen könnte.
    Danke dir Gruß Jürgen
    AW: Zellen mehrerer Tabellen zählen
    19.06.2018 14:45:20
    Jürgen
    Hallo MCO
    Ich denke ich habe mein Problem mit deiner Vorlage lösen können. Vielen Dank für das Grundgerüsst.
    Hier der jetzt funktionierende Code:
    Private Sub Worksheet_Activate()
    Dim ErgebnisWV As Variant
    Dim ErgebnisEE As Variant
    Dim ErgebnisST As Variant
    Dim ErgebnisI As Variant
    Dim ErgebnisPE As Variant
    Dim ErgebnisT As Variant
    Dim ErgebnisDI As Variant
    Dim ErgebnisAT As Variant
    Application.ScreenUpdating = False
    ErgebnisWV = untersub(4)
    If (Sheets(17).Cells(5, 7)) = ("") Then
    ErgebnisWV = ErgebnisWV
    Else
    ErgebnisWV = ErgebnisWV + Sheets(17).Cells(5, 7)
    End If
    If (Sheets(18).Cells(5, 8)) = ("") Then
    ErgebnisWV = ErgebnisWV
    Else
    ErgebnisWV = ErgebnisWV + Sheets(18).Cells(5, 8)
    End If
    ErgebnisEE = untersub(5)
    If (Sheets(17).Cells(5, 8)) = ("") Then
    ErgebnisEE = ErgebnisEE
    Else
    ErgebnisEE = ErgebnisEE + Sheets(17).Cells(5, 8)
    End If
    If (Sheets(18).Cells(5, 9)) = ("") Then
    ErgebnisEE = ErgebnisEE
    Else
    ErgebnisEE = ErgebnisEE + Sheets(18).Cells(5, 9)
    End If
    ErgebnisST = untersub(6)
    If (Sheets(17).Cells(5, 9)) = ("") Then
    ErgebnisST = ErgebnisST
    Else
    ErgebnisST = ErgebnisST + Sheets(17).Cells(5, 9)
    End If
    If (Sheets(18).Cells(5, 10)) = ("") Then
    ErgebnisST = ErgebnisST
    Else
    ErgebnisST = ErgebnisST + Sheets(18).Cells(5, 10)
    End If
    ErgebnisI = untersub(7)
    If (Sheets(17).Cells(5, 10)) = ("") Then
    ErgebnisI = ErgebnisI
    Else
    ErgebnisI = ErgebnisI + Sheets(17).Cells(5, 10)
    End If
    If (Sheets(18).Cells(5, 11)) = ("") Then
    ErgebnisI = ErgebnisI
    Else
    ErgebnisI = ErgebnisI + Sheets(18).Cells(5, 11)
    End If
    ErgebnisPE = untersub(8)
    If (Sheets(17).Cells(5, 11)) = ("") Then
    ErgebnisPE = ErgebnisPE
    Else
    ErgebnisPE = ErgebnisPE + Sheets(17).Cells(5, 11)
    End If
    If (Sheets(18).Cells(5, 12)) = ("") Then
    ErgebnisPE = ErgebnisPE
    Else
    ErgebnisPE = ErgebnisPE + Sheets(18).Cells(5, 12)
    End If
    ErgebnisT = untersub(9)
    If (Sheets(17).Cells(5, 12)) = ("") Then
    ErgebnisT = ErgebnisT
    Else
    ErgebnisT = ErgebnisT + Sheets(17).Cells(5, 12)
    End If
    If (Sheets(18).Cells(5, 13)) = ("") Then
    ErgebnisT = ErgebnisT
    Else
    ErgebnisT = ErgebnisT + Sheets(18).Cells(5, 13)
    End If
    ErgebnisDI = untersub(10)
    If (Sheets(17).Cells(5, 13)) = ("") Then
    ErgebnisDI = ErgebnisDI
    Else
    ErgebnisDI = ErgebnisDI + Sheets(17).Cells(5, 13)
    End If
    If (Sheets(18).Cells(5, 14)) = ("") Then
    ErgebnisDI = ErgebnisDI
    Else
    ErgebnisDI = ErgebnisDI + Sheets(18).Cells(5, 14)
    End If
    ErgebnisAT = untersub(11)
    If (Sheets(17).Cells(5, 14)) = ("") Then
    ErgebnisAT = ErgebnisAT
    Else
    ErgebnisAT = ErgebnisAT + Sheets(17).Cells(5, 14)
    End If
    If (Sheets(18).Cells(5, 15)) = ("") Then
    ErgebnisAT = ErgebnisAT
    Else
    ErgebnisAT = ErgebnisAT + Sheets(18).Cells(5, 15)
    End If
    With Sheets(19)
    .Cells(3, 14) = ErgebnisWV
    .Cells(4, 14) = ErgebnisEE
    .Cells(5, 14) = ErgebnisST
    .Cells(6, 14) = ErgebnisI
    .Cells(7, 14) = ErgebnisPE
    .Cells(8, 14) = ErgebnisT
    .Cells(9, 14) = ErgebnisDI
    .Cells(10, 14) = ErgebnisAT
    End With
    Application.ScreenUpdating = False
    End Sub
    
    Und hier die Funktion
    Function untersub(spalte As Long)
    For Sh = 2 To 16
    If (Sheets(Sh).Cells(5, spalte)) = ("") Then
    untersub = untersub
    Else
    untersub = untersub + Sheets(Sh).Cells(5, spalte)
    End If
    Next Sh
    End Function
    
    Vielen Dank nochmals
    Gruß Jürgen
    Anzeige
    gelöst: Zellen mehrerer Tabellen zählen
    19.06.2018 14:54:14
    Jürgen
    Hier nochmal gekürzt!
    Es geht bestimmt einfacher, aber dafür bin ich zu planlos!
    Private Sub Worksheet_Activate()
    Dim ErgebnisWV As Variant
    Dim ErgebnisEE As Variant
    Dim ErgebnisST As Variant
    Dim ErgebnisI As Variant
    Dim ErgebnisPE As Variant
    Dim ErgebnisT As Variant
    Dim ErgebnisDI As Variant
    Dim ErgebnisAT As Variant
    Application.ScreenUpdating = False
    ErgebnisWV = untersub(4)
    If (Sheets(17).Cells(5, 7)) = ("") Then
    Else
    ErgebnisWV = ErgebnisWV + Sheets(17).Cells(5, 7)
    End If
    If (Sheets(18).Cells(5, 8)) = ("") Then
    Else
    ErgebnisWV = ErgebnisWV + Sheets(18).Cells(5, 8)
    End If
    ErgebnisEE = untersub(5)
    If (Sheets(17).Cells(5, 8)) = ("") Then
    Else
    ErgebnisEE = ErgebnisEE + Sheets(17).Cells(5, 8)
    End If
    If (Sheets(18).Cells(5, 9)) = ("") Then
    Else
    ErgebnisEE = ErgebnisEE + Sheets(18).Cells(5, 9)
    End If
    ErgebnisST = untersub(6)
    If (Sheets(17).Cells(5, 9)) = ("") Then
    Else
    ErgebnisST = ErgebnisST + Sheets(17).Cells(5, 9)
    End If
    If (Sheets(18).Cells(5, 10)) = ("") Then
    Else
    ErgebnisST = ErgebnisST + Sheets(18).Cells(5, 10)
    End If
    ErgebnisI = untersub(7)
    If (Sheets(17).Cells(5, 10)) = ("") Then
    Else
    ErgebnisI = ErgebnisI + Sheets(17).Cells(5, 10)
    End If
    If (Sheets(18).Cells(5, 11)) = ("") Then
    Else
    ErgebnisI = ErgebnisI + Sheets(18).Cells(5, 11)
    End If
    ErgebnisPE = untersub(8)
    If (Sheets(17).Cells(5, 11)) = ("") Then
    Else
    ErgebnisPE = ErgebnisPE + Sheets(17).Cells(5, 11)
    End If
    If (Sheets(18).Cells(5, 12)) = ("") Then
    Else
    ErgebnisPE = ErgebnisPE + Sheets(18).Cells(5, 12)
    End If
    ErgebnisT = untersub(9)
    If (Sheets(17).Cells(5, 12)) = ("") Then
    Else
    ErgebnisT = ErgebnisT + Sheets(17).Cells(5, 12)
    End If
    If (Sheets(18).Cells(5, 13)) = ("") Then
    Else
    ErgebnisT = ErgebnisT + Sheets(18).Cells(5, 13)
    End If
    ErgebnisDI = untersub(10)
    If (Sheets(17).Cells(5, 13)) = ("") Then
    Else
    ErgebnisDI = ErgebnisDI + Sheets(17).Cells(5, 13)
    End If
    If (Sheets(18).Cells(5, 14)) = ("") Then
    Else
    ErgebnisDI = ErgebnisDI + Sheets(18).Cells(5, 14)
    End If
    ErgebnisAT = untersub(11)
    If (Sheets(17).Cells(5, 14)) = ("") Then
    Else
    ErgebnisAT = ErgebnisAT + Sheets(17).Cells(5, 14)
    End If
    If (Sheets(18).Cells(5, 15)) = ("") Then
    Else
    ErgebnisAT = ErgebnisAT + Sheets(18).Cells(5, 15)
    End If
    With Sheets(19)
    .Cells(3, 14) = ErgebnisWV
    .Cells(4, 14) = ErgebnisEE
    .Cells(5, 14) = ErgebnisST
    .Cells(6, 14) = ErgebnisI
    .Cells(7, 14) = ErgebnisPE
    .Cells(8, 14) = ErgebnisT
    .Cells(9, 14) = ErgebnisDI
    .Cells(10, 14) = ErgebnisAT
    End With
    Application.ScreenUpdating = False
    End Sub
    
    Und die Funktion
    Function untersub(spalte As Long)
    For Sh = 2 To 16
    If (Sheets(Sh).Cells(5, spalte)) = ("") Then
    Else
    untersub = untersub + Sheets(Sh).Cells(5, spalte)
    End If
    Next Sh
    End Function
    

    Anzeige
    Noch kompakter...
    20.06.2018 08:00:20
    MCO
    Guten Morgen!
    Ich habe die Bedingung umgekehrt, überflüssige Klammern entfernt, die Variablen in ein Array geschrieben, das nacheinander abgearbeitet werden soll. Testen konnte ich leider nicht, keine Datei dazu.
    Probier das mal aus, gemacht hab ich das vorher auch noch nicht.
    Die Underlines am Ende der Zeilen kannst du in deinem Code entfernen, der Zeilenumbruch wird
    nur für html-Darstellung benötigt
    Private Sub Worksheet_Activate()
    Dim ErgebnisWV As Variant
    Dim ErgebnisEE As Variant
    Dim ErgebnisST As Variant
    Dim ErgebnisI As Variant
    Dim ErgebnisPE As Variant
    Dim ErgebnisT As Variant
    Dim ErgebnisDI As Variant
    Dim ErgebnisAT As Variant
    Dim var_arr As Variant
    var_arr = Array(ErgebnisWV, ErgebnisEE, ErgebnisST, ErgebnisI, ErgebnisPE, ErgebnisT,  _
    ErgebnisDI, ErgebnisAT)
    Application.ScreenUpdating = False
    For v = 0 To UBound(var_arr)
    var_arr(v) = untersub(v + 4)
    If Sheets(17).Cells(5, v + 7)  "" Then var_arr(v + 1) = var_arr(v + 1) + Sheets(17). _
    Cells(5, v + 7)
    If (Sheets(18).Cells(5, v + 8))  "" Then var_arr(v + 1) = var_arr(v + 1) + Sheets(18). _
    Cells(5, v + 8)
    Next v
    With Sheets(19)
    .Cells(3, 14) = ErgebnisWV
    .Cells(4, 14) = ErgebnisEE
    .Cells(5, 14) = ErgebnisST
    .Cells(6, 14) = ErgebnisI
    .Cells(7, 14) = ErgebnisPE
    .Cells(8, 14) = ErgebnisT
    .Cells(9, 14) = ErgebnisDI
    .Cells(10, 14) = ErgebnisAT
    End With
    Application.ScreenUpdating = True
    End Sub
    
    Function untersub(spalte As Long)
    Dim sp
    For Sh = 2 To 16
    sp = Sheets(Sh).Cells(5, spalte).Value
    If sp = "" Then untersub = untersub + sp
    Next Sh
    End Function
    
    Gruß, MCO
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige