Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
840to844
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
840to844
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Summe aus aktiven Tabellen

Summe aus aktiven Tabellen
30.01.2007 16:16:37
Thomas
hi ich bräuchte eure hilfe! und zwar habe ich ein makro erstellt welches mir ermöglicht gewünscht datein zu öffnen die dann wie im code definiert formatiert werden.
Jetzt würde ich gerne aus der Spalte J der offenen (aktiven) und schon formatierten Tabellen eine Summe in meiner Hauptabelle erstellen. Mein problem ist aber das es immer andere Tabellen sein werden und die natürlich auch immer anders heißen werden und ich somit im code den Tabellem keinen namen geben kann. Das heißt ich bräuchte einen Code der auf alle zur Zeit geöffneten Tabell zugreift bis auf meine Hauptabelle (wobei hier der name natürlich immer gleich bleibt)
würd mich freuen wenn mir hier wer helfen könnte, danke
mein derzeitiger code:

Sub ersetzen()
Dateien = Application.GetOpenFilename _
("Excel-Dateien (*.xls), *.xls", MultiSelect:=True)
Application.ScreenUpdating = False
If IsArray(Dateien) Then
For i = 1 To UBound(Dateien)
Workbooks.Open Dateien(i)
With ActiveWorkbook
For n = 1 To Sheets.Count
.Sheets(n).Cells.Replace What:="E", Replacement:="1", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False
Cells.Replace What:="BA", Replacement:="0", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False
.Sheets(n).Cells.Replace What:="BA", Replacement:="0", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False
Cells.Replace What:="BA", Replacement:="0", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False
.Sheets(n).Cells.Replace What:="Status", Replacement:="0", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False
Cells.Replace What:="BA", Replacement:="0", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False
Next
End With
Next
End If
End 

Sub

		

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summe aus aktiven Tabellen
30.01.2007 16:38:54
EtoPHG
Hallo Thomas,
So mal als Ansatz

Sub Versiv()
Dim wb As Workbook
Dim ws As Worksheet
For Each wb In Application.Workbooks
If wb.Name <> ThisWorkbook.Name Then
For Each ws In wb.Worksheets
MsgBox "Arbeitsmappe:" & wb.Name & "Tabelle: " & ws.Name
Next
End If
Next
End Sub

Den Code würde ich in einem Modul Deiner MasterMappe versorgen und anstelle der Msgbox, setzt Du Deinen Code ein.
Gruss Hansueli
AW: Summe aus aktiven Tabellen
30.01.2007 16:53:01
Thomas
Vielen Dank für die rasche antwort und den tollen code...er ruft jetzt tatsächlich sämtliche aktive Excel tabellen auf...allerdings macht er damit nichts. wie kann ich denn in deinen code einen passenden summen code einfügen (nimm die summe von spalte J aus allen aktiven tabellen und kopiere in zelle x in haupttabelle)?
Anzeige
AW: Summe aus aktiven Tabellen
30.01.2007 17:03:08
EtoPHG
Hallo Thomas,
Also ich weiss ja nicht wo bei Dir die Zelle X sitzt und wie Deine Tabelle heisst.
Aber mal als Annahme sie heisst "Tabelle1" und die Zelle ist "X1" dann so:

Sub Versiv()
Dim wb As Workbook
Dim ws As Worksheet
Dim dblSumme As Double
For Each wb In Application.Workbooks
If wb.Name <> ThisWorkbook.Name Then
For Each ws In wb.Worksheets
dblSumme = dblSumme + Application.WorksheetFunction.Sum(ws.Range("J:J"))
Next
End If
Next
ThisWorkbook.Sheets("Tabelle1").Range("X1").Value = dblSumme            ' Tabellenname und Zellenaddresse ggf. anpassen
End Sub

Gruss Hansueli
Anzeige
AW: Summe aus aktiven Tabellen
30.01.2007 16:57:28
fcs
Hallo Thomas,
berechne die Summen doch innerhalb deiner Schleifen wenn die Formatierung durchgeführt wird.
Ich hab einfach noch einmal eine 2. Schleife eingefügt, die die Spalte J aller Blätter in der gerade aktiven Arbeitsmappe summiert.
Nachdem alle ausgewählten Arbeitsmappen abgearbeitet sind wird die Summe in die gewünschte Zelle eingetragen.
Gibt es einen Grund, warum du die Zeile

Cells.Replace What:="BA", Replacement:="0", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False

mehrfach wiederholst?
Gruss
Franz

Sub ersetzen()
Dateien = Application.GetOpenFilename _
("Excel-Dateien (*.xls), *.xls", MultiSelect:=True)
Application.ScreenUpdating = False
If IsArray(Dateien) Then
SummeSpalteJ = 0
For i = 1 To UBound(Dateien)
Workbooks.Open Dateien(i)
With ActiveWorkbook
For n = 1 To .Sheets.Count
.Sheets(n).Cells.Replace What:="E", Replacement:="1", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False
Cells.Replace What:="BA", Replacement:="0", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False
.Sheets(n).Cells.Replace What:="BA", Replacement:="0", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False
Cells.Replace What:="BA", Replacement:="0", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False
.Sheets(n).Cells.Replace What:="Status", Replacement:="0", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False
Cells.Replace What:="BA", Replacement:="0", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False
Next
For n = 1 To .Sheets.Count
SummeSpalteJ = SummeSpalteJ + Application.WorksheetFunction.Sum(.Sheets(n).Range("J:J"))
Next
End With
Next
Workbooks("Hauptdatei.xls").Worksheets("Tabelle1").Range("B4").Value = SummeSpalteJ
End If
End

Anzeige
AW: Summe aus aktiven Tabellen
30.01.2007 17:06:15
Thomas
oh wahnsinn es funktioniert...dann war der tag doch nicht umsonst :) danke schön :)
ja das kann ich dir erklären warum sich das wiederholt, weil ich mich mit solchen codes nicht auskenne und es für mich so am einfachsten war
einmal werden alle E in 1 geschrieben, einmal alle BA in 0 und einmal Status in 0 sind dann 3 wiedrholungen ;) kann mir schon vorstellen das das alles in einem aufwaschen geht, nur wie gesagt ich kenn mich da leider nicht aus und solang es funktioniert dachte ich lassen wirs lieber so :)
AW: Summe aus aktiven Tabellen
30.01.2007 17:30:56
fcs
Hallo Thomas,
die 3 Ersetzungen sind schon ok. Nur dass du danach noch jeweils die Zeilen mit "Cells...." hast machte mich stutzig. Sie sind wahrscheinlich überflüssig.
Gruss
Franz

gekürzter Code:
Sub ersetzen()
Dateien = Application.GetOpenFilename _
("Excel-Dateien (*.xls), *.xls", MultiSelect:=True)
Application.ScreenUpdating = False
If IsArray(Dateien) Then
SummeSpalteJ = 0
For i = 1 To UBound(Dateien)
Workbooks.Open Dateien(i)
With ActiveWorkbook
For n = 1 To .Sheets.Count
.Sheets(n).Cells.Replace What:="E", Replacement:="1", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False
.Sheets(n).Cells.Replace What:="BA", Replacement:="0", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False
.Sheets(n).Cells.Replace What:="Status", Replacement:="0", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False
Next
For n = 1 To .Sheets.Count
SummeSpalteJ = SummeSpalteJ + Application.WorksheetFunction.Sum(.Sheets(n).Range("J:J"))
Next
End With
Next
Workbooks("Hauptdatei.xls").Worksheets("Tabelle1").Range("B4").Value = SummeSpalteJ
End If
End

Anzeige
AW: Summe aus aktiven Tabellen
31.01.2007 08:40:54
Thomas
Eine Frage hätte ich hierzu noch, was muß ich denn schreiben wenn ich gerne hätte das er überprüft ob in der spalte B4 schon etwas drinnen steht und wenn ja er um eine spalte rechts die summe einträgt (also c4 usw.)?
AW: Summe aus aktiven Tabellen
31.01.2007 23:47:29
fcs
Hallo Thomas,
passe das Makro am Ende wie folgt an.
Gruss
Franz

Next
i = 0
Do Until IsEmpty(Workbooks("Hauptdatei.xls").Worksheets("Tabelle1").Range("B4").Offset(0, i))
i = i + 1
Loop
Workbooks("Hauptdatei.xls").Worksheets("Tabelle1").Range("B4").Offset(0, i).Value = SummeSpalteJ
End If
End

AW: Summe aus aktiven Tabellen
31.01.2007 08:51:51
Thomas
ich hätter hierzu noch eine Frage. Was muß ich denn schreiben wenn ich möchte das er überprüft ob in der Zelle B4 schon etwas steht und wenn ja er die Summe eine spallte rechts davon einträgt (also in C4). vorallem was passiert wenn ich das nächste eben auch schon was in c4 steht, wie schaff ichs das er dann eben in d4 schreibt?
danke!
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige