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

[VBA] in die nächste leere Zeile schreiben

2,798 views
Skip to first unread message

Christof Kluß

unread,
Nov 1, 2011, 2:50:11 AM11/1/11
to
Hallo,

ich möchte den Inhalt eines Dictionary in die Spalten A und B
untereinander eintragen. Dazu wollte ich einfach zur nächsten freien
Zelle in Spalte A springen und dann die Einträge in die Zeile schreiben.

For Each x In dict
With ThisWorkbook.Worksheets("Tabelle1")
With .Cells(1, 1).End(xlDown)
.Offset(1, 0).Value = x
.Offset(1, 1).Value = dict(x)
End With
End With
Next

Leider springt xlDown wohl immer in die gleiche Zelle. Könnte ihr mir
einen Tipp geben, wie ich es richtig und vielleicht sogar eleganter hin
bekomme?

Gruß
Christof

Jörg Eisenträger

unread,
Nov 1, 2011, 8:32:47 AM11/1/11
to
On Tue, 01 Nov 2011 07:50:11 +0100, Christof Kluß
<ckl...@email.uni-kiel.de> wrote:

>zur nächsten freien
>Zelle in Spalte A springen und dann die Einträge in die Zeile schreiben.
>
> With .Cells(1, 1).End(xlDown)
>Leider springt xlDown wohl immer in die gleiche Zelle.

Hallo Christof,

ich verlasse mich meist nicht auf die Excel-internen "End"-Befehle,
sondern suche mir z. B. die letzte benutzte Zeile so:

Dim LastRow as Long
LastRow = _
.Cells.Find("*", After:=.Cells(1), _
LookIn:=xlFormulas, LookAt:=xlWhole, _
SearchDirection:=xlPrevious, _
SearchOrder:=xlByRows).Row

Dein Eintrag kommt dann in die Zelle Cells(LastRow + 1, 1).
Vielleicht hilft es Dir ja.


Gruß
Jörg
--
LPs auf CD brennen - so geht's: http://www.joergei.de/
E-Mail-Adresse existiert, wird aber nicht gelesen.

Christof Kluß

unread,
Nov 1, 2011, 12:29:07 PM11/1/11
to
Hallo Jörg,

Am 01-11-2011 13:32, schrieb Jörg Eisenträger:
> ich verlasse mich meist nicht auf die Excel-internen "End"-Befehle,
> sondern suche mir z. B. die letzte benutzte Zeile so:
>
> Dim LastRow as Long
> LastRow = _
> .Cells.Find("*", After:=.Cells(1), _
> LookIn:=xlFormulas, LookAt:=xlWhole, _
> SearchDirection:=xlPrevious, _
> SearchOrder:=xlByRows).Row
>
> Dein Eintrag kommt dann in die Zelle Cells(LastRow + 1, 1).
> Vielleicht hilft es Dir ja.

danke, das ist super. Kleines Problem ist nur noch, dass er jetzt nicht
nur die zwei gewünschten Spalten, sondern alle betrachtet.

Aber da werde ich mich ausführlicher mit dem "Find"-Parametern
auseinandersetzen müssen.

Gruß
Christof

Claus Busch

unread,
Nov 1, 2011, 12:40:22 PM11/1/11
to
Hallo Christof,

Am Tue, 01 Nov 2011 17:29:07 +0100 schrieb Christof Klu�:

> danke, das ist super. Kleines Problem ist nur noch, dass er jetzt nicht
> nur die zwei gew�nschten Spalten, sondern alle betrachtet.

dann probiers doch mal so:

With Sheets("Tabelle1")
FFRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(FFRow, 1) = x
.Cells(FFRow, 2) = dict(x)
End With


Mit freundlichen Gr��en
Claus Busch
--
Win XP Prof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2

Christof Kluß

unread,
Nov 2, 2011, 1:26:11 PM11/2/11
to
Am 01-11-2011 17:40, schrieb Claus Busch:
> FFRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1

geht perfekt, vielen Dank

Gruß
Christof
0 new messages