R1C1 Notifikation

Bild

Betrifft: R1C1 Notifikation
von: Aston
Geschrieben am: 28.05.2015 19:09:32

Liebe Mitstreiter und Excel-VBA-Profis.
Da meine Formeln sehr lang sind und ich viele Datensätze habe, ist das Excel am Schluss sehr gross.
Um das zu verhindern, möchte ich per VBA beim Öffnen des Excels die Formeln via VBA generieren lassen und auf die benötigte Anzahl Zeilen "runterkopieren". Das klappt.
Ich mag den R1C1-Style nicht so und möchte dies in A1-Notation ändern. geht das?
Wie bin ich vorgegangen:
- Ich starte den Makrorecorder
- Zellen, in die ich Formeln eingegeben habe, setze ich mit "F2" in den EDIT-modus,
- drücke Enter
- stoppe den Recorder und
- versuche das dann umzubauen in A1 Notation.
Hier habe ich das Problem: Ein Beispiel:
ActiveCell.FormulaR1C1 = "=IF(LEN(RC[-2])<8,RC[-2],""XXXX"")"
ich wollte es umbauen, was aber nicht klappt... Bitte gebt mir einen Tip, wenn so was geht, wie es hier aussehen müsste. Merci!
Gruss Aston

Bild

Betrifft: Ändere das aufgezeichnete Pgm nachträglich ...
von: Luc:-?
Geschrieben am: 28.05.2015 19:34:42
…einfach von ActiveCell.FormulaR1C1 auf ActiveCell.Formula, Aston;
damit erhältst du die ZellFml in US-A1-Notation, die du dann auch genauso wieder einer Zelle zuweisen musst.
Gruß, Luc :-?

Bild

Betrifft: AW: Ändere das aufgezeichnete Pgm nachträglich ...
von: Aston
Geschrieben am: 28.05.2015 19:41:45
Luc, Merci..
aber das löst mein Problem nicht...
im VBA habe ich das so gebaut...
ActiveCell.Formula = "=if(LEN(ActiveCell.Offset(0,-2))<8,ActiveCell.Offset(0,-2), ""xxxx"")"
Im Excel ist das Ergebnis dann
=WENN(LÄNGE(ActiveCell.Offset(0;-2))<8;ActiveCell.Offset(0;-2); "xxxx")
erwarte aber z.b.
=WENN(LÄNGE(D8)<8;D8;"XXXX")
kannst Du helfen?
LG aston

Bild

Betrifft: AW: Ändere das aufgezeichnete Pgm nachträglich ...
von: Aston
Geschrieben am: 28.05.2015 19:51:54
Hab die Lösung... Merci..
ActiveCell.Formula = "=if(LEN(" & ActiveCell.Offset(0, -2).Address(0, 0) & ")<8," & ActiveCell.Offset(0, -2).Address(0, 0) & ", ""xxxx"")"
Gruss Aston

Bild

Betrifft: auch nachträglich ...
von: Matthias L
Geschrieben am: 28.05.2015 19:58:54
Hallo
Bei Offset(0, -2)
musst Du aber auch prüfen das Du Dich mind. in Spalte(3) befindest
Sonst gibts einen Fehler, den Du abfangen müsstest.
Gruß Matthias

Bild

Betrifft: AW: auch nachträglich ...
von: Aston
Geschrieben am: 28.05.2015 20:04:47
jepp.. merci...

Bild

Betrifft: AW: R1C1 Notifikation
von: Daniel
Geschrieben am: 28.05.2015 20:17:50
Hi
die R1C1-Notifikatioin ist in der Regel kürzer und einfacher als die A1-Notifikation.
Sie hat einen entscheidenden Vorteil: man kann mit ihr relative Zellbezüge auch wirklich relativ beschreiben während die A1-Schreibweise nur absolute Beschreibungen auch für relative Zellbezüge zulässt.
das hat zur folge, dass man, wenn man einen relativen Zellbezug in A1 beschreiben muss und die Zielzelle für die Formel auch variabel ist, man die Formel "berechnen" muss, während in R1C1 die Formel unabängig von der Zielzelle als fester Textstring beschrieben werden kann und dann für jede Zielzelle "passt".
klar ist die R1C1-Schreibweise für den normalen Excelanwender ungewohnt, weil sie für das normale Arbeiten in Excel einfach praktiabler ist, aber für die Programmierung ist das etwas anders.
Ausserdem verliert die R1C1-Schreibweise viel von ihrer "sperrigkeit", wenn man sich angewöhnt, möglichst alle Zellbezüge, die nicht zwingend relativ sein müssen, absolut zu setzten.
Beispiel:
du willst in die Zelle C1 die formel: =Wenn(Länge(A1)<8;A1;"xxxx") per Makro schreiben.
das ergibt dann aufgezeichnet dein:

ActiveCell.FormulaR1C1 = "=IF(LEN(RC[-2])<8,RC[-2],""XXXX"")" 
verwendest du hingegen für die Spalten einen absoluten Bezug (was problemlos möglich ist, wenn du die Formel nach unten ziehst, dann wird kürzer und auch leichter lesbar:
ActiveCell.FormulaR1C1 = "=IF(LEN(RC1)<8,RC1,""XXXX"")" 
der Vorteil gegenüber der A1-Schreibweise ist:
ActiveCell.FormulaR1C1 = "=IF(LEN(A1)<8,A1,""XXXX"")" 

dass du in R1C1 die Formel nicht ändern musst, wenn dir nachträglich einfällt, dass eine Überschrift ganz nett wäre, weil das R1C1 für jede Zeile passt, währen du das A1 dann ändern musst.
Gruß Daniel

Bild

Betrifft: AW: R1C1 Notifikation
von: Aston
Geschrieben am: 28.05.2015 21:50:53
VielenDank für diese ausführlichen Erklärungen.. es ist wirklich viel länger mit A1-Style zu arbeiten... für das Erste aber einfacher umzusetzen für mich..
langfristig werde ich wohl umsteigen.. das mit der Überschrift hat was...
LG Aston

Bild

Betrifft: AW: R1C1 Notifikation
von: Daniel
Geschrieben am: 28.05.2015 22:44:05
Wenn du richtig programmieren willst, wirst du im das Prinzip ZeilenNr/SpaltenNr sowieso nicht herum kommen (Cells(), Arrays).
Ausserdem zeichnet der Recorder ja auch R1C1 auf, auch wenn du die Formel in A1 in die Zelle eintippst.
Du solltest dann halt mur daran denken, so oft wie möglich die $ einzusetzen und nicht nur so oft wie nötig.
Gruß Daniel

Bild

Betrifft: Interessant ist in dem Zusammenhang, ...
von: Luc:-?
Geschrieben am: 29.05.2015 04:36:31
…Folks,
dass eine in der BedingtFormatierung verwendete Fml, egal wie man sie eingibt oder welcher Bezugsstil eingestellt ist, intern immer in US-A1-Notation vorliegt. Bei MatrixZellFmln ist das eher umgekehrt. Hier ist man mit US-R1C1-Notation in .FormulaArray stets auf der sicheren Seite.
Morrn, Luc :-?

Bild

Betrifft: AW: Interessant ist in dem Zusammenhang, ...
von: daniel
Geschrieben am: 29.05.2015 07:35:39
Mir ist in diesem Zusammenhang aufgefallen, dass an Stellen, bei denen es keine unterschiedlichen Befehle für beide Schreibweisen gibt, VBA zu erkennen versucht, welche Schreibweise der Anwender verwendet hat.
Dann muss man beachten, dass man bei einem relativen Zellbezug auf die gleiche Zeile in R1C1 immer die ausführliche Form R[0]C1 verwenden muss und nie die Kurzform RC1, weil diese ja auch in A1 eine möglich Adresse ist und sich dann für diese Adressierungsarten entscheidet, wenn die erste Adresse in der Formel so aussieht.
Könntest du das mal überprüfen Luc?
Gruß Daniel

Bild

Betrifft: Das wäre logisch und würde zu dem passen, ...
von: Luc:-?
Geschrieben am: 29.05.2015 10:13:51
…was ich festgestellt hatte, Daniel,
allerdings gingen meine Untersuchungen nicht soweit, das für die BedingtFormatierung zu untersuchen, bei der eine Z1S1-Angabe auch bei dementsprd Xl-Bezugsart-Einstellung tatsächlich intern in US-A1- nie in -R1C1-Notation vorliegt.
Bei .FormulaArray sind auf jeden Fall absolute A1-Schreibweisen schadlos, ansonsten kann es durchaus sein, dass bestimmte relative A1-Schreibweisen eher als R1C1 und umgekehrt interpretiert wdn würden. Das habe ich aber noch nicht näher untersucht, werde das aber in Zusammenhang mit einem einschlägigen UDF-Projekt sicher noch nachholen. Wenn die Bezugsart klar ist, entfernt Xl idR (bzw auf jeden Fall?) die [0] wieder — lokale (0) ohnehin.
Deine Auffassung könnte auch durch die „Empfindlichkeit“ von Xl/VBA (mindestens seit Xl12/2007, unter Xl9/2k war das noch nicht so) ggüber UDF-Namen like "[RC]#*" gestützt wdn. Anscheinend wird hier zuerst versucht, das als Adresse zu interpretieren.
Gruß, Luc :-?

Bild

Betrifft: AW: Das wäre logisch und würde zu dem passen, ...
von: Daniel
Geschrieben am: 29.05.2015 10:55:11
Luc schrieb:
"Bei .FormulaArray sind auf jeden Fall absolute A1-Schreibweisen schadlos"
Luc schrieb auch:
"Bei MatrixZellFmln ist das eher umgekehrt. Hier ist man mit US-R1C1-Notation in .FormulaArray stets auf der sicheren Seite."
was ja bedeuten würde, dass beides funktioniert ;-)
Gruß Daniel

Bild

Betrifft: Ja, das 2.Zitat war allgemein und das 1. gilt ...
von: Luc:-?
Geschrieben am: 29.05.2015 12:53:17
…speziell für absolute A1-Adressen! :-|
Luc :-?

Besser informiert mit …

Bild

Betrifft: AW: Ja, das 2.Zitat war allgemein und das 1. gilt ...
von: Daniel
Geschrieben am: 29.05.2015 13:03:18
Dh die Programmierer hätten u.U. die Funktion so gestaltet, dass sie absolute Zelladdressen verarbeiten kann und relative nicht?
klingt nicht plausibel. Welche Formel kommt schon allein mit absoluten Zelladdressen aus (vorallem, wenn dieselbe Formel für mehrere Zellen verwendet werden soll)
Grundsätliches Problem der A1-Adressierungsart ist halt, das man wissen muss, für welche Zelle die Formel geschrieben wird, wenn es sich um einen relativen Zellbezug handelt.
Gruß Daniel

Bild

Betrifft: AHast du das nicht selber angedeutet, ...
von: Luc:-?
Geschrieben am: 29.05.2015 16:11:22
hellip;Daniel;
FormulaArray ist doch wohl eine solche AutoInterpretier-EingabeMöglichkeit…
Luc :-?

Bild

Betrifft: AW: AHast du das nicht selber angedeutet, ...
von: Daniel
Geschrieben am: 29.05.2015 16:21:15
Hi Luc
hier gehts erstmal darum, was geschrieben hast.
Gruß Daniel

Bild

Betrifft: Und was willst du nun damit andeuten...? owT
von: Luc:-?
Geschrieben am: 29.05.2015 20:24:59
:-?

Bild

Betrifft: AW: Und was willst du nun damit andeuten...? owT
von: Daniel
Geschrieben am: 29.05.2015 20:40:20
du liebst doch Denksportaufgaben.
gib nicht so schnell auf.
;-)))))
Gruß Daniel

Bild

Betrifft: Höchstens, wenn ich sie selber stelle, aber ...
von: Luc:-?
Geschrieben am: 30.05.2015 01:01:57
…das tun einige Wenige, wenn auch selten bzw schon lange nicht mehr, auch.
Die von dir gebrachten Zitate enthalten nichts sich Widersprechendes. Im Ggsatz zu dir, pflege ich idR möglichst sorgfältig zu formulieren, besonders, wenn hinter scheinbar harmlosem Disput Untiefen bzw Abgründe lauern könnten, wovon man bei dir ausgehen muss. Wenn du mich „vorführen“ willst, musst du schon ganz andere Register ziehen… :->>
Es sollte dir klar sein, dass mir alles, was von dir betont harmlos daherkommt, besonders suspekt ist. Wenn mich nicht alles täuscht, nennt man derartige Charaktere auf Hochdeutsch „hinterhältig“ (meine boărischen Vorfahren hatten dafür ein drastischeres Wort!)…
Luc :-?

Bild

Betrifft: AW: Höchstens, wenn ich sie selber stelle, aber ...
von: Daniel
Geschrieben am: 31.05.2015 15:51:56
Hi Luc
wenn dir alles, was von mir betont harmlos daher kommt, suspekt vorkommt, dann bist du nicht hinterhältig, sondern misstrauisch.
und nur weil du misstrauisch bist, hast du noch lange nicht das recht, mich als hinderhältig zu diffamieren.
es geht mir auch nicht darum, dich vorzuführen, aber wenn du erst die A1-schreibweise als funktionierend hervorhebst und im nächsten Beitrag schreibst, das du mit R1C1 "stetes" auf der sicheren Seite bist, dann widerspricht sich das zur ersten Aussage, weil es implizit bedeutet, dass man mit der andren Variante eben nicht stets auf der sicheren Seite ist.
Ja ich weiss, du hast in deiner Ausssage zur A1-Schreibweise nur von der "absoluten" gesprochen und nicht von der "relativen". Warum hast du die ausgelassen? Da du ein sorgfältiger Mensch bist, hast du die relatvie Schreibweise sicherlich mit geprüft. Wenn sie nicht funktionieren würde hättest du das an dieser Stelle erwähenen sollen.
Gruß Daniel

Bild

Betrifft: So ein Unsinn! Es war genau andersherum!
von: Luc:-?
Geschrieben am: 02.06.2015 03:27:40
Und, wenn man mit R1C1 auf der sicheren Seite ist, heißt das noch lange nicht, dass nicht auch eine absolute A1-Schreibweise fktionieren kann. Darüber ist hier auch schon geschrieben worden. Du könntest ja mal die Recherche bemühen…
Mein Misstrauen hast du selbst verschuldet (uneindeutige Identität u.so). Man muss sich ja nur mal die Entwicklung dieses Disputs ansehen. Was mit scheinbar harmlosen Nachfragen begann, ist inzwischen, wie von dir nicht anders zu erwarten, in krümel­kackerisch-pedantisches Krampfhaft-nach-einem-Schwachpunkt-Suchen ausgeartet.
Hast du das nötig? Ich jedenfalls nicht! Auf meine Kosten profilierst du dich jedenfalls nicht! Zeig lieber mal etwas tatsächlich beeindruckend Innovatives, nicht nur wie meist, dein manipulatives Xl-Wissen, was mich mitunter unangenehm an gewisse Office-Kenntnis-Abfrage-Pgmm erinnert.
In deinem Fall habe ich nicht mal Lust, dir einen Limerick zu widmen, so ödet mich das an. Wie meist schade um die Zeit!
Luc :-?

Bild

Betrifft: AW: was ist den "manipulatives XL-wissen..
von: Daniel
Geschrieben am: 02.06.2015 09:08:36
und wie unterscheit es sich von micht malipulativem?
Gruss Daniel

Bild

Betrifft: Von 'malipulativ' war nicht die Rede, schau ins...
von: Luc:-?
Geschrieben am: 04.06.2015 00:00:45
…Fremdwörterbuch! Gemeint im wortwörtlichen, nicht im übertragenen Sinn!
Luc :-?

Bild

Betrifft: AW: Von 'malipulativ' war nicht die Rede, schau ins...
von: Daniel
Geschrieben am: 04.06.2015 00:09:58
Luc, ich will nicht wissen, was im Wörterbuch steht, sondern ich will wissen, was du damit meinst.
und sich jetzt an Tipp- oder Rechtschreibfehlern "aufzugeilen" ist nicht obere, sondern unterste Liga.
Gruß Daniel

Bild

Betrifft: Wer sich hier 'aufgeilt' bist wohl eher du, ...
von: Luc:-?
Geschrieben am: 04.06.2015 11:24:39
…nämlich an deinem eigenen, übergroßen Ego! Was ich damit meine, habe ich auch geschrieben, aber vor lauter übereifrig-eiligem „Gekläff“ kommst du ja wohl nicht mehr zu aufmerksamem Lesen und übrigens auch Schreiben, wie man aus deinen allzuoft von (zu deinen Gunsten angenommenen) Flüchtigkeits­fehlern strotzenden Postings schlussfolgern kann. Das scheint dann ja wohl deine „Liga“ zu sein… :->>
Ich lehne jede weitere, derart unsinnige Diskussion mit einem Individuum unklarer Identität wie dir ab! Du scheinst unter zwanghafter Profilierungssucht zu leiden, was in deinem Fall als trollhaftes Verhalten auffällt. Ich kann mir eigentlich nicht vorstellen, dass ein Daniel, dem es in 1.Linie um die Sache ginge, so etwas nötig hätte. Folglich segelt der, mit dem ich diesen unsäglichen Disput führe, entweder unter falscher Flagge oder hat bei überein­stimmender Identität eine gespaltene Persönlichkeit bzw einen ziemlich egozentrischen Charakter. Solange nicht klar ist, ob es sich tatsächlich um einund­dieselbe Person handelt, lasse ich mich auf keine Diskussion mit dir mehr ein, denn diese führt erfahrungs­gemäß stets zu nichts weiter als einer Darstellung deines „Krümelkacker-Talents“. Oder wie WF es formulieren würde, du gehst mir auf den Keks!
Alternativvorschlag: Jaule doch den Mond an! Ist evtl sinnvoller… :-]
Mahlzeit! Luc :-?

Bild

Betrifft: AW: da du dich als sorgfältigen Menschen bez..
von: Daniel
Geschrieben am: 31.05.2015 16:00:24
..eichnest, frage ich mich hier natürlich, warum du dann keine Aussage zu den relativen A1-Bezügen machst.
Wären die hier nicht erwähnenswert gewesen?
Gruß Daniel

Bild

Betrifft: Das habe ich nicht getan, sondern nur ...
von: Luc:-?
Geschrieben am: 02.06.2015 03:35:59
…angemerkt, dass ich mir bei deinem Hang zu fruchtlosen Diskussionen eine AW sorgfältig überlege. Alles Weitere musst du dann schon, wie jeder Andere auch, aus meinen Arbeiten ableiten. Ansonsten siehe oben!
Was die relativen Adressen betrifft, kannst du ja gern selbst ausprobieren, ob und falls ja, wann's geht und wann nicht. Das wirst du doch wohl können… :->
Luc :-?

Bild

Betrifft: AW: Das habe ich nicht getan, sondern nur ...
von: Daniel
Geschrieben am: 02.06.2015 08:59:37
Gerade dann stellt sich dem geneigten Leser natürlich die Frage, warum du nur zu den relativen A1-Adressen keine Aussage machst, zum Rest aber schon.
Denn wenn ich die relatvien A1-Bezüge selber ausprobieren kann, kann ich auch die anderen Bezugarten selber ausprobieren.
Gruß Daniel

Bild

Betrifft: Warum wohl; lies d.sachl Diskussion nach! owT
von: Luc:-?
Geschrieben am: 03.06.2015 23:56:58
:-?

 Bild

Beiträge aus den Excel-Beispielen zum Thema "=rang.gleich() und kkleinste() kombinieren"