Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
452to456
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
452to456
452to456
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zell-Index bestimmen

Zell-Index bestimmen
14.07.2004 18:36:42
Frank
Hallo an Alle,
Über die Cells-Eigenschaft kann ich eine bestimmte Zelle ansprechen, wobei die Adresse meistens via ROW und COLUMN angegeben wird:
Cells(2,1).Select --- selektiert z.b. die Zelle "A2".
Cells(257).select --- macht das Gleiche, wobei ich den Wert 257 auch einer Variablen zuweisen kann (i=257) und dann schreibe: Cells(i).select.
Und nun meine Frage: Umgekehrt kriege ich das nicht hin. Es muss irgendwie möglich sein, einer Variablen diesen Index der Aktiven Zelle zuzuweisen. Also irgenwas in der Form:
i=ActiveCell.? und dann müßte i den Wert 257 haben, sofern "A2" die aktive Zelle ist.
Mit
i = (ActiveCell.Row - 1) * 256 + ActiveCell.Column
geht das. Aber solange ich mit Cells(i) eine direkte Anweisung geben kann muss es doch auch eine direkte Möglichkeit zum Auslesen der Position geben, und nicht über den Umweg der Berechnung.
Also, das ist kein brennendes Problem. Ich möchte das eigentlich nur zum besseren Verständis, wie VBA vorgeht, wissen. Ich versuche nämlich gerade, vom Anfänger zum Fortgeschrittenen zu mutieren.
Vielen Dank schon mal.
Grüße Frank

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

Betreff
Datum
Anwender
Anzeige
AW: Zell-Index bestimmen
Ramses
Hallo
Wozu soll das gut sein, die zelle über die fortlaufende Nummer zu refernezieren ?
" Ich versuche nämlich gerade, vom Anfänger zum Fortgeschrittenen zu mutieren. "
Kein Fortgeschrittener würde sich das antun ;-)
Deine Berechnung der Zelle ist prinzipiell korrekt, aber wenn du die Zelle EX54312 refernzieren willst kommt kein Mensch mehr draus :-)
Wenn du zum Beispiel einen Bereich abarbeiten willst, z.B. C3-G100, kannst du mit deiner Variante ohne aufwändige Berechnung nichts machen. Ansonsten kannst du mit 2 kleinen Schleifen die Zellen jeweils sauber ansprechen und weisst auch wo du bist ;-)
Gruss Rainer
Anzeige
AW: Zell-Index bestimmen
Frank
Hallo Rainer,
teilweise gebe ich Dir recht:
Wenn ein Bereich abgearbeitet werden soll, ist die Referenzierung über den Index absoluter Blödsinn. Aber manchmal macht es eben doch Sinn: Es kommt bei mir häufig vor, dass irgendwo in einer Tabelle ein Wert ausgelesen wird, dieser dann an einer anderen Stelle der Tabelle verarbeitet wird, wozu die aktive Zelle auch dorthin gebracht werden muss, und anschließend die aktive Zelle wieder die ursprüngliche Position einnehmen soll. Bisher habe ich dazu 2 Variablen benutzt, AltRow und AltColumn. Wird der Index benutzt, reicht eine Variable: AltPosition und dann: Cells(AltPosition).Select. Ist doch einfacher, oder?
Und was das mit dem Forgeschrittenen betrifft: Unabhängig davon, ob man bestimmte Methoden anwendet oder nicht: man sollte sie verstanden haben. Und genau darum geht es mir. Und wie ich diesen Index direkt auslese, habe ich eben noch nicht verstanden. Das ist der Hintergrund meiner Frage.
Vielen Dank für Deine Antwort!
Grüße Frank
Anzeige
AW: Zell-Index bestimmen
Ulf

Sub mach_was()
Dim c as range
set c = activecell
'mach irgendwas, wobei die aktive Zelle verschoben wird, also
'was mit select/activate
c.select 'zur ursprünglich aktiven Zelle zurück
End Sub

Ulf
AW: Zell-Index bestimmen
Frank
Hallo Ulf,
hmm, hmm, nun ja... oK, meine ursprüngliche Frage ist damit zwar nicht beantwortet, aber trotzdem seeehr viiiielen Daaaank für diese Antwort. Das ist sicherlich die einfachste und wohl auch die eleganteste Methode.
Mit dem Wissen, das ich mir mittlerweile angelesen habe, hätte ich eigentlich auch selbst auf diese Lösung kommen müssen. Bin ich aber nicht.
Noch mal herzlichen Dank!
Grüße Frank
Anzeige
AW: Zell-Index bestimmen
Frank
Hallo Peter,
vielen Dank für diesen Link. Ganz zu Anfang, als ich das erste Mal in diesem Forum war, habe ich das schon einmal gelesen, aber nicht verinnerlicht. Stimmt, auf das Selektieren kann man (fast) immer verzichten und sollte das auch tun. Ich werd´s jedenfalls versuchen.
Die Diskussion kann man aber auch fast beliebig weitertreiben: So wird in diesem Link ein Beispiel gebracht, wo ein Worksheet über den Index angesprochen wird: "Worksheets(1).Range.Tralala". Das ist z.B. etwas, was ich immer vermeiden würde. Verschiebt ein Anwender das Blatt, hagelt es Fehlermeldungen. Also besser über (Name) referenzieren, aber auf keinem Fall über die Name-Eigenschaft!
Wie gesagt: Da könnte man endlos weiterdisskutieren, und je mehr das lesen, desto mehr Beispiele werden wohl kommen, was man besser macht oder sein läßt. Aber das ist ja auch durchaus Sinn eines Forums.
Viele Grüße
Frank
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige