Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Makro vereinfachen





Frage

Hallo zusammen, nach ewigem Foren-lesen hab ich es geschafft ein Makro zu basteln, das sogar das tut was ich moechte. (juhu) Allerdings muss das auch irgendwie einfacher gehen - hoffe ich. Ich habe in einer Excel Datei mehrere identische sheets und moechte jeweils die zellen C D und E addieren. Mein Makro sieht folgendermassen aus: Sub Addieren() Dim Summen! Summen = 0 For i = 1 To Worksheets.Count Summen = Summen + Worksheets(i).[C15] Next Range("C15") = Summen For i = 1 To Worksheets.Count Summen = Summen + Worksheets(i).[D15] Next Range("D15") = Summen For i = 1 To Worksheets.Count Summen = Summen + Worksheets(i).[E15] Next Range("E15") = Summen End sub Jetzt moechte ich das allerdings auch noch mit den folgenden Zeilen machen - bis zur Zeile 104. Muss ich jetzt alles mit Copy und Paste machen und jeweils die richtige Zeile einsetzen oder geht das auch irgendwie einfacher?? Waere super, wenn mir jemand weiterhelfen koennte. Danke!

Antwort 1 von rainberg

Hallo,

das ist zwar etwas primitiv, aber funktioniert - vorausgesetzt ich habe Dich richtig verstanden.
Anstatt der MsgBox kannst Du eine beliebige Zelle einsetzen.

In den 3 Zeilen mit den WorksheetFunctionen dürfen sich keine Zeilenvorschübe befinden.

Option Explicit

Sub Addieren()
   Dim dblSummen As Double, sngI As Single
   For sngI = 1 To Worksheets.Count
      dblSummen = dblSummen + WorksheetFunction.Sum(Worksheets(sngI).Range("C15:C104").Value) + WorksheetFunction.Sum(Worksheets(sngI).Range("D15:D104").Value) + WorksheetFunction.Sum(Worksheets(sngI).Range("E15:E104").Value)
   Next
   MsgBox dblSummen
End Sub

Gruß
Rainer

Antwort 2 von Aynaet

Mhm - nee.

Das zaehlt jetzt alles zusammen oder?

Also ich habe 8 gleiche Sheets in einer Datei. In jedem Sheet steht auf C15 eine andere Zahl, jetzt moechte ich im 9ten Sheet (da wo ich alles zusammenfassen moechte) auf C15 die Summe aller Zahlen, die in den anderen 8 Sheets auf C15 stehen erhalten.

Das gleiche dann auch fuer E15 und D15.

Und dann das jeweils so weiter bis C/D/E/115 einzeln pro Zeile.

Ist das verstaendlicher?

Danke!

Antwort 3 von rainberg

Hallo,

also doch falsch verstanden.

Als Ausgleich biete ich Dir eine Formellösung, der ich gegenüber einem Makro den Vorrang geben würde.

Probiers mal:

Schreibe in C15 von Tabelle9 folgende Formel, kopiere diese zunächst nach rechts bis in Spalte E, behalte die Markierung bei und kopiere alle 3 Formeln bis in Zeile 115. Fertig

=SUMME(Tabelle1:Tabelle8!C15)

Achtung! die Ergebnistabelle muß sich rechts neben allen anderen Tabellen befinden.
Der Name von Tabelle1 und Tabelle8 darf nicht geändert werden, es sei denn er wird auch in der Formel angepasst.

Gruß
Rainer

Antwort 4 von nighty

hi Aynaet :-)

statt [E15] kannst du auch

cells(senkrechte,waagerechte) benutzen

oder auch

range(cells(senkrechte,waagerechte),cells(senkrechte,waagerechte)) fuer bereiche

ergo

linke obere zellkoordinaten+rechte untere zellkoordinate

gruss nighty

Antwort 5 von nighty

hi Aynaet :-)

hier noch eine variante,wobei das haettest du auch allein geschafft,trau dir mal ein bisl mehr zu

gruss nighty

Sub Addieren()
For i = 1 To Worksheets.Count
For z = 3 To 5
Cells(15, z) = Cells(15, z) + WorksheetFunction.Sum(Worksheets(i).Range(Worksheets(i).Cells(15, z), Worksheets(i).Cells(104, z)))
Next z
Next
End Sub


Antwort 6 von Aynaet

Danke!!

Hab's geschafft. Habe die Formellösung genommen und noch einiges hinzugedichtet :-)

Werde aber das Makro auch nochmal versuchen wenn ich morgen wieder grade schauen kann, dann hab ich es nächstes Mal einfacher.

Schöne Grüße aus USA! (damit sich niemand über meine Arbeitszeiten wundert hier *gg*)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: