Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
584to588
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
584to588
584to588
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA .adress()

VBA .adress()
11.03.2005 19:26:23
Karl
Hi,
Sorry das ich wieder was reinstelle, aber komme bei meinem Problem nicht wirklich weiter.
Ich möchte in der VLookup Formel meines Makro gerne die Lookup Zelle (hier: R8C3) nach Durchlauf der Schleife ändern (d.h. R9C3, R10C3, RjC3 wobei j die Zeilenvariable ist).
Wie kann ich das anstellen? Habe schon R[j]C3 und ähnliches probiert funktioniert aber nicht. "R" &j &"C3" funktioniert bei mir auch nicht. Bekomme die Fehlermeldung Compile Error: Expected end of statement.
Dim v As Integer
Dim i As Integer
Dim j As Integer
i = 0
j = 0
v = 8
For i = 0 To 4
For j = 0 To 100
ActiveSheet.Range("E" & v + j).Offset(0, i).FormulaR1C1 = "=VLOOKUP(R8C3,Company1!R[-7]:R[65528]," & v + i + 1 & ",0)"
Next j
Next i
Den Tip Cells und adress zu benutzen habe ich leider nicht verstanden und die VBA hilfe ist auch nicht wirklich gut.
1) Könnte mir bitte (BBBBIIIIIITTTTTEEEEEEE) jemand erklären (idiotensicher) wie
ich diese Bezüge herstellen kann?
2) Wie kann ich den Bereich (Company1!R[-7]:R[65528]) fixieren?
Vielen Dank im Voraus Ihr Excel VBA Hacker!
Karl

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA .adress()
11.03.2005 19:58:15
Luc
Hi Karl,
wo kommt der Code her bei VBA-Unkenntnis lt. Eigeneinschätzung? Sieht verdammt nach MakroRecorder aus! Die Standardeinstellung für die Zelladressierung bei Excel ist A1 und nicht Z1S1. Trotzdem erzeugt der MakroRecorder mit konstanter Boshaftigkeit Z1S1-Adressbezüge (engl. R1C1). Davon musst du dich lösen, wenn du eine vernünftige Programmierung zustande bringen willst. Also nicht .FormulaR1C1, sondern nur .Formula, wenn du die Arbeitsblattformel englisch, oder .FormulaLocal, wenn du die sie deutsch eintragen willst. Dann kannst du auch Range("E" & v + j) verwenden. Die xlOnLine-Hilfe empfiehlt allerdings, nach Möglichkeit die Cells-Eigenschaft von Range zu benutzen, also in diesem Fall Cells(v + j, 5). Und dann kannst du auch weitgehend den umständlichen Quatsch mit dem Offset lassen. Sowas wird genauso wie ein vorheriges Selektieren der Zelle (.Select, auch vom MakroRecorder her) nur selten gebraucht. Das sind so Dinge, an denen man die MakroRecorder-Benutzung erkennt. Der hat nämlich früher ganz genau deine Mausbewegungen aufgezeichnet, so dass sie beim Abspielen wiederholt wurden (ideal für Demos!). Aber MS hat das dann später aufgegeben. Nur solche Sachen sind noch Reste davon. Also versuch mal, deine Formel entsprechend umzustellen. Wenn das nicht klappt, sehen wir weiter.
Gruß Luc :-?
Anzeige
AW: VBA .adress()
11.03.2005 21:33:30
Karl
Hi Luc,
Vielen Dank für die Erklärung, so langsam kommt licht ins dunkel. Ich habe die Formel jetzt grändert, bekomme aber immer noch denselben Fehler.
For i = 0 To 4
For j = 0 To 100
ActiveSheet.Range("E" & v + j).Offset(0, i).Formula = "=VLOOKUP(Cells("E"&v+j),Company1!R[-7]:R[65528]," & v + i + 1 & ",0)"

Next j
Next i
Ich lade die Datei mal hoch damit Ihr euch das anschauen könnt (wobei ich glaube das das für Dich/Euch eher ein Kindergeburtstag ist).
https://www.herber.de/bbs/user/19538.xls
Vielen Dank für Deine Hilfe,
Karl
Anzeige
AW: VBA .adress()
11.03.2005 21:52:21
Hajo_Zi
Hallo Karl,
ändere m,al die Zeile in
ActiveSheet.Range("E" & v + j).Offset(0, i).Formula = _
"=VLOOKUP(E" & v + j & ",Company1!R[-7]:R[65528]," & v + i + 1 & ",0)"
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


AW: VBA .adress()
11.03.2005 22:29:24
Karl
Hi Hajo,
Vielen Dank für Deinen Beitrag. Dennoch: Es funktioniert nicht! SCHEIBENKLEISTER! Ich verzweifle hier noch. Ich habe Deine Formel copy & paste eingesetzt.
In der zelle steht jetzt folgendes:
=VLOOKUP('E8';Company1!1:65536;9;0) Ich weiß nicht warum er da 'E8' macht anstatt
nur E8
Wenn ich außerdem die Formel auf Vlookup(C"...
ActiveSheet.Range("E" & v + j).Offset(0, i).Formula = _
"=VLOOKUP(C" & v + j & ",Company1!R[-7]:R[65528]," & v + i + 1 & ",0)"
erscheint in der Zelle Vlookup(H:H;Company1!1:65536;9;0)
Liegt das an meiner Englischen Excel Version oder habe ich irgendwelche Einstellungen falsch?
Vielen Dank nochmal für die Hilfe,
Karl
Anzeige
AW: VBA .adress()
11.03.2005 22:43:33
Hajo_Zi
Hallo Karl,
der Beitrag läst sich leichter verfolgen, wenn Du Deine Antwort hinter der entsprechenden Antwort schreibst.
Mit der automatischen E-Mailbenachrichtigung werden nur die letzten beiden Beiträge angezeigt und in diesem Fall sehe ich meine Antwort nicht mehr, wenn die Frage nicht richtig plaziert wurde.
ActiveSheet.Range("E" & v + J + I).Formula = _
"=VLOOKUP(E" & v + J & ",Company1!" & v + J + I & ":65528," & v + I + 1 & ",0)"
Ich hoffe mal das ich die Startzeile richtig festgestellt habe.
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
Anzeige
AW: VBA .adress()
11.03.2005 22:55:43
Karl
Hi Hajo,
Tausend Dank!!! Zumindest nimmt er jetzt die Daten richtig auf und schreibt hin was hin soll. Ich habe allerdings nicht verstanden was ich falsch hatte. Werde mir das ganze mal näher anschauen.
Auf jeden Fall nochmal Vielen Dank und Entschuldigung für den Faux-Pas beim Antworten.
Schönen Abend,
Karl
AW: VBA .adress()
11.03.2005 22:57:18
Hajo_Zi
Hallo Karl,
Du hattest zwei unterschiedliche Bezugsarten in Deiner Formel mal A1 und Z1S1
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: VBA .adress()
11.03.2005 23:17:34
Karl
Hei Hajo,
Ok, Fehler registriert und eingesehen ;-)
Vielen Dank nochmal. Nur so nebenbei, warum kann ich nicht folgenden Code
ActiveSheet.Cells(8 + j, i + 5).Formula = "=VLOOKUP(C" & v + j & ",Company"&m&"!" & v + j + i & ":65528," & v + i + 1 & ",0)"
eingeben? Da hier keine Zell referenz vorliegt müßte das doch gehen. Da zickt VBA aber rum.
Vielen Dank nochmal
Karl
Anzeige
AW: VBA .adress()
11.03.2005 23:21:18
Hajo_Zi
Hallo Karl
m& ist für VBA das Zeichen das die Variable ein String ist schreibe m &
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: VBA .adress()
11.03.2005 23:30:47
Karl
Hajo, Hajo,
Was soll ich dazu sagen? DU BIST EINSAME SPITZE!!!
Vielen Dank Du hast mir mein Wochenende gerettet (zumindest hab ich jetzt mehr Zeit zum VBA Lernen ;-))
Ich hätte ja nie gedacht das Foren so hilfreich sein können.
Besten Dank,
Karl

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige