Herbers Excel-Forum - das Archiv

ActiveCell.Offset und Variablen

Bild

Betrifft: ActiveCell.Offset und Variablen
von: Marc
Geschrieben am: 27.09.2003 12:39:00
Hallöchen zusammen,

vielleicht kann mir einer folgendes erklären:

Ich habe eben einen Code geschrieben, der mit relativen Bezügen arbeitet.

Dabei ist mir aufgefallen, wenn ich schreibe
ActiveCell.Offset(1, 5).Range("A1").Select ist alles in Ordnung.

Wenn ich aber nun mit Variablen arbeiten will:

Dim i As Integer
i = 5
ActiveCell.Offset(1, i).Range("A1").Select
dann gibt das nen Fehler.

So weit so gut, wenn ich anstatt der Variablen nun ne Berechnung reinschreibe:
Dim i As Integer
i = 6
ActiveCell.Offset(1, (i-1)).Range("A1").Select

dann funktioniert das wieder.

Bin ich einfach zu blöd oder woran liegt das ?
Danke schon mal für euer Mühe !

Grüsse,
Marc

Bild

Betrifft: AW: ActiveCell.Offset und Variablen
von: PeterW
Geschrieben am: 27.09.2003 12:56:49
Hallo Marc,

mal von der Sinnhaftigkeit der Zeile abgesehen,
ActiveCell.Offset(1, i).Range("A1").Select
funktioniert. Was für einen Fehler erhältst du denn?

Gruß
Peter
Bild

Betrifft: Seltsam seltsam
von: Marc
Geschrieben am: 27.09.2003 13:34:24
Hallo Peter,

danke für deine Antwort, aber als ich es nun nach neuerlichem Excelstart noch mal probiert habe, hat es funktioniert.
Komisch, komisch. Eben brach das Makro immer ab, Fehlermeldung kann ich jetzt nicht mehr genau wiedergeben.

Zur Sinnhaftigkeit:
Das Makro sollte eine Zelle auslesen (numerischer Wert und falls nicht Umwandlung in einen solchen), in dieser stand z.B. eine 5.
Davon ausgehend sollte das Makro eine Zeile runter und 5 Spalten nach rechts springen, um dort einen Eintrag vorzunehmen.

Das Procedere sollte unabhängig von der Zellposition laufen, deswegen habe ich mit relativen Bezügen gearbeitet.
Falls das einfacher geht, bin ich für Anregungen immer dankbar !

Grüsse,
Marc
Bild

Betrifft: wozundase?
von: heinz
Geschrieben am: 27.09.2003 18:16:25
es geht darum, dass in
ActiveCell.Offset(1, i).Range("A1").Select
das
Range("A1")
sinnlos (bis störend) ist. kein unterschied ob da a1 oder z4711 drinnen
steht, also wozu?
außerdem ist select fast immer überflüssig
kannst ja sagen
ActiveCell.Offset(1, i).text (oder value, date usw) = deinequelle
 Bild
Excel-Beispiele zum Thema " ActiveCell.Offset und Variablen"
Variablenübergabe in andere Arbeitsmappen Einlesen von Zellinhalten in Variablen
Variablen in einer temporären Textdatei zwischenspeichern Zellinhalte in Verbindung mit Variablen in Textdatei schreiben
Zinstabelle mit variablen Rückzahlungen Auflistung der Kalenderwochen eines variablen Jahres
Kapitalverzinsung mit fixen Raten und variablen Zinsen Darlehensverzinszung bei variablen Rückzahlungsraten
Variablen auf mehrere Arten in Funktionen integrieren Benennung und Wert von Umgebungsvariablen ermitteln