Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1848to1852
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
Differenz in Schleifen
06.10.2021 08:20:31
Timo
Hallo zusammen,
ich habe ein kleines Problem, was sich für euch sicher recht einfach lösen lässt... Stehe aktuell aber auf dem Schlauch :)
Ich habe Werte in Spalte "AN" fortlaufend nach unten weggeschrieben.
In Spalte "M" möchte ich nun eine Differenz zwischen den Werten aus Spalte "AN" bilden.
Genauer gesagt möchte ich den Wert aus Zelle (1,AN) vom Wert in Zelle (4,AN) abziehen und in Zelle (2,M) schreiben.
Dies soll dann nach unten fortgeführt werden...Sprich Wert aus Zelle (4,AN) vom Wert (7,AN) abziehen und in Zelle (3,M) schreiben...
Die Differenz soll quasi in "3er Steps" in Spalte AN erfolgen, also Wert 4 - Wert 1, Wert 7 - Wert 4, Wert 10 - Wert 7 etc... und einfach fortlaufend in Spalte M untereinander geschrieben werden, beginnend in Zeile 2, da in Zeile 1 (Zelle (1,M)) eine Null stehen soll.
Ich hoffe es ist verständlich ausgedrückt.
Ich habe schon etwas mit 2 For Schleifen versucht, das klappt leider nicht.
Vielen Dank vorab!
Grüße
Timo

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Differenz in Schleifen
06.10.2021 08:48:47
Daniel
HI
da reicht eine Schleife:

for z = 1 to (cells(Rows.Count, "AN").end(xlup).Row  - 1) / 3
Cells(z + 1, "M").value = Cells((z - 1) * 3  + 4, "AN").value - Cells((z - 1) * 3 + 1, "AN").value
Next
oder ganz ohne Schleife, was bei großen Datenmengen schneller ist

with Range("M2:M" & cells(Rows.Count, "AN").end(xlup).Row  - 1) / 3 + 1
.Formula = "=Index(AN:AN,(Row(A1)-1)*3+4)-Index(AN:AN,Row(A1)-1)*3+1)"
.Formula = .Value
end with
gruß Daniel
AW: Differenz in Schleifen
06.10.2021 09:31:16
Timo
Hallo Daniel,
vielen Dank... das funktioniert perfekt!!!
Kannst du mir noch dabei helfen, in Spalte D bei Zeile 1 beginnend und nach unten fortlaufend folgende Differenzen wegzuschreiben:
Wert aus (1,AD) - Wert aus (1,AD) in Zelle (1,D)
Wert aus (2,AD) - Wert aus (1,AD) in Zelle (2,D)
....
Sprich immer den Wert aus Zelle (1,AD) abziehen...
Das wäre perfekt.
Danke dir im Voraus! :)
LG
Timo
Anzeige
AW: Differenz in Schleifen
06.10.2021 10:22:46
Daniel
da musst du doch nichts rechnen.
das solltest du selber hinbekommen.
bei Zellbezug auf die gleiche Zeile die Schleifenvariable verwenden, und beim Zellbezug auf die feste Zeile 1 eben die 1
als Formel kannst du hier einfach mit relativen und absoluten Zellbezügen arbeiten:

with Range("D1:D" & Cells(rows.count, "AD").end(xlup).Row
.Formula = "=AD1-AD$1"
end with
Gruß Daniel
AW: Differenz in Schleifen
06.10.2021 13:42:40
Timo
Hallo Daniel,
vielen Dank erneut für deine Hilfe.
Er zeigt mir immer einen Fehler beim Kompilieren an :
"With-Objekt muss einen benutzerdefinierten Typ oder den Typ Obect oder Variant haben"....
Wie vergebe ich denn für deine Anweisung den passenden Typen?
Mit "With"-Anweisungen habe ich bisher nie gearbeitet :-)
Viele Grüße
Timo
Anzeige
AW: Differenz in Schleifen
06.10.2021 13:57:06
Timo
Hallo Daniel,
das Problem konnte ich lösen :) .... Eine Klammer hat gefehlt!
Eine weitere Frage hätte ich nocht.
Wenn ich aus Spalte "AN" nur jeden 4. Wert vom Wert aus Zelle (1,AD) abziehen möchte...
Wie muss ich die Formel dann umstellen, um die Werte in Spalte D von Zeile 1 an einfach fortlaufend nach unten wegzuschreiben?
Damit bin ich dann wirklich bestens bedient! :-)
Vielen Dank!
AW: Differenz in Schleifen
06.10.2021 15:49:53
Daniel
Hi
versuch dir das mal aus dem Code für deine erste Frage selber abzuleiten.
Gruß Daniel
AW: Differenz
06.10.2021 12:28:35
GerdL
Moin,
für eine einmalige Aktion ist dafür kein VBA notwendig.
SUMME(...) bzw. in der Formel im Code SUM(...) soll nützlich sein.
Gruß Gerd
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige