Anzeige
Archiv - Navigation
828to832
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
828to832
828to832
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro lesen

Makro lesen
19.12.2006 18:50:42
Claudia
Einen erholsamen Abend gleich mal,
ich habe folgende Frage: ich habe diesen Code aus einem Makro
.Cells(ZeileFormel, SpalteL + 11).FormulaR1C1 = _
"=IF(R[]C[" & -4 & "]=R[]C" & SpalteL + 2 & ",1,0)"
leider kann ich ihn ab der 2. Zeile nicht lesen, aber es bewirkt folgende Formel: WENN(x=y;1;0)
Wie muss ich den auf die Formel WENN(ODER(x=y; x=y+0,5; x=y-0,5)) ändern?
Kann vielleicht auch jemand erklären was dieser Code genau aussagt/wie er zu verstehen ist?
DANKE und liebe Grüße aus Wien,
Claudia

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro lesen
19.12.2006 19:13:16
ChrisL
Hallo Claudia
Ich starte mal einen Erklärungsversuch.
R = Row d.h. Zeile
C = Column d.h. Spalte
Folgendes Beispielmakro:

Sub t()
Dim ZeileFormel As Long
Dim SpalteL As Integer
ZeileFormel = 1
SpalteL = 1
With Worksheets("Tabelle1")
.Cells(ZeileFormel, SpalteL + 11).FormulaR1C1 = _
"=IF(R[]C[-4]=R[]C" & SpalteL + 2 & ",1,0)"
End With
End Sub

Cells(1, 1 + 11) also in Zelle L1 wird eingetragen (12. Spalte).
R[] (Zeile keine Abweichung) und C[-4] (d.h. Spalte 12 minus 4 = 8 also Spalte H)
= Zelle H1
R[] (Zeile keine Abweichung) und Varialbe 1 + 2 = 3 (d.h. Spalte C)
= Zelle C1
Alles andere ist nur Übersetzungsarbeit:
=IF(OR(x=y,x=y+0.5,x=y-0.5),True,False)
Wobei IF/WENN kannst du in diesem Fall weglassen:
=OR(x=y,x=y+0.5,x=y-0.5)
Gruss
Chris
Anzeige
AW: Makro lesen
19.12.2006 19:37:34
Claudia
Hallo Chris,
ich habe versucht es gewissenhaft umzusetzten, aber er zeigt mir einen Fehler an. Warum?
(ZeileFormel, SpalteL + 11).FormulaR1C1 = _
"=OR(R[]C[" & -4 & "]=R[]C" & SpalteL + 2 & ",R[]C[" & -4 & "]=R[]C" & SpalteL + 2 & " +0.5, R[]C[" & -4 & "]=R[]C" & SpalteL + 2 & " -0.5 ,1,0)"
Ich bin ja der Meinung, dass VBA mich nicht mag ;-)
Danke für deine Hilfe!
AW: Makro lesen
19.12.2006 19:43:14
ChrisL
Hallo Claudia
Keine Panik, das wird schon :-)
Ganz am Schluss hast du noch ",1,0" von der Wenn-Bedingung drin.
Eigentlich egal, aber der Code wird etwas übersichtlicher, wenn du
...R[]C[" & -4 & "]...
änderst in
...R[]C[-4]...
Die Text-Zeichenkette "aufbrechen" musst du nur, wenn eine Variable kommt. Minus 4 ist aber fix.
Gruss
Chris
Anzeige
AW: Makro lesen - Ich finde, eigentlich...
20.12.2006 04:21:31
Luc:-?
...eignen sich die auch in der VBA-Hilfe bevorzugten Range-A1-Langschreibformen bzw die Verwendung von Cells viel besser für Anfänger, Chris & Claudia.
Leider verwendet ausgerechnet der Recorder, über den ja viele einsteigen, was Anderes, nämlich die Nicht-Standard-Bezugsdarstellung Z1S1 (=R1C1). Wenn man eher über die Hilfe bzw besser Anfängerliteratur lernt, kommt man zu verständlicheren Lösungen.
Gruß & FWhn!
Luc :-?
AW: Makro lesen
19.12.2006 20:09:45
Daniel
Hallo Claudia
Makro-Zeile bewirkt ja, daß eine Formel in eine Excel-Formell in eine Zelle eingetragen wird (so wie wenn du sie von Hand reinschriebst).
Dabei gibt es 4 Varianten:
.FormulaR1C1 =
.Formula
.FormulaLocalR1C1
.FormulaLocal
Der Zusatz R1C1 bedeutet, daß die Zellbezüge in der Z1S1-Schreibweise eingegeben werden müssen. Was das bedeutet, kanns du rausfinden, wenn du unter Extras-Optionen-Allgemein auf die Z1S1-Bezugsart wechselst.
Der Zusatz LOCAL bedeutet, daß die Formeln in der aktuellen Benutzersprache eingegeben werden müssen, ohne diesen Zusatz muß die internationale (Englische) Schreibweise verwendet werden.
Das gilt auch für Dezimal- und Tausender-Trennzeichen)
Leider wird vom Recorder automatisch immer die Komplizierteste Schreibweise (FormulaR1C1) verwendet.
mit FormulaLocal kannst du die Formeln so eingeben, wie du es gewohnt bist.
ACHTUNG: eine Ausnahme: Anführungszeichen, die zur Formel gehören, müssen immer doppelt eingegeben werden ("").
Noch ein kleiner Tip, wenn du wissen willst, wie die entsprechende Formel genau geschrieben wird, dann kannst du sie auch, so wie du sie brauchst in eine Excelzelle reinschreiben (vielleicht steht sie sogar schon drin),
dann selekiertst du die Zelle,
wechselst in den Editor in das Direktfenster und gibt dort ein:
?selection.formulaR1C1
dann bekommst du die Formel so angezeigt, wie du sie im Macrocode reinschreiben musst. (mit Ausnahme der Doppelten "", die musst du noch ergänzen)
Gruß, Daniel
Anzeige
AW: Makro lesen
19.12.2006 21:47:02
Claudia
Hallo Daniel,
Puhh....
ich bin ganz begeistert... ich habs echt "alleine" geschafft...
vielleicht wird ja doch noch ein Programmierer aus mir ;-)))
Ein ganz großes und herzliches DANKE an alle die mir weitergeholfen haben!!!!!!!
Lg, Claudia
PS.: Das mit dem Direktfenster ist genial!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige