Microsoft Excel

Herbers Excel/VBA-Archiv

Was ist denn hier falsch !?

Betrifft: Was ist denn hier falsch !? von: Udo Kowalleck
Geschrieben am: 26.08.2014 16:10:11

Hallo,
Was stimmt hier nicht?

Sub Formeln3()
zeile = Anzahl + Anzahl + 2
Cells(zeile, 4).FormulaR1C1Local = "=Summe(Z(-" & zeile & ")S4:Z(-2)S4)"
End Sub

Das Programm stürzt nicht ab, aber das Ergebnis verstehe ich nicht. In der Ergebniscelle steht:=SUMME($D36:$D1048576).

Kann das jemand erklären?

Gruß
der ratlose Udo

  

Betrifft: AW: Was ist denn hier falsch !? von: Daniel
Geschrieben am: 26.08.2014 16:30:36

Hi

hier wird R1C1-Schreibwiese für Zellbezüge verwendet, und das in deutsch (Local).

hierbei steht: Z für Zeile und S für Spalte.
nach dem Kennbuchstaben folgt die Zeilen- bzw. Spaltennummer der Zelle die refrenziert werden soll.

=Z1S1 entspricht: =$A$1
=Z3S5 entspricht: =$E$3

bei Relativen Zellbezügen wird der Versatzwert in Klammmern gestellt:
=Z(1)S(1)
bezieht sich auf die Zelle, die sich schräg rechts unter der Zelle mit der Formel befindet:
Z(1): eine Zeile nach unten
S(1): eine Spalte nach rechts
Z(-1): eine Zeile nach oben
S(-1): eine Spalte nach links


in dem oben gezeigten Makro befindet sich folgender Fehler:
- die Formel wird in die Zeile "zeile" geschrieben (bspw Zeile 10)
- der Zellbezug lautet mit "Z(-Zeile)" (also fürs beispiel Z(-10)) und damit "zeile" Zeilen nach oben (10 Zeilen)
damit landet der Zellbezug der Zelle in der Zeile 0 und die gibt es eigentlich nicht.
Excel setzt hier die Zeile ein, die vor der Zeile 1 liegt und das ist in einem rollierenden System die letzte Zeile.

ich vermulte mal, dass die Summe von der ersten Zeile bis zu der Zeile, die sich 2 Zeilen über der Formel befindet, gebildet werden soll und in diesem Fall ist der Code:

Sub Formeln3()
zeile = Anzahl + Anzahl + 2
Cells(zeile, 4).FormulaR1C1Local = "=Summe(Z1S4:Z(-2)S4)"
End Sub
Gruß Daniel


  

Betrifft: AW: Was ist denn hier falsch !? von: Udo Kowalleck
Geschrieben am: 26.08.2014 17:30:57

Hallo Daniel,
jetzt muss ich mich bei dir entschuldigen. Wie immer hast du mir ausführlich und mit allen Erklärungen geantwortet. Das finde ich einfach toll. Es ist fast sowas wie ein Lehrgang in VBA. Danke. Aber dieses mal war es eigentlich nicht nötig. Den Fehler hätte ich selber finden müssen, denn das Wissen habe ich. Seit über 12 Stunden sitze ich hier am Computer und bastle an meinem Programm. Da wird man wirr im Kopf und macht solch einen Fehler. Nächstes mal werde ich grössere Pausen einlegen. Es tut mir leid deine Zeit in Anspruch genommen zu haben.
mit freundlichen Grüßen
Udo


 

Beiträge aus den Excel-Beispielen zum Thema "Was ist denn hier falsch !?"