Supportnet / Forum / Tabellenkalkulation
letzte beschriebene Zeile in einer Spalte ermitteln???
Frage
Hallo Helferlein!
Ich bräuchte Eure Hilfe:
Wie kann ich in VBA Excel die letzte beschriebene Zeile in einer Spalte herausfinden???
DANKE für Eure Hilfe Wünsch Euch allen einen angenehmen Freitag!
mfg, gt
Antwort 1 von powder
Hallo,
relativ einfach in dem du dich zur aller letzten Zeile bewegst.
z.b. mit range("A65536").select
oder anderen Wert für andere spalte oder anderen aufruf mit rows oder ähnlichen wichtig es sind 65536 Zeilen. Und dann einfach mit:
End(xlUp)
zur ersten Zelle bewegst in der nach oben etwas steht, also der aller letzten Zeile deiner Tabelle.
Grüße Tino
relativ einfach in dem du dich zur aller letzten Zeile bewegst.
z.b. mit range("A65536").select
oder anderen Wert für andere spalte oder anderen aufruf mit rows oder ähnlichen wichtig es sind 65536 Zeilen. Und dann einfach mit:
End(xlUp)
zur ersten Zelle bewegst in der nach oben etwas steht, also der aller letzten Zeile deiner Tabelle.
Grüße Tino
Antwort 2 von coros
Hi gt,
nachfolgendes Makro kopiere in ein Standardmodul.
Es wird die letzte beschriebene Zeile in Spalte A ermittelt. Wenn die letzte Zeile in einer anderen Spalte ermittelt werden soll, dann in Zeile
Zeile = Range("A65536").End(xlUp).Row
die Zellbezeichnung ändern.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
nachfolgendes Makro kopiere in ein Standardmodul.
Sub letzte_beschriebene_Zeile()
Dim Zeile As Long, Zeile1 As Long, Suchbegriff As Long
Zeile = Range("A65536").End(xlUp).Row
MsgBox "Letzte Zeile ist Nr. " & Zeile
End Sub
Es wird die letzte beschriebene Zeile in Spalte A ermittelt. Wenn die letzte Zeile in einer anderen Spalte ermittelt werden soll, dann in Zeile
Zeile = Range("A65536").End(xlUp).Row
die Zellbezeichnung ändern.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 3 von gt
Hallo Tino!
Danke für deine Hilfe...ist diese Variante nicht ein wenig langsam, da das Makro alle Zellen aufwärts abprüfen muss?
Ich hab in der Spalte E Werte untereinander und er soll mir nur den Bereich markieren der verwendet wird...also bis zur letzten verwendeten Zeile???
Danke, grüße gt
Danke für deine Hilfe...ist diese Variante nicht ein wenig langsam, da das Makro alle Zellen aufwärts abprüfen muss?
Ich hab in der Spalte E Werte untereinander und er soll mir nur den Bereich markieren der verwendet wird...also bis zur letzten verwendeten Zeile???
Danke, grüße gt
Antwort 4 von coros
Hi,
ich noch mal. Das kommt davon, wenn man mal eben schnell eine Antwort geben will und aus einer bestehenden Exceldatei eben den Code herauskopieren will. Dann kommen kleine Flüchtigkeitsfehler dazu. So in meiner Antwort, in der Zeile zur Typendeklaration Dim usw. Hier nun der bereinigte Code:
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
ich noch mal. Das kommt davon, wenn man mal eben schnell eine Antwort geben will und aus einer bestehenden Exceldatei eben den Code herauskopieren will. Dann kommen kleine Flüchtigkeitsfehler dazu. So in meiner Antwort, in der Zeile zur Typendeklaration Dim usw. Hier nun der bereinigte Code:
Sub letzte_beschriebene_Zeile()
Dim Zeile As Long
Zeile = Range("A65536").End(xlUp).Row
MsgBox "Letzte Zeile ist Nr. " & Zeile
End Sub
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 5 von coros
Hi
und hier kommt der Code, der ab Zeile 1 bis zur letzten beschriebenen Zeile die Spalte E markiert.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
und hier kommt der Code, der ab Zeile 1 bis zur letzten beschriebenen Zeile die Spalte E markiert.
Sub letzte_beschriebene_Zeile()
Dim Zeile As Long
Zeile = Range("E65536").End(xlUp).Row
Range(Cells(1, 5), Cells(Zeile, 5)).Select
End Sub
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 6 von gt
Hallo Coros!
DANKE!!!!!
Also hab mir dein Makro in Excel ausprobiert und es funktioniert, damit ist mein Problem sehr sehr gut gelöst worden.
Herzlichen Dank und wünsch Dir einen sehr angenehm sonnigen Freitag noch!!!
mfg, gt
DANKE!!!!!
Also hab mir dein Makro in Excel ausprobiert und es funktioniert, damit ist mein Problem sehr sehr gut gelöst worden.
Herzlichen Dank und wünsch Dir einen sehr angenehm sonnigen Freitag noch!!!
mfg, gt
Antwort 7 von coros
Hi gt,
schön, das Dir so schnell geholfen werden konnte. Danke auch für die Rückmeldung.
MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.
schön, das Dir so schnell geholfen werden konnte. Danke auch für die Rückmeldung.
MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.
Antwort 8 von gt
Hallo Tino!
Danke dir auch nochmals...du hast mir einen sehr guten ansatz gegeben...(hat mit dem von Coros übereingestimmt)
Wünsch dir auch noche einen schönen, sonnigen freitag!!!
mfg, gt
Danke dir auch nochmals...du hast mir einen sehr guten ansatz gegeben...(hat mit dem von Coros übereingestimmt)
Wünsch dir auch noche einen schönen, sonnigen freitag!!!
mfg, gt
Antwort 9 von powder
Hi,
sorry war erst jetzt wieder hier.
Ja Coros hat das genau so gelöst wie ich meinte hatte nur nicht die Zeit und auch Lust :) den Code zu tippen.
Vielleicht hilft es manchmal mehr wenn man auch versteht was man macht deshalb hab ichs nur erklärt.
Zur Geschwindigkeit das ist denk ich mal die schnellste Möglichkeit. Du kannst es gern mal in deinem Excel sheet testen. Der Aufruf entspricht dem Verwenden der END+Richtungs - Taste.
Du kannst auch direkt versuchen von oben nach unten zu gehen wirst aber "hängen" bleiben wenn eine Zelle leer ist. Deshalb geht man von der Letzten Zeile aus um garantiert die letzte Zeile zu erwischen.
Grüße Tino
sorry war erst jetzt wieder hier.
Ja Coros hat das genau so gelöst wie ich meinte hatte nur nicht die Zeit und auch Lust :) den Code zu tippen.
Vielleicht hilft es manchmal mehr wenn man auch versteht was man macht deshalb hab ichs nur erklärt.
Zur Geschwindigkeit das ist denk ich mal die schnellste Möglichkeit. Du kannst es gern mal in deinem Excel sheet testen. Der Aufruf entspricht dem Verwenden der END+Richtungs - Taste.
Du kannst auch direkt versuchen von oben nach unten zu gehen wirst aber "hängen" bleiben wenn eine Zelle leer ist. Deshalb geht man von der Letzten Zeile aus um garantiert die letzte Zeile zu erwischen.
Grüße Tino
Antwort 10 von nighty
hi alle :)
eine andere variante noch :)
ermittelt die letzte spalte EINER zeile :)
gruss nighty
rem ermittlung der letzten spalte von zeile 2
Sub makro01()
Dim LoLetzte As Integer
LoLetzte = IIf(IsEmpty(Range("IV2")), Range("IV2").End(xlToLeft).Column, 256)
Range("A5") = LoLetzte
End Sub
eine andere variante noch :)
ermittelt die letzte spalte EINER zeile :)
gruss nighty
rem ermittlung der letzten spalte von zeile 2
Sub makro01()
Dim LoLetzte As Integer
LoLetzte = IIf(IsEmpty(Range("IV2")), Range("IV2").End(xlToLeft).Column, 256)
Range("A5") = LoLetzte
End Sub