Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
976to980
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
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Summenformel mit VBA
09.05.2008 15:29:00
Larissa
Hallo,
wieder stehe ich vor einem Problem:
Ich übertrage per VBA eine Tabelle mit 4 Spalten auf ein neues Tabellenblatt und lösche dann alle Formeln.
Jetzt möchte ich, dass unterhalb der 4. Spalte eine Formel mit der Summe von dieser Tabelle generiert wird.
Danach wird wieder eine neue Tabelle darunter eingefügt, wo wieder die Formel mit der Summe unterhalb der 4. Spalte stehen sollte.
Mit dem Makrorekorder sieht die Formel einfach so aus:
ActiveCell.FormulaR1C1 = "=SUM(R[-8]C:R[-1]C)"
Die Tabellen sind immer unterschiedlich lang. Wie kann das funktionieren?
Vielen Dank für Eure Hilfe,
Larissa

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zeige bitte mal den vorhandenen Code o.w.T
09.05.2008 15:32:00
Reinhard

AW: Zeige bitte mal den vorhandenen Code o.w.T
09.05.2008 15:47:00
Larissa
ok, ich habe die Tabelle mal hochgeladen:
https://www.herber.de/bbs/user/52270.xls
In das blaue Feld sollte eine Summenformel per VBA eingetragen werden und in das grüne muss dann eine Formel mit dem Umrechnungskurs aus dem gelben Feld stehen, damit dort der EUR Betrag steht. Das wäre dann meine nächste Aufgabe.
Das Problem ist, dass jede Tabelle unterschiedlich lang ist. D.h. nach diesem Prozess wird wieder eine neue Tabelle eingefügt für ein neues Land.
Die Markierung steht nach dem letzten Makro genau so, wie sie jetzt ist. Vielleicht gibt es ja ein Makro, dass in die aktive Zelle die Summenformel aus der Markierung setzt. Das wäre super.
Lieben Gruß,
Larissa

Anzeige
Datei kam an, wo bitte ist der Code? :-) o.w.T.
09.05.2008 15:52:30
Reinhard

Danach frage ich ja ;-)
09.05.2008 15:59:51
Larissa
Ich suche nach dem VBA-Code, der in die ActivCell eine Summenformel setzt.
Die Tabellen sind immer unterschiedlich lang, deshalb kann ich nicht sagen, immer 7 Schritte nach oben oder so.
Lieben Gruß,
Larissa

AW: Danach frage ich ja ;-)
09.05.2008 16:32:00
Tino
Hallo Larissa,
versuche es mal hiermit.

Sub SummeFormel()
Dim Zelle As Range, A As Long, Adresse As String
For A = 1 To Application.WorksheetFunction.CountIf(Columns("A:A"), 1)
If A = 1 Then
Set Zelle = Columns("A:A").Find(What:="1", After:=Range("A1"), LookIn:=xlFormulas, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False)
Adresse = Range(Zelle, Zelle.End(xlDown)).Offset(0, 4).Address
Zelle.End(xlDown).Offset(1, 4).Formula = "=SUM(" & Adresse & ")"
Else
Set Zelle = Zelle.FindNext(Zelle)
Adresse = Range(Zelle, Zelle.End(xlDown)).Offset(0, 4).Address
Zelle.End(xlDown).Offset(1, 4).Formula = "=SUM(" & Adresse & ")"
End If
Next A
End Sub


Gruß
Tino

Anzeige
AW: Danach frage ich ja ;-)
09.05.2008 16:46:25
Larissa
Hallo Tino,
schön von Dir zu hören ;-)
Bei einer Tabelle funktioniert es, wenn aber ein weiteres Land dazu kommt, nicht mehr.
Da ist noch irgendwo der Wurm drinnen.
Tabelle nochmal mit Makro hochgeladen:
https://www.herber.de/bbs/user/52271.xls
Lieben Gruß und vielen Dank,
Larissa

AW: Danach frage ich ja ;-)
09.05.2008 16:52:00
Tino
Hallo,
habe mal mit mehreren Tabellen getestet, die FindNext funktionierte nicht sauber warum weis ich auch nicht.
Wen er die nicht mag machen wir es eben so.

Sub SummeFormel()
Dim Zelle As Range, A As Long, Adresse As String
For A = 1 To Application.WorksheetFunction.CountIf(Columns("A:A"), 1)
If A = 1 Then
Set Zelle = Columns("A:A").Find(What:="1", After:=Range("A1"), LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
Adresse = Range(Zelle, Zelle.End(xlDown)).Offset(0, 4).Address
Zelle.End(xlDown).Offset(1, 4).Formula = "=SUM(" & Adresse & ")"
Else
Set Zelle = Columns("A:A").Find(What:="1", After:=Zelle, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
Adresse = Range(Zelle, Zelle.End(xlDown)).Offset(0, 4).Address
Zelle.End(xlDown).Offset(1, 4).Formula = "=SUM(" & Adresse & ")"
End If
Next A
End Sub


Gruß
Tino

Anzeige
mit Range bei FindNext
09.05.2008 17:04:00
Tino
Hallo,
hab es gefunden, man muss mit Range arbeiten damit FindNext Funktioniert.

Sub SummeFormel()
Dim Zelle As Range, A As Long, Adresse As String
For A = 1 To Application.WorksheetFunction.CountIf(Columns("A:A"), 1)
If A = 1 Then
Set Zelle = Range("A:A").Find(What:="1", After:=Range("A1"), LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
Adresse = Range(Zelle, Zelle.End(xlDown)).Offset(0, 4).Address
Zelle.End(xlDown).Offset(1, 4).Formula = "=SUM(" & Adresse & ")"
Else
Set Zelle = Range("A:A").FindNext(After:=Zelle)
Adresse = Range(Zelle, Zelle.End(xlDown)).Offset(0, 4).Address
Zelle.End(xlDown).Offset(1, 4).Formula = "=SUM(" & Adresse & ")"
End If
Next A
End Sub


Gruß
Tino

Anzeige
Funktioniert Erstklassig !!!
09.05.2008 17:05:44
Larissa
Lieber Tino,
das ist ja mal wieder fantastisch, wie Du das immer hinbekommst.
Jetzt spielt die blöde Markierung gar keine Rolle mehr - Einfach Super.
Vielen Dank und ganz liebe Grüße,
Larissa

zu
09.05.2008 17:18:00
zu
zu

Rüffel
09.05.2008 17:20:00
Tino
Hallo,
muss mir selbst einen Rüffel geben, bei FindNext muss ich natürlich auch den Suchbereich angeben!
Na ja bevor ich kritisiert werden, gebe ich mir den Rüffel lieber selbst.
Gruß
Tino

Sollen immer nur 7 Zeilen summiert werden ?
09.05.2008 15:37:51
NoNet
Hallo Larissa,
ich habe es nicht ganz verstanden : Funktioniert das Makro wie gewünscht oder nicht ?
Sollen also IMMER GENAU 7 Zeilen addiert werden ?
Kopierst Du wirklich 4 SPALTEN (also z.B. Zahlen aus A1:D1) oder etwa doch 4 ZEILEN (also z.B. A1:A4) ?
Schau Dir zum besseren Verständnis dieser Funktion bzw. R1C1-Schreibweise mal folgenden Beitrag im Spotlight-Forum an :
http://spotlight-wissen.de/archiv/message/231967.html
Gruß, NoNet
Anzeige

167 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige