Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
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

For-Schleife mit FormulaR1C1

For-Schleife mit FormulaR1C1
17.12.2012 13:06:46
Anito
Hallo zusammen,
ich bin langsam mit meinem Latein am Ende;
ich möchte aus einer externen Datei, welche in meiner Spalte ganz oben steht über einen Hyperlink und die FormulaR1C1 Funktion einen bestimmten Wert auslesen, beispielsweise so:
Cells(ActiveCell.Row, ActiveCell.Column).Select
ActiveCell.FormulaR1C1 = _
"="" ='\C \Ordner1\[""&R[-3]C&""]Tabelle1'!$G$5"""
Cells(ActiveCell.Row + 1, ActiveCell.Column).Select
ActiveCell.FormulaR1C1 = _
"="" ='\C \Ordner1\[""&R[-4]C&""]Tabelle1'!$G$6"""
Da dies nun ca. 80 Werte sind wollte ich das Ganze in eine for-Schleife packen, um mir deutlich Arbeit zu ersparen, jedoch wird mir immer ein Fehler angezeigt, meine Lösung schaut wie folgt aus:
For i = 3 To 80
Cells(ActiveCell.Row, ActiveCell.Column).Select
ActiveCell.FormulaR1C1 = _
"="" ='\ C \Ordner1\[""&\[""&R[&-i]C&""]Speicherverbrauch'!$C$&i"""
Cells(ActiveCell.Row + 1, ActiveCell.Column).Select
Next
Vielen Dank schon mal im Voraus

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: For-Schleife mit FormulaR1C1
17.12.2012 13:35:30
Daniel
Hi
man kann das sicherlich auch ohne Schleife lösen.
für eine konkrete Lösung sollte ich aber wissen, in welche Zelle die Formel als erstes geschrieben werden soll.
ansonsten solltest du folgende Dinge beachten:
1. wird ein Textstring aus fixen und variablen Bestandteilen zusammentgesetzt, so müssen:
- die fixen Bestandteile jeweils innerhalb von Anführungszeichen stehen (Variablen stehen NIE innerhalb von Anführungszeichen)
- die einzelnen Bestandteile werden mit dem &-Zeichen verbunden. Vor und nach dem & muss immer ein Leerzeichen stehen:
dim txt as string
txt = "vollständiger"
Msgbox "Dies ist ein " & txt & " Satz."
2. enthält ein fixer Textbaustein Anführungszeichen, so müssen diese doppelt eingegeben werden.
Daran erkennt der Interpreter, daß die Anführungszeichen zum Text gehören und nicht den Teilstring begrenzen.
Msgbox "Jetzt folgt ein Anführungszeichen: "", danach geht der Text normal weiter"

Endet ein Teiltext mit einem Anführungzeichen, so stehten dann auch mal 3 Stück davon hintereinander:
Msgbox """Dieser Text beginnt und endet mit einem Anführungszeichen"""

3. Schreibst du Formeln mit .FormulaR1C1 in eine Zelle, so müssen die Zellbezüge in der Formel auch in R1C1-Schreibweise angegeben werden und nicht in A1-Schreibweise.
Ein Mischen beider Schreibweisen innerhalb einer Formel ist nicht möglich.
Gruß Daniel

Anzeige
AW: For-Schleife mit FormulaR1C1
17.12.2012 13:49:13
Anito
Vielen Dank für die Antwort.
Also in meinem konkreten Fall soll das Befüllen mit der aktiven Zelle beginnen und jeweils danach mit Cells(ActiveCell.Row + 1, ActiveCell.Column).Select auf die Zelle darunter gesprungen werden.
Mit dem direkten Verweis funktioniert es ganz gut, bloß ist es lästig von
Cells(ActiveCell.Row, ActiveCell.Column).Select
ActiveCell.FormulaR1C1 = _
"="" ='\C \Ordner1\[""&R[-3]C&""]Tabelle1'!$G$5"""
Cells(ActiveCell.Row + 1, ActiveCell.Column).Select
ActiveCell.FormulaR1C1 = _
"="" ='\C \Ordner1\[""&R[-4]C&""]Tabelle1'!$G$6"""

bis
Cells(ActiveCell.Row + 1, ActiveCell.Column).Select
ActiveCell.FormulaR1C1 = _
"="" ='\C \Ordner1\[""&R[-87]C&""]Tabelle1'!$G$89"""
Cells(ActiveCell.Row + 1, ActiveCell.Column).Select
den Code zu schreiben. Aber wie gesagt, scheitere ich dabei, das in eine for-Schleife zu packen.
Gruß
Anito

Anzeige
AW: For-Schleife mit FormulaR1C1
17.12.2012 14:00:15
Mäxl
Hallo Anito
....
passe das bei Dir an
das hier fügt jetzt 1000 mal
B1*C1 in A1 ein
in A2 steht dann B2*C2 usw. keine Schleife, kein select, kein RC,
Range("A1:A1000").Formula = "=B1*C1"

AW: For-Schleife mit FormulaR1C1
17.12.2012 14:17:17
Anito
Hallo Mäxl,
auch dir Danke für die Hilfe, aber leider weiß ich nicht wie dies in meinem konkreten Fall angewendet werden soll. Ich möchte ja 80 Zeilen einer Spalte mit Hyperlinks befüllen (Der Name der externen Excel-Datei steht jeweils 3 Zeilen,bzw. 4 Zeilen etc. weiter oben und die Aktive Zelle wird dann über die Funktion
ActiveCell.FormulaR1C1 = _
"="" ='\C \Ordner1\[""&R[-3]C&""]Tabelle1'!$G$5"""
befüllt. Dies möchte ich nun mit einer For-Schleife lösen.
Außerdem wird die Tabelle laufend erweitert, also immer wieder ein neue Spalte eingefügt und das Makro dann wieder über die neue Spalte laufen gelassen, somit muss ich das mit dem ActiveCell. Befehl lösen.
Gruß
Anito

Anzeige
ohne Schleife
17.12.2012 14:32:43
Rudi
Hallo,
wenn der Dateiname immer in Zeile 1 steht und die Formel ab Zeile 2 eingefügt werden soll:
ActiveCell.Resize(80).FormulaR1C1 = _
"='\C:\Ordner1\[" & Cells(1, ActiveCell.Column) & "]Tabelle1'!R[3]C7"
Gruß
Rudi

AW: ohne Schleife
17.12.2012 14:54:52
Anito
Hallo Rudi,
in dem Makro soll zwar in einer Spalte immer auf die gleiche externe Datei zugegriffen werden (also der Dateiname steht wirklich immer in der gleichen Zelle) aber in jeder Zeile soll ein andere Zelle aus dieser externen Date ausgelesen werden. Deswegen ändert sich im Code auch der Bezug ganz am Ende:
Cells(ActiveCell.Row, ActiveCell.Column).Select
ActiveCell.FormulaR1C1 = _
"="" ='\C \Ordner1\[""&R[-3]C&""]Tabelle1'!$G$5"""
Cells(ActiveCell.Row + 1, ActiveCell.Column).Select
ActiveCell.FormulaR1C1 = _
"="" ='\C \Ordner1\[""&R[-4]C&""]Tabelle1'!$G$6"""
Also jeweils $G$5 und $G$6 usw. Ich denke deswegen benötige ich vielleicht doch eine for-Schleife.
Gruß
Anito

Anzeige
ausprobiert? owT
17.12.2012 15:05:45
Rudi

AW: For-Schleife mit FormulaR1C1
17.12.2012 14:39:35
Mäxl
Hallo Anito
Hyperlink kann ich keinen erkennen,
aber du meinst wahrscheinlich damit die Verknüpfung.
den Cursor "gassi" führen ist sinnlos
sind es immer 80 Zeilen?
wenn die Namen der Dateien in den Zellen darüber stehen, warum mit Activecell arbeiten?
da würde ich abfragen ob eben in den Zeilen darüber etwas steht dann füge die Verküpfung(en) ein.
bzw.
Warum überhaupt Dateien schreiben, warum nicht gleich auslesen?
gruß
Mäxl

AW: For-Schleife mit FormulaR1C1
17.12.2012 15:10:50
Anito
Hallo Mäxl,
also ich denke, ich habe es zu ungenau beschrieben. Der Name der externen Datei steht in der aktuellen Spalte in Zeile eins. Danach aktiviere ich die Zelle drei Zeilen weiter runter und starte das Makro. Nun soll jeweils in diesem "Hyperlink" der Name der Datei eingefügt werden, damit es ein richtiger Bezug wird. Wenn man nun eine Zeile weiter runter springt steht der Dateiname folglich 4 Zeilen weiter oben und das passe ich dann immer an, damit wieder der richtige Bezug eingefügt wird, bis ich schließlich zur 80. Spalte komme (Es sind aber nicht immer 80 Spalten, das passe ich dann manuell an).
Der Hintergrund für diesen Ablauf ist der, dass laufend externe Dateien hinzukommen und damit man die neuen Daten in meiner aktuellen Übersicht hinzufügen kann, fügt man einfach eine neue Spalte ein, schreibt den Namen der neuen Datei in die erste Zeile und aktiviert die 4. Zeile der neuen Spalte und lässt wieder den Makro ablaufen. Dies soll man dann beliebeig oft durchführen können. Und mein Anliegen ist einfach das, dass ich diese Befüllung der Zellen mit dem Hyperlink und der Verweis auf eine Zeile, die immer sich um 1 erhöht, als eine for-Schleife durchführen kann. Ich hoffe, es ist ein wenig verständlicher geworden.
Gruß
Anito

Anzeige
AW: For-Schleife mit FormulaR1C1
17.12.2012 15:34:12
Mäxl
Hi,
angenommen in A1 steht
hallo.xlsx
in Zelle A4 oder auch A5
wenn diese Zelle markiert ist...
in A4 ='C:\Ordner1\[hallo.xlsx]Tabelle1'!$G5
in A5 ='C:\Ordner1\[hallo.xlsx]Tabelle1'!$G6
in A6 ='C:\Ordner1\[hallo.xlsx]Tabelle1'!$G7
REICHT
ActiveCell.Resize(80).Formula = _
"='C:\Ordner1\[" & Cells(1, ActiveCell.Column) & "]Tabelle1'!$g5"
Ohne RC da ich einfach von der aktiven Zelle immer den Bezug auf G5 nehme
Aber das hatte Rudi ohnehin schon gepostet.
Irgendwie ist das ein "Halbautomatik" Code ^^

AW: For-Schleife mit FormulaR1C1
17.12.2012 15:50:33
Anito
Ja genau, aber ich möchte ja dann wie du es selbst beschrieben hast immer auf eine Zeile weiter Bezug nehmen, also G5, G6 usw. Wenn man das noch irgendwie Lösen könnte, wäre es super^^

Anzeige
AW: For-Schleife mit FormulaR1C1
17.12.2012 16:04:04
Mäxl
Hi,
wie noch lösen könnte?
ActiveCell.Resize(80).Formula = _
"='C:\Ordner1\[" & Cells(1, ActiveCell.Column) & "]Tabelle1'!$g5"
das ist schon fertig........
gruß
Mäxl

AW: For-Schleife mit FormulaR1C1
17.12.2012 16:14:39
Anito
Hi,
ja stimmt, sorry, hatte noch das alte Makro ablaufen lassen und mich gewundert^^ So wie du es vorschlägst klappt es wunderbar. Vielen, vielen Dank (auch an Rudi) ^^
Gruß
Anito

sag ich doch: Ohne Schleife! owT
17.12.2012 18:46:02
Rudi

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige