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

VBA - Koordinaten von Aktiver Zelle in Variablen speichern ?

717 views
Skip to first unread message

Jimmy

unread,
Mar 6, 2004, 12:12:31 PM3/6/04
to
Hi,

ich habe diese Frage schon einmal vor einigen Wochen gestellt, aber leider
wieder vergessen, wie es geht.
Sorry, deswegen noch einmal:

Wie erhält man die Zeilen/Spaltennummern, einer aktiven Zelle ? Und diese
sollen dann Variablen zugewiesen werden.

Beispiel:

Die aktive Zelle ist B3. Das wäre dann Spalte 2, Zeile 3.
Der Variablen x und y möchte ich diese Werte zuweisen:

x= 2
y= 3

Ändert sich die aktive Zelle, müssen sie natürlich neu zugewiesen werden.
Aber wie stelle ich das an, die Zeilen und Spaltennummern aktiver Zellen
Variablen zuzuweisen ?

Für jeden Tipp dankbar.
Freundliche Grüße


Frank Kabel

unread,
Mar 6, 2004, 12:32:08 PM3/6/04
to
Hi Jimmy

Dim x as integer
Dim y as long
x=Activecell.column
y=Activecell.row


--
Regards
Frank Kabel
Frankfurt, Germany

Hajo

unread,
Mar 6, 2004, 12:33:12 PM3/6/04
to
Hallo Jimmmy
ActiveCell.Row
ActiveCell.Column

Gruß Hajo
"Jimmy" <chip-...@gmx.net> schrieb im Newsbeitrag
news:OgZ6a35A...@TK2MSFTNGP12.phx.gbl...

Jimmy

unread,
Mar 6, 2004, 2:41:41 PM3/6/04
to
Hi,

danke nochmal für deine Hilfe.
Ich habe es versucht, aber weshalb meckert der Debugger bei folgender
Zuweisung:
"
Sub test()

Dim a As Workbook
Dim b As Workbook
Dim x as integer
Dim y as integer
. . . . . .
Set a = Workbooks("Test.xls")
x = ActiveCell.Row
y = ActiveCell.Column
. . . . . .
Workbooks.Open Filename:="c:\windows\desktop\Test2.xls"
Set b = Workbooks("Test2.xls")

ThisWorkbook.Worksheets(1).Range(.Cells(x, 1), .Cells(x, 4)).Value =
b.Worksheets(1).Range("A6:D6").Value
. . . . . .
end sub
"

Die Punkte sind nur Platzhalter.
Es geht um die Wertzuweisung der beiden Range-Objekte. Er meckert ständig
bei ".cells(x,1)" und bei ".cells(x,4)".
Woran liegt das ? Hat bestimmt damit etwas zu tun, welche Arbeitsmappe
gerade die aktive ist, oder ?

Gruß

"Frank Kabel" <frank...@freenet.de> schrieb im Newsbeitrag
news:ek5FzD6A...@TK2MSFTNGP12.phx.gbl...

Frank Kabel

unread,
Mar 6, 2004, 2:50:34 PM3/6/04
to
Hi Jimmy
zum einen definiere bitte x als LONG (damit du keinen Fehler bekommst,
falls du mal alle Zeilen brauchst)
Zum anderen versuche folgende Zeile
ThisWorkbook.Worksheets(1).Range(Cells(x, 1), Cells(x, 4)).Value

Melanie Breden

unread,
Mar 6, 2004, 4:56:57 PM3/6/04
to
Hallo Jimmy,

Jimmy schrieb:


> Ich habe es versucht, aber weshalb meckert der Debugger bei folgender
> Zuweisung:

> ThisWorkbook.Worksheets(1).Range(.Cells(x, 1), .Cells(x, 4)).Value =
> b.Worksheets(1).Range("A6:D6").Value

> Die Punkte sind nur Platzhalter.


> Es geht um die Wertzuweisung der beiden Range-Objekte. Er meckert ständig
> bei ".cells(x,1)" und bei ".cells(x,4)".
> Woran liegt das ? Hat bestimmt damit etwas zu tun, welche Arbeitsmappe
> gerade die aktive ist, oder ?

er meckert deswegen, weil er vor den Punkten ein Objekt erwartet,
aber keines findet.
Du musst Excel den Platzhalter in einer With-Anweisung noch mtteilen.

In folgender Syntax wird das angegebene Objekt der With-Anweisung
bei der Kompilierung vor den Punkten eingesetzt:

With ThisWorkbook.Worksheets(1)
.Range(.Cells(x, 1), .Cells(x, 4)).Value = _
b.Worksheets(1).Range("A6:D6").Value
End With

Ist es jetzt verständlicher?

--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#

0 new messages