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

Summe aus Tabellenblättern

Summe aus Tabellenblättern
18.09.2008 11:59:00
Stefano
Hallo!
Ich habe mehrere Tabellenblätter: "Gesamttabelle", "Tabelle1", "Tabelle2" usw. Nun möchte ich, daß in Gesamttabelle Zelle H4 die Summe gebildet wird aus Tabelle1 Zelle H4 und Tabelle2 Zelle H4 usw. Eigentlich kein Problem, allerdings werden nach und nach Tabellenblätter zugefügt (bis zu 50 Stück!). Ist es möglich die Zelle H4 in der Gesamttabelle zu automatisieren, so das automatisch die Summe gebildet wird ohne immer die Formel verändern zu müssen? Das gleiche wie oben gilt dann auch für Zelle H5, H6, H7 bis Zelle H34.
Danke, wie immer, für Eure Hilfe!!
gruß, Stefano

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summe aus Tabellenblättern
18.09.2008 12:27:05
Hajo_Zi
Hallo Stefano,
Gesamtsumme aus Summen über mehrere Tabellen
probiers mal mit
=SUMME(Tabelle1:Tabelle31!E4:F4)
Die Namen "Tabelle1:Tabelle31" musst ‚Du natürlich in Deine Namen ändern!
wobei immer die erste und die letzte Tabelle angegeben werden.
Dabei ist zu beachten, dass zwischen der Tabelle1 und Tabelle 31, kein anderes Tabellenblatt dazwischen liegen darf, welches nicht in die Berechnung mit aufgenommen werden soll. Diese Tabellenblätter sollten dann vor "Tabelle1" oder hinter "Tabelle31" verschoben werden
Gruß Hajo
AW: Summe aus Tabellenblättern
18.09.2008 13:06:00
Stefano
Hallo Hajo, danke für die schnelle Antwort!
Problem ist, dass nach und nach Tabellen zugefügt werden und diese auch unterschiedlich heißen...
Gibt es mit VBA die Möglichkeit, dass er immer alle vorhandenen Blätter einbezieht und nur bestimmte Zellen aus jeder Tabelle summiert?
Anzeige
AW: Summe aus Tabellenblättern
18.09.2008 13:18:00
Hajo_Zi
Hallo Stefano,
mache doch eine leere Starttabelle und Endtabelle und dazwischen fügst Du Deine Tabellen ein. Mit der Formel beziehst Du dich auf die Starttabelle und Endtabelle. Dann kannst Du massenhaft Tabellen einfügen ohne die Formel zu ändern.

AW: Summe aus Tabellenblättern
18.09.2008 14:12:00
David
Hallo Stefano,
per VBA könnte es so gehen:
Option Explicit Sub summe() Dim wks As Worksheet Dim max As Byte Dim formel As String For Each wks In Worksheets If wks.Name "Gesamttabelle" Then formel = formel & "+" & wks.Name & "!A1" End If Next Worksheets("Gesamttabelle").Range("A1").Formula = "=" & formel End Sub


Ist sicher noch anpassungswürdig, aber als Ansatz sollte es gehen. Die Frage ist noch, in welchen Zeilen soll die Formel nachher auftauchen? Mein Code berücksichtig aktuell nur eine einzige Zelle (A1) in allen Tabellen außer "Gesamttabelle".
Gruß
David

Anzeige
AW: Summe aus Tabellenblättern
18.09.2008 15:27:00
Stefano
Hallo David!
Perfekt, hat geklappt! Danke!
AW: Summe aus Tabellenblättern
18.09.2008 16:38:00
Stefano
Hallo! Habe doch noch ein Problem. Habe jetzt folgenden Code:

Sub Workbook_Open()
Dim wk As Worksheet
Dim max As Byte
Dim formel As String
For Each wk In Worksheets
If wk.Name  "GESAMTLISTE" And wk.Name  "WARENAUSGANG" And wk.Name  "WE ohne Contract"  _
Then
formel = formel & "+" & wk.Name & "!H4"
End If
Next
Worksheets("GESAMTLISTE").Range("H4:H34").Formula = "=" & formel
End Sub


Habe jetzt das Problem, dass die Tabellenblätter, welche in der Formel summiert werden sollen, folgendermaßen heißen: "08-308-01", "07-502-2" usw.
Er übernimmt zwar diese Zahlen, jedoch lässt er die Nullen weg und nimmt nicht den kompletten Tabellennamen auch wirklich als Namen. Was eingefügt wird, sieht dann so aus:


=8-308-'01'!H4+7-502-'2'!H4

, sollte aber so aussehen:


='08-308-01'!H4+'07-502-2'!H4


Bitte nochmal um einen kleinen Tip ;)

Anzeige
UDF Summe mehrere Tabellenblätter
18.09.2008 19:52:16
Backowe
Hi Stefano,
ein andere Möglichkeit wäre, eine UDF:
VBA-Code:
Function SummeMultiTab(Zeile As Long, Spalte As Integer)
Dim i As Integer
Dim Summe As Double
Summe = 0
Application.Volatile
For i = 1 To Sheets.Count
  If Sheets(i).Name <> "GESAMTLISTE" And Sheets(i).Name <> "WARENAUSGANG" And _
    Sheets(i).Name <> "WE ohne Contract" Then
      Summe = Summe + Sheets(i).Cells(Zeile, Spalte)
    End If
Next
SummeMultiTab = Summe
End Function
 A
130

Formeln der Tabelle
ZelleFormel
A1=summemultitab(ZEILE()+3;8)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Jürgen
AW: Summe aus Tabellenblättern
David

Hallo Stefano,
das Problem sind die Hochkommata, die in dem Fall notwendig werden. Du musst die Formelerstellung dann folgendermaßen anpassen:

formel = formel & "+'" & wks.Name & "'!A1"


Ist schlecht zu erkennen, nach dem + und vor dem ! steht jeweils zusätzlich ein Hochkomma. Damit hat es bei mir wieder funktioniert.
Gruß
David

AW: Summe aus Tabellenblättern
Stefano

Hallo und danke an euch beide!
David, das klappt jetzt! Super! Nun möchte ich noch, dass der gleiche Code nochmal abläuft, allerdings für die Zelle I4 in der Gesamtliste (zusätzlich zu H4) und da soll dann die Gesamtsumme von allen Blättern I4 gebildet werden. Würdest Du mir den nochmal anpassen? ich bekomm es nicht hin... Dann bin ich auch durch! Vielen Dank im voraus. Gruß, Stefano
AW: Summe aus Tabellenblättern
David

dann einfach den kompletten Code nocheinmal eintragen:

For Each wk In Worksheets
If wk.Name  "GESAMTLISTE" And wk.Name  "WARENAUSGANG" And wk.Name  "WE ohne  _
Contract"  _
Then
formel = formel & "+" & wk.Name & "!H4"
End If
Next
Worksheets("GESAMTLISTE").Range("H4:H34").Formula = "=" & formel


und in der Zeile


formel = formel & "+" & wk.Name & "!H4"


das H4 entsprechend anpassen.
Ich habe gerade noch gesehen, dass du die Formel in mehreren Zellen einträgst:


Worksheets("GESAMTLISTE").Range("H4:H34").Formula = "=" & formel


Das ist in der jetzigen Form nicht dynamisch, d.h. in jeder Zelle des Bereichs H4:H34 wird die Formel mit Bezug auf H4 eingetragen! Soll das so sein oder hast du das noch nciht gemerkt?
Gruß
David

AW: Summe aus Tabellenblättern
Stefano

Hallo David!
So hatte ich es auch probiert:

Sub Workbook_Open()
Dim wk As Worksheet
Dim max As Byte
Dim formel As String
For Each wk In Worksheets
If wk.Name  "GESAMTLISTE" And wk.Name  "WARENAUSGANG" And wk.Name  "WE ohne Contract"  _
Then
formel = formel & "+'" & wk.Name & "'!H4"
End If
Next
Worksheets("GESAMTLISTE").Range("H4:H34").Formula = "=" & formel
For Each wk In Worksheets
If wk.Name  "GESAMTLISTE" And wk.Name  "WARENAUSGANG" And wk.Name  "WE ohne Contract"  _
Then
formel = formel & "+'" & wk.Name & "'!I4"
End If
Next
Worksheets("GESAMTLISTE").Range("I4:I34").Formula = "=" & formel
End Sub


Zelle H4 ist jetzt richtig: Er summiert alle H4's aus den anderen Blättern!
In Zelle I4 summiert Excel jetzt aber alle I4's und H4's, da soll aber nur I4 auftauchen...
Sry, habs nicht so mit VBA, hoffe es ist nicht zu verwirrend!


Ich habe gerade noch gesehen, dass du die Formel in mehreren Zellen einträgst:


Das klappt so, wie ich es möchte: in H5 wird die Summe aus allen Blättern von H5 eingetragen, in H6 wird die Summe aus allen Blättern von H6 eingetragen usw...das ist so richtig, nur in Spalte I ist halt noch der Fehler wie oben beschrieben!
LG, Stefano

AW: Summe aus Tabellenblättern
David

Ok, mein Fehler. Du musst vor dem zweiten Durchlauf natürlich die Variable "formel" wieder leer machen:
set formel = ""
in der Zeile vor dem "For Each..."
Gruß
David
AW: Summe aus Tabellenblättern
Stefano

Müsste dann so aussehen?

Sub Workbook_Open()
Dim wk As Worksheet
Dim max As Byte
Dim formel As String
For Each wk In Worksheets
If wk.Name  "GESAMTLISTE" And wk.Name  "WARENAUSGANG" And wk.Name  "WE ohne Contract"  _
Then
formel = formel & "+'" & wk.Name & "'!H4"
End If
Next
Worksheets("GESAMTLISTE").Range("H4:H34").Formula = "=" & formel
Set formel = ""
For Each wk In Worksheets
If wk.Name  "GESAMTLISTE" And wk.Name  "WARENAUSGANG" And wk.Name  "WE ohne Contract"  _
Then
formel = formel & "+'" & wk.Name & "'!I4"
End If
Next
Worksheets("GESAMTLISTE").Range("I4:I34").Formula = "=" & formel
End Sub


Dann kommt bei Set formel = "" der Fehler: "Objekt erforderlich"!

AW: Summe aus Tabellenblättern
David

lass das SET weg.
Gruß
David
AW: Summe aus Tabellenblättern
Stefano

DANKE!! Jetzt klappts
erledigt
zu

zu
Kleine Änderung der UDF
Backowe

Hi Stefano,
GESAMTLISTE

 A
16000
22690

Formeln der Tabelle
ZelleFormel
A1=summemultitab(H4:H6)
A2=summemultitab(I4)


Tabelle1

 HI
410001345
51000 
61000 


Tabelle2

 HI
410001345
51000 
61000 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
VBA-Code:
Function SummeMultiTab(Bereich As Range)
Dim Summe As Double
Dim ws As Worksheet
Summe = 0
Application.Volatile
For Each ws In Worksheets
  If ws.Name <> "GESAMTLISTE" And _
    ws.Name <> "WARENAUSGANG" And _
    ws.Name <> "WE ohne Contract" Then
      Summe = Summe + Application.Sum(ws.Range(Bereich.Address))
  End If
Next
SummeMultiTab = Summe
End Function
Gruß Jürgen
Anzeige
AW: Summe aus Tabellenblättern
19.09.2008 08:21:00
David
Hallo Stefano,
das Problem sind die Hochkommata, die in dem Fall notwendig werden. Du musst die Formelerstellung dann folgendermaßen anpassen:

formel = formel & "+'" & wks.Name & "'!A1"


Ist schlecht zu erkennen, nach dem + und vor dem ! steht jeweils zusätzlich ein Hochkomma. Damit hat es bei mir wieder funktioniert.
Gruß
David

AW: Summe aus Tabellenblättern
19.09.2008 11:06:00
Stefano
Hallo und danke an euch beide!
David, das klappt jetzt! Super! Nun möchte ich noch, dass der gleiche Code nochmal abläuft, allerdings für die Zelle I4 in der Gesamtliste (zusätzlich zu H4) und da soll dann die Gesamtsumme von allen Blättern I4 gebildet werden. Würdest Du mir den nochmal anpassen? ich bekomm es nicht hin... Dann bin ich auch durch! Vielen Dank im voraus. Gruß, Stefano
Anzeige
AW: Summe aus Tabellenblättern
19.09.2008 11:26:00
David
dann einfach den kompletten Code nocheinmal eintragen:

For Each wk In Worksheets
If wk.Name  "GESAMTLISTE" And wk.Name  "WARENAUSGANG" And wk.Name  "WE ohne  _
Contract"  _
Then
formel = formel & "+" & wk.Name & "!H4"
End If
Next
Worksheets("GESAMTLISTE").Range("H4:H34").Formula = "=" & formel


und in der Zeile


formel = formel & "+" & wk.Name & "!H4"


das H4 entsprechend anpassen.
Ich habe gerade noch gesehen, dass du die Formel in mehreren Zellen einträgst:


Worksheets("GESAMTLISTE").Range("H4:H34").Formula = "=" & formel


Das ist in der jetzigen Form nicht dynamisch, d.h. in jeder Zelle des Bereichs H4:H34 wird die Formel mit Bezug auf H4 eingetragen! Soll das so sein oder hast du das noch nciht gemerkt?
Gruß
David

Anzeige
AW: Summe aus Tabellenblättern
19.09.2008 11:55:00
Stefano
Hallo David!
So hatte ich es auch probiert:

Sub Workbook_Open()
Dim wk As Worksheet
Dim max As Byte
Dim formel As String
For Each wk In Worksheets
If wk.Name  "GESAMTLISTE" And wk.Name  "WARENAUSGANG" And wk.Name  "WE ohne Contract"  _
Then
formel = formel & "+'" & wk.Name & "'!H4"
End If
Next
Worksheets("GESAMTLISTE").Range("H4:H34").Formula = "=" & formel
For Each wk In Worksheets
If wk.Name  "GESAMTLISTE" And wk.Name  "WARENAUSGANG" And wk.Name  "WE ohne Contract"  _
Then
formel = formel & "+'" & wk.Name & "'!I4"
End If
Next
Worksheets("GESAMTLISTE").Range("I4:I34").Formula = "=" & formel
End Sub


Zelle H4 ist jetzt richtig: Er summiert alle H4's aus den anderen Blättern!
In Zelle I4 summiert Excel jetzt aber alle I4's und H4's, da soll aber nur I4 auftauchen...
Sry, habs nicht so mit VBA, hoffe es ist nicht zu verwirrend!


Ich habe gerade noch gesehen, dass du die Formel in mehreren Zellen einträgst:


Das klappt so, wie ich es möchte: in H5 wird die Summe aus allen Blättern von H5 eingetragen, in H6 wird die Summe aus allen Blättern von H6 eingetragen usw...das ist so richtig, nur in Spalte I ist halt noch der Fehler wie oben beschrieben!
LG, Stefano

Anzeige
AW: Summe aus Tabellenblättern
19.09.2008 12:13:00
David
Ok, mein Fehler. Du musst vor dem zweiten Durchlauf natürlich die Variable "formel" wieder leer machen:
set formel = ""
in der Zeile vor dem "For Each..."
Gruß
David
AW: Summe aus Tabellenblättern
19.09.2008 12:25:00
Stefano
Müsste dann so aussehen?

Sub Workbook_Open()
Dim wk As Worksheet
Dim max As Byte
Dim formel As String
For Each wk In Worksheets
If wk.Name  "GESAMTLISTE" And wk.Name  "WARENAUSGANG" And wk.Name  "WE ohne Contract"  _
Then
formel = formel & "+'" & wk.Name & "'!H4"
End If
Next
Worksheets("GESAMTLISTE").Range("H4:H34").Formula = "=" & formel
Set formel = ""
For Each wk In Worksheets
If wk.Name  "GESAMTLISTE" And wk.Name  "WARENAUSGANG" And wk.Name  "WE ohne Contract"  _
Then
formel = formel & "+'" & wk.Name & "'!I4"
End If
Next
Worksheets("GESAMTLISTE").Range("I4:I34").Formula = "=" & formel
End Sub


Dann kommt bei Set formel = "" der Fehler: "Objekt erforderlich"!

Anzeige
AW: Summe aus Tabellenblättern
19.09.2008 12:29:00
David
lass das SET weg.
Gruß
David
AW: Summe aus Tabellenblättern
19.09.2008 15:12:00
Stefano
DANKE!! Jetzt klappts
erledigt
19.09.2008 18:20:00
zu
zu
Kleine Änderung der UDF
19.09.2008 11:56:11
Backowe
Hi Stefano,
GESAMTLISTE

 A
16000
22690

Formeln der Tabelle
ZelleFormel
A1=summemultitab(H4:H6)
A2=summemultitab(I4)


Tabelle1

 HI
410001345
51000 
61000 


Tabelle2

 HI
410001345
51000 
61000 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
VBA-Code:
Function SummeMultiTab(Bereich As Range)
Dim Summe As Double
Dim ws As Worksheet
Summe = 0
Application.Volatile
For Each ws In Worksheets
  If ws.Name <> "GESAMTLISTE" And _
    ws.Name <> "WARENAUSGANG" And _
    ws.Name <> "WE ohne Contract" Then
      Summe = Summe + Application.Sum(ws.Range(Bereich.Address))
  End If
Next
SummeMultiTab = Summe
End Function
Gruß Jürgen
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige