Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
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
Inhaltsverzeichnis

FormulaR1C1 Aufbau und Funktionsweise

FormulaR1C1 Aufbau und Funktionsweise
10.05.2016 09:40:40
Nicolai
Guten Tag Excel-Forum,
durch den Betreff erkennbar habe ich Fragen zu FormulaR1C1.
Ziel soll sein, von einem bestehenden Auftrag eine produzierte (Teil-)Menge abzuziehen und diese dann mit Bestellnummer und Lieferdatum auf ein neues Blatt zu kopieren.
Die drei Informationen befinden sich in einer 2x2 Matrix geordnet nach den zu liefernden Kalenderwochen. Hierbei befindet sich die Mengeninformation in der ersten Spalte.
Bei Beenden einer Produktion möchte ich in die erste Zelle der folgenden Spalte die produzierte Menge eintragen und den zugehörigen Auftrag auswählen. In der darunterliegenden Zelle soll nun die Formel "=Summe(Zu Beginn ausgewählte Zelle : Zelle der ersten Zeile (in Bezug auf die Zelle in welche die Formel eingetragen wird)" eingetragen werden.
Z.B. =Summe(A3:B1) oder =Summe(A5:B1) etc.
So ist das Makro flexibel und kann jeweils auf verschiedene KW und Aufträge derselben KW angewendet werden.
Mein Code beginnt mit diesen Zeilen:
Dim selr As Integer
Dim selc As Integer
selr = ActiveCell.Row
selc = ActiveCell.Column
Cells(2, selc + 1).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" + Format(selr - 2) + "]C[-1]:R[-1]C)"
Dies liefert mir diese Formel:
=SUMME(S1:T3)
Wobei mir dieser Code:
ActiveCell.FormulaR1C1 = "=SUM(R[" + Format(selr - 2) + "]C[1]:R[-1]C)"
diese Formel liefert:
=SUMME(T1:U3)
Warum ergibt sich diese gravierende Änderung an beiden Termen, obwohl ich nur einen verändere?
Wie muss ich die Variable selr einbinden?
Beste Grüße
Nicolai

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: FormulaR1C1 Aufbau und Funktionsweise
10.05.2016 10:22:29
Rudi
Hallo,
1. werden Strings mit & verkettet und nicht mit +.
2. das Format() ist überflüssig.
ActiveCell.FormulaR1C1 = "=SUM(R[" & selr - 2 & "]C[-1]:R[-1]C)"
3. die Angaben in [] sind relative Angaben zur aktuellen Position.
Select ist in VBA nur äußerst selten erforderlich.
Cells(2, selc + 1).FormulaR1C1 = "=SUM(R[" & selr - 2 & "]C[-1]:R[-1]C)"
Gruß
Rudi

AW: FormulaR1C1 Aufbau und Funktionsweise
10.05.2016 10:51:06
Nicolai
Hallo Rudi,
vielen Dank für deine Antwort. Ich habe meinen Code dementsprechend angepasst.
In der Theorie ist mir klar wie Excel arbeitet:
R[1] = Zelle unterhalb C[1] = Zelle rechts
R[-1] = Zelle oberhalb C[-1] = Zelle links
Nur warum wird das nicht praktisch umgesetzt?
Wähle ich A3 zu Beginn aus ist die Variable selr = 3.
3-2 ergibt 1, somit erhalte ich R[1]C[-1] Dies sollte mir doch die Zelle A3 liefern?
Ich erhalte A1.
Wie läuft die Auswertung der Werte innerhalb [] ab?
Und warum verändern sich beide Terme, wenn ich die 1 in eine -1 verändere?
Bester Gruß
Nicolai

Anzeige
AW: FormulaR1C1 Aufbau und Funktionsweise
10.05.2016 11:10:51
Nicolai
Nochmal eine Anmerkung.
Warum liefert
Cells(2, selc + 1).FormulaR1C1 = "=SUM(R[" & selr - 2 & "]C[-1]:R[-1]C)"
und
Cells(2, selc + 1).FormulaR1C1 = "=SUM(R[-1]C[-1]:R[" & selr - 2 & "]C)"
dasselbe Ergebnis =SUMME(A1:B3).

AW: FormulaR1C1 Aufbau und Funktionsweise
10.05.2016 11:22:40
Rudi
Hallo,
weil das von Excel automatisch gedreht wird.
Schreib mal =Summe(B3:A1) in eine Zelle.
Gruß
Rudi

AW: FormulaR1C1 Aufbau und Funktionsweise
10.05.2016 11:15:02
Rudi
Hallo,
somit erhalte ich R[1]C[-1] Dies sollte mir doch die Zelle A3 liefern?
nein. einen Fehler. von A gesehen ist C[-1] ungültig, da es links von A keine Zellen gibt.
Und warum verändern sich beide Terme, wenn ich die 1 in eine -1 verändere?
weil rechts was anderes als links ist.
Wenn T aktiv ist, ergibt C[1] U und C[-1] S.
Gruß
Rudi

Anzeige
AW: FormulaR1C1 Aufbau und Funktionsweise
10.05.2016 11:23:17
Nicolai
Aber der Bezug liegt doch, beim Eintragen der Formel, auf der Zelle B2.
Ist das korrekt oder merkt sich Excel meine Ausgangszelle?
Vielen Dank für deine bisherige Hilfe (~:

AW: FormulaR1C1 Aufbau und Funktionsweise
10.05.2016 11:46:07
Rudi
Hallo,
aktive Zelle: A3
somit ist
selc=1
selr=3
Cells(2, selc + 1) entspricht B2
somit
R[" & selr - 2 & "]C[-1] = R[1]C[-1] = A3
R[-1]C = B1
wird zu =Summe(A3:B1) und ergibt in B2 einen Zirkelbezug.

AW: FormulaR1C1 Aufbau und Funktionsweise
10.05.2016 12:32:26
Nicolai
Ahh. Ich möchte natürlich nur die Summe aus zwei Werten. :-)
Wie wird die Formel =Summe(A3;B1) geschrieben?
Beste Grüße
Nicolai

Anzeige
, statt : warum 'natürlich'? owT
10.05.2016 12:50:12
Rudi

AW: , statt : warum 'natürlich'? owT
10.05.2016 14:14:47
Nicolai
Super. Vielen Dank.
Jetzt verstehe ich auch was mein Problem war.
Durch den Doppelpunkt habe ich einen Bereich vorgegeben und damit gab es keine Änderung durch vertauschen der Terme. A3:B1 wird damit als A1:B3 ausgegeben. Was nicht zu meinem Ziel führte.
Durch ersetzen des : durch , läuft nun alles reibungslos.
Beste Grüße
Nicolai

AW: , statt : warum 'natürlich'? owT
11.05.2016 10:16:46
Herbert
Hi Rudi,
wow, Du bist ja nicht nur ein spitzen Excel-Profi, Du bist auch noch ein spitzen Excel-Dozent! Klasse, Deine Erklärungen!
Have a nice day!
Servus

8 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige