ExCel VBA Werte in anderes Tabellenblatt?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Die Lezte freie Zeile kannst du mit diesem Ausdruck ermitteln:

letzteZeile = Buchungen.Cells(Rows.Count, 1).End(xlUp).Row + 1
Woher ich das weiß:eigene Erfahrung

HorseRiver 
Beitragsersteller
 19.10.2020, 07:58

Ist letzteZeile eine Variable?
Und das daneben dann die Deklaration

geri3d  19.10.2020, 09:31
@HorseRiver

Ja letzteZeile ist eine frei erfundene Variable und daneben die Excelfunktion die die letzteZeile ermittelt.

geri3d  19.10.2020, 11:27
@HorseRiver

Ich habe gerade gelesen du brauchst Spalte B dann sieht es so aus:

letzteZeile = Buchungen.Cells(Rows.Count, 2).End(xlUp).Row + 1

Du kannst auch eine Schleife machen die die Werte einzeln kopiert, das dauert auch nicht viel länger und das mit dem Do Events ist ein guter Tipp.

Wo befindet sich die Schaltfläche "speichern" ?
Auf einer eigenen Userform ?
oder verwendet ihr die Excel "Eigen-Maske" zum ändern von Tabellen Inhalten ?
Dein Code hat diverse Fehler.
Übertragen in eine Zelle:
Ziel = Quelle
Sheets("Buchungen").Range("A1").Value = Userform.Textbox.Text
oder..
Sheets("Buchungen").Range("A1:A17") = _
Sheets("Buchungsmaske").Range("B4:B20")
==
Wann immer möglich, dann "Copy Paste" vermeiden.

also das erste was mir auffällt die sind unterschiedlich groß

zweitens, wieso gibt man die Range beim Ziel an ?

ich kenne das eher so

Range(“A1:E21”).Copy Destination:=Sheets(“AnotherSheet”).Range(“A1”)

Falsche Herangehensweise:
Du musst erst mal feststellen, welche die erste, freie Zeile in der zu befüllenden Tabelle ist.
Du löst dies mit festen Vorgaben. Spätestens einer zweiten Befüllungsrunde fliegt Dir das um die Ohren.


HorseRiver 
Beitragsersteller
 17.10.2020, 14:33

Weiß ich auch, das ist ein aus einem Forum entstandener Vorschlag von eine Jahre alten Beitrag.
Weißt du die Verbesserung des Codes, so dass dieses Problem gelöst wird?
FUnktioniert jene von geri3d?

mchawk777  17.10.2020, 18:21
@HorseRiver

Das habe ich bereits umschrieben.
Sollte auch mit einfachen Programmierkenntnissen und bei Bedarf google zu programmieren sein.
Ein Tipp findet sich bereits unter den hier genannten Antworten - der aber nicht unbedingt funktionieren muss.

Ich würde eine Do While - Loop- Schleife programmieren, die von oben nach unten die Zellen einer Datenreihe prüft, die gefüllt sein muss.
Damit kann ich die nächste, leere Zeile ermitteln, wo ich die Daten anfügen kann.

Etwas in der Art dann auch für das Umkopieren / Verschieben.
Das dauert zwar prinzipiell länger als mit Skriptbasiertem Copy & Paste - arbeitet aber meiner Erfahrung nach zuverlässiger.
Vergiss nicht in den Schleifen mind. einen "DoEvents"-Befehl mit einzubauen, sonst sieht es bei längeren Läufen so aus, als ob Excel abgestürz wäre.