Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

anfängerfrage zu R1C1 adressierung in VBA

260 views
Skip to first unread message

Gernot John

unread,
Aug 28, 2002, 4:01:09 AM8/28/02
to
Hallo,

ich benutze Excel 2000 unter XP und versuche mich gerade an einer einfachen
Automatisierung.
Um Schleifen zu benutzen, brauche ich die cells-Anweisung (so stehts in
meinem VBABuch):

Cells(2, 2).Select
ActiveCell.FormulaR1C1 = "=average(cells(3,2):cells(2,7))"

Mit diesem Code wird in B2 allerdings nicht wie gewünscht der Mittelwert
eingetragen, sondern nur #Name?

Später möchte ich mit cells auch Mittelwerte von einem anderen worksheet
ausrechnen.

Kann mir jemand helfen?

gernot


Arvi Laanemets

unread,
Aug 28, 2002, 4:33:07 AM8/28/02
to
Hallo

"Gernot John" <g_j...@web.de> wrote in message
news:ON8d1jmTCHA.2584@tkmsftngp13...


Versuche es mit:
ActiveCell.Formula = "=average(cells(3,2):cells(2,7))"


Arvi Laanemets

Ulli Tolksdorf

unread,
Aug 28, 2002, 4:42:13 AM8/28/02
to
Hi!

Entweder es steht nicht exact so in deinem buch oder das buch hat
fehler...;)

so wäre es richtiger:
Cells(2, 2).Select
ActiveCell.FormulaR1C1 = "=average(R3C2:R2C7)"

Wobei das so außerdem noch einen Zirkelbezug gibt.... D.h. das
deine Formel in einer zelle steht, aus der der mittelwert mitberechnet
werden soll.

spare dir bitte aber einen schritt in dem du das select wegläßt und
das ganze dann direkt anhängst:

Cells(2, 2).ActiveCell.FormulaR1C1 = "=average(R3C2:R2C7)"

am besten wäre es natürlich jetzt noch, wenn du ganz genau wirst,
indem du noch hinzufügst, in welche Tabelle das eingefügt werden soll!

Worksheets("Tabelle1").Cells ..........


bye
Ulli.


Gernot John schrieb:

Gernot John

unread,
Aug 28, 2002, 4:56:43 AM8/28/02
to
Geht auch nicht. Stimmt dann eine Einstellung nicht?

Die angesprochenen zellen sind uebrigens alles mit zahlen belegt.

"Arvi Laanemets" <ar...@tarkon.ee> schrieb im Newsbeitrag
news:aki1h4$3se$1...@kadri.ut.ee...

Daniel Schmitz

unread,
Aug 28, 2002, 5:21:05 AM8/28/02
to
Hi Ulli und Gernot,

nur ne kleine Ergänzung.
Es gibt noch weitere Möglichkeiten das "Problem" zu lösen:

1. Der feste Eintrag der Zellen:
Cells(2, 2).Formula = "=average($B$2:$G$7)"

2. eine Zusammensetzung mit Cells(... , ...)
Cells(3, 2).Formula = "=Average(" & Cells(3, 2).Address & ":" & Cells(2,
7).Address & ")"

Auf die Varianten mit FormulaLocal etc will ich hier
nicht weiter eingehen... ;-)

Beides liefert hier das gleiche Ergebnis. Aber ich würde auch
drauf achten, dass man noch das Worksheet mit angibt, da
es dann nicht zu unbeabsichtigten Fehlern kommen kann (sollte).

Gruss und wie gesagt nur ne kleine Ergänzung
Daniel

"Ulli Tolksdorf" <Ull...@gmx.de> schrieb im Newsbeitrag
news:3D6C8CE5...@gmx.de...

Daniel Schmitz

unread,
Aug 28, 2002, 5:32:02 AM8/28/02
to
Hi Gernot,

das hat mit den Einstellungen nichts zu tun.
Wenn Du Dir nachdem Du das Makro ausgeführt hast
mal den Inhalt der Zelle anschaust wirst Du sehen, dass
dort
=MITTELWERT(cells(3;2):cells(2;7))
steht. D.h. Excel interpretiert den gesamten Wert der
zwischen den "" steht als eine Formel und da es dann
keine Zellenangaben sind wird auch nur eine Fehler-
meldung angezeigt.
Schau Dir mal den anderen Zweig Deines Threats an
dort sind Vorschläge von Ulli und mir die eigentlich
funktionieren sollten... *g*

Gruss
Daniel

"Gernot John" <g_j...@web.de> schrieb im Newsbeitrag
news:eN6P4CnTCHA.1336@tkmsftngp11...

Arvi Laanemets

unread,
Aug 28, 2002, 6:00:33 AM8/28/02
to

"Gernot John" <g_j...@web.de> wrote in message
news:eN6P4CnTCHA.1336@tkmsftngp11...

Habe ja nicht deiner Formel genauer angucken. Versuch mal dies:

ActiveCell.Formula = "=average(cells(3,2).Address & ":" &
cells(2,7).Address)"


Arvi Laanemets

Gernot John

unread,
Aug 28, 2002, 7:28:39 AM8/28/02
to
Hallo,

das hat soweit funktioniert. Vielen Dank! Ich dachte ich könnte das weitere
alleine...

1. Jetzt will ich das Ganze aber in eine Schleife einbinden

ich dachte mir das so: geht aber nicht

Cells(2, spalte).Select

ActiveCell.FormulaR1C1 = "=average(R2C(spalte2):R3C(spalte2+3))"

2. Außerdem sollen die Mittelwerte von einem anderen Tabellenblatt "tmp"
berechnet werden.

p.s. soll man bei einer Antwort in der NG sein Zeug vor oder hinter die
schon bestehenden Zeilen setzen?

Grüße

gernot

"Daniel Schmitz" <DaSc...@lycos.de> schrieb im Newsbeitrag
news:aki14o$s79$1...@news01.khis.de...

Daniel Schmitz

unread,
Aug 28, 2002, 8:06:58 AM8/28/02
to
Hi Gernot,

> 1. Jetzt will ich das Ganze aber in eine Schleife einbinden
>
> ich dachte mir das so: geht aber nicht
>
> Cells(2, spalte).Select
>
> ActiveCell.FormulaR1C1 = "=average(R2C(spalte2):R3C(spalte2+3))"

Soweit schon richtig gedacht allerdings etwas verkehrt umgesetzt.
Wie ich eben schon geschrieben habe musst Du Dir, wenn Du die
Spalten "dynamisch" haben willst, den String zusammen setzen. D.h.
mit dem kaufmännischen und (&) verbinden. In Deinem Fall:

ActiveCell.FormulaR1C1 = "=average(R2C" & spalte2 & ":R3C" & spalte2+3 & ")"

Ich weiß natürlich nicht wie Du Spalte2 berechnest aber so funktioniert´s

> 2. Außerdem sollen die Mittelwerte von einem anderen Tabellenblatt "tmp"
> berechnet werden.

Wenn das so ist kannst Du es wie folgt lösen:

ActiveCell.Formula = "=average(Tmp!$B$" & Spalte2 & ":Tmp!$C$" & Spalte2 + 3
& ")"

oder

ActiveCell.FormulaLocal = "=Mittelwert(Tmp!$B$" & Spalte2 & ":Tmp!$C$" &
Spalte2 + 3 & ")"

> p.s. soll man bei einer Antwort in der NG sein Zeug vor oder hinter die
> schon bestehenden Zeilen setzen?

Zu dem Thema gibt es glaube ich verschiedene Meinungen. Aber die die am
meisten Verbreitung findet ist FoTu (FullquoteObenTextUnten) und nicht ToFu
was ich allerdings lieber mache... *g*

Und noch eins, wie wir vorher schon gesagt haben, versuch ohne das
Select auszukommen. Das Select macht die Sache unübersichtlicher
und langsamer.

HTH
Daniel


Michael Schwimmer

unread,
Aug 29, 2002, 2:19:53 AM8/29/02
to
Hallo Daniel,

"Daniel Schmitz" <DaSc...@lycos.de> schrieb:


> Zu dem Thema gibt es glaube ich verschiedene Meinungen. Aber die die
> am meisten Verbreitung findet ist FoTu (FullquoteObenTextUnten) und
> nicht ToFu was ich allerdings lieber mache... *g*
>

ob ToFu oder FoTu, Fullquote ist (fast) immer
verkehrt. ;-)
Die richtige Adresse: http://got.to/quote

MfG
Michael


--
-------------------------------------------
Michael Schwimmer
Home : http://schwimmer.bei.t-online.de

0 new messages