Excel VBA letzte Zeile ermitteln und kopieren

preview_player
Показать описание
#exceltips #exceltricks #vbatutorial
In diesem Video zeige ich Dir,
wie Du die letzte befüllte Zeile und die letzte befüllte Spalte per VBA ermitteln kannst und wie Du die letzte befüllte Zeile in eine andere Tabelle kopieren kannst.

Viel Spaß beim Video! ❤

Рекомендации по теме
Комментарии
Автор

Wenn dir das Video gefällt, dann lass ein Abo da!

excelforyou
Автор

Wie immer, super Video
Danke Moni 🙂

ds-tqyw
Автор

Dankeschön, Ein Träumchen .
Ich würde die Copy gerne von der einen Datei und Arbeitsmappe in eine andere kopieren und nicht im selben Tabellenblatt. Beide Dateien sind geöffnet. Wie geht das den?

frankm.
Автор

Hallo Moni,

ich bin Markus, komme aus Oberschwaben (n der Nähe von RV) und freue mich eine vertrauten Dialekt (Kemptener Gegend, oder?) zu hören.
Ich bin durch Zufall über deinen Kanal gestolpert.
Sehr interessant. Programmiere auch VBA und freue mich immer, wenn ich was entdecken kann.

Zu deinem Script

deine Deklaration ab 10:14
Dim lz, ls as integer ist riskant...

Wenn ich dich richtig verstanden habe, wolltest Du mit deinem Code lz und LS beides als integer deklarieren...
Excel macht das aber nicht so:
Dim lz, ... bewirkt, dass lz als Variant deklariert wird.
der Teil dahinter "...ls as integer versteht Excel wieder richtig und deklariert ls als Integer-Variable
Du kannst z.B. folgendes machen, um Dich zu überzeugen, das lz tatsächlich als Variant deklariert wurde

Option Explicit

Sub TestVariant
Dim lz, ls as integer

lz ="Moni"

msgbox lz

End Sub

Du bekommst keine Fehlermeldung, sondern die Msg-Box wirft brav "Moni" aus. 🙂

Im Überwachungsfenster müsstest Du beim Datentyp Variant/String sehen, wenn Du lz überwachen lässt
(weil Du ja lz den Wert "Moni" zugewiesen hast.)

Bei ls müsste integer stehen, weil VBA den Datentyp ja richtig als integer deklariert hat

Dein Code funktioniert trotzdem, weil Variant alle Datentypen aufnehmen kann.
Falls Microsoft jedoch irgendwann mal die Einstellungen ändert, dass Variablen, denen nicht mit as... explizit eine Datentyp mitgegeben wird, nicht mehr standardmäßig als Variant, sondern z.B. als String deklariert wird, dürfte dein Code wahrscheinlich nicht mehr wie gewünscht funktionieren.

Deshalb ist es aus meiner Sicht besser und sicherer, den Datentyp immer mitzugeben.

Deine Deklarationszeile würde dann so aussehen:
Dim lz as integer, ls as integer

Ansonsten ein super Video.
LG vom (fast) Bodensee ge Kempda und ein schönes Wochenende
Markus

markusnoller
Автор

Vielleicht kannst Du mir helfen. Ich benötige nicht die letzte Zeile aus der ich kopieren will, sondern ich will aus dem Eingabefeld K5:M:5 in die letzte Zeile kopieren. Also nicht den letzten Zelle ermitteln und von dort kopieren, sondern vom festen Bereich in die letzte Zeile. Wenn möglich noch im gleichen Datenblatt. Das wäre cool.

jessilui
Автор

Wie ändert man das ganze ab das die letzten 5 Zeilen immer kopiert werden???

Meenzer
Автор

Die Variablendeklaration ist falsch bzw. unvollständig: "lz" ist kein Integer und "WsB" kein Worksheet, sondern beide sind vom Typ "Variant", weil man in VBA eben NICHT mehrere Variablen durch Komma getrennt vom gleichen Typ deklarieren kann. Der Typ muss für jede einzelne Variable separat angegeben werden (was allerdings auf einer Zeile erfolgen kann, z.B. "Dim lz as Integer, ls as Integer"). Funktionieren tut das Ganze hier dennoch, weil durch zu Zuweisung von Werten ("Set WsB = Sheets ...") aus dem Variant dann der entsprechende Typ gebilded wird!

NachbarFizgo
Автор

Nichts Entwicklertools und VBA. Es muss doch eine ganz einfache Formel geben, um den Inhalt der letzten Zeile anzuzeigen.

mathiasmollmann