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

Letzte Spalte ermitteln und Range...Select

0 views
Skip to first unread message

Kai

unread,
Dec 30, 2003, 6:48:54 PM12/30/03
to
Hallo,

ich hoffe ich poste jetzt nicht doppelt, allerdings finde
ich mein Posting von vor einigen Stunden nicht wieder und
kämpfe noch mit zwei Problemen - daher kurz vor dem
Jahresende meine Probleme:

1.
Ich würde gern die letzte Spalte ermitteln, die in der
Zeile über der aktuellen Zelle genutzt wird.
Bsp.
Die aktuelle Zelle ist (jedoch nicht immer fest) z.B. C8.
Ich würde dann gern die letzte gefüllte Spalte in der
Zeile 7 ausfindig machen. Die aktuelle Zelle kann dabei
aber schwanken.
Wie kann ich das im Visual Basic umsetzen?

2.
Ich würde gern, ausgehend von irgendeiner aktuellen
Zellposition, einen Bereich zum EInfügen des
Zwischenspeichers im VisualBasic darstellen.
Ich habe folgendes versucht:

Range("RC[1]:RC[10]").Select

Sollte bezwecken, dass ausgehend von der aktuellen Zelle,
die Zellen eins bis zehn rechts neben der aktuellen Zelle
markiert werden, um dann dort die Werte enzufügen.
Klappt leider nicht.

Über Hilfe werde ich sehr dankbar.

Vielen, vielen Dank und einen guten Rutsch ins Jahr 2004!!

Kai

Monika Weber

unread,
Dec 31, 2003, 1:17:59 AM12/31/03
to
Hallo Kai,

<<<
1.
Ich würde gern die letzte Spalte ermitteln, die in der
Zeile über der aktuellen Zelle genutzt wird.
Bsp.
Die aktuelle Zelle ist (jedoch nicht immer fest) z.B. C8.
Ich würde dann gern die letzte gefüllte Spalte in der
Zeile 7 ausfindig machen. Die aktuelle Zelle kann dabei
aber schwanken.
>>>

hier erst mal eine Antwort zu Frage 1.

In der If-Entscheidung wird erst mal geprüft, ob die
aktive Zelle sich in der 1. Zeile befindet ... dann
kanst Du natürlich nicht mehr eins nach oben
springen.

Das wäre mein Lösungsvorschlag:

If ActiveCell.Row > 1 Then
Cells(ActiveCell.Row - 1, _
ActiveSheet.UsedRange.Columns.Count + 1).Select
End If

Wenn es sich um unterschiedliche Fragen handelt, wäre
es besser, Du würdest zwei unterschiedliche Threads
starten.

> Vielen, vielen Dank und einen guten Rutsch ins Jahr 2004!!

Das wünsche ich Dir auch!

--
Es liebs Grüessli
Monika Weber [Microsoft MVP für Excel]

http://www.jumper.ch (Office Help Desk)
http://excel.codebooks.de (Das neue Codebook ist da!)

Monika Weber

unread,
Dec 31, 2003, 1:20:36 AM12/31/03
to
Hallo Kai,

<<<
2.
Ich würde gern, ausgehend von irgendeiner aktuellen
Zellposition, einen Bereich zum EInfügen des
Zwischenspeichers im VisualBasic darstellen.
Ich habe folgendes versucht:

Range("RC[1]:RC[10]").Select

Sollte bezwecken, dass ausgehend von der aktuellen Zelle,
die Zellen eins bis zehn rechts neben der aktuellen Zelle
markiert werden, um dann dort die Werte enzufügen.
Klappt leider nicht.
>>>

hier eine Möglichkeit:

Range(ActiveCell.Offset(0, 10), ActiveCell).Select

Gerne hoffe ich, dass Dir das weiterhilft.

Kai

unread,
Dec 31, 2003, 11:37:54 AM12/31/03
to
Hi,

erstmal herzlichen Dank für die Hilfe, leider hab ich noch
ein kleines Problem:

Mit dem Code kann ich ja in die letzte Spalte der
entsprechenden Zelle springen. Ich würde gern aber nur
diese Zelle (z.B. Spalte 12) ermitteln, um dann mit dieser
Zahl einige Codes später weiter zu arbeiten.

Geht das auch? Ich bekomme es nicht hin...

Würde mich über Hilfe riesig freuen.

Vielen, vielen Dank!!!

Kai


>-----Originalnachricht-----

>.
>

Kai

unread,
Dec 31, 2003, 11:43:01 AM12/31/03
to
Hi Monika,

hab gerade noch überlegt, dir vielleicht mal meinen
letzten Versuch zu posten, den ich mir aus deinem
Vorschlag abgeleitet habe. Folgendermaßen habe ich
versucht, die letzte Spalte der Zeile über der aktuellen
Zelle als Zahl und Variable zu ermitteln:

Dim spaltenzähler As String
spaltenzähler = ActiveSheet.UsedRange.Columns.Count

Mein Problem ist dabei, dass dann die letzte Spalte in der
ganzen Tabelle ermittelt wird.

Den If-Befehl benötig ich nicht zwangsläufig, da die erste
Zeile immer gefüllt ist - passt aus Zufall, soweit hatte
ich noch gar nicht gedacht...

Vielen Dank!!

Grüße

Kai


>-----Originalnachricht-----

>.
>

Melanie Breden

unread,
Dec 31, 2003, 12:00:56 PM12/31/03
to
Hallo Kai,

"Kai" schrie:

>Mit dem Code kann ich ja in die letzte Spalte der
>entsprechenden Zelle springen. Ich würde gern aber nur
>diese Zelle (z.B. Spalte 12) ermitteln, um dann mit dieser
>Zahl einige Codes später weiter zu arbeiten.

>Geht das auch? Ich bekomme es nicht hin...

hier eine weitere Möglichkeit die letzte Spalte zu ermitteln.
Mit 'ActiveCell.Row - 1' wird die Zeile über der aktiven Zelle durchsucht.

Dim intLastCol As Integer
intLastCol = Cells(ActiveCell.Row - 1, Columns.Count).End(xlToLeft).Column

Die Variable intLastCol enthält die Spaltenzahl der letzten benutzten Spalte
in der angegebenen Zeile. Diese kannst du weiterverwenden, z.B:
Cells(inltLastCol,"A").Value="Test"

--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

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

Monika Weber

unread,
Jan 1, 2004, 11:00:12 AM1/1/04
to
Hallo Kai,

ich hoffe, Du hattest einen guten Start im Jahr 2004.

<<<
erstmal herzlichen Dank für die Hilfe, leider hab ich noch
ein kleines Problem:

Mit dem Code kann ich ja in die letzte Spalte der
entsprechenden Zelle springen. Ich würde gern aber nur
diese Zelle (z.B. Spalte 12) ermitteln, um dann mit dieser
Zahl einige Codes später weiter zu arbeiten.
>>>

Wenn Du die Zelladresse an eine Variable übergeben möchtest,
dann lautet der Code z.B. so:

Sub test()
Dim strMyCell As String

If ActiveCell.Row > 1 Then
strMyCell = Cells(ActiveCell.Row - 1, _
ActiveSheet.UsedRange.Columns.Count + 1). _
Address(False, False)
End If

MsgBox strMyCell
End Sub

0 new messages