Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

letzte Zelle ermitteln

Betrifft: letzte Zelle ermitteln von: Kurt K
Geschrieben am: 25.10.2014 19:39:38

Guten Abend,
habe mal Gegoogelt aber nicht das Richtige gefunden.
Ich möchte in der Zeile 1 die letzte belegte Zelle ermitteln und dort
soll die Zelle aktiviert werden.
Hinweis: esind nicht alle Zellen in der Zeile Beschriftet.

gruß
kurt k

  

Betrifft: AW: letzte Zelle ermitteln von: Beverly
Geschrieben am: 25.10.2014 19:46:04

Hi Kurt,

letze belegte Zeile in Spalte A:

    Dim lngLetzte As Long
    lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)

GrußformelBeverly's Excel - Inn


  

Betrifft: AW: letzte Zelle ermitteln von: Hajo_Zi
Geschrieben am: 25.10.2014 19:46:38

Hallo Kurt,

Select, Activate usw. ist in VBA zu 99,9% nicht notwendig.
Der Cursor ist kein Hund der überall rumgeführt werden muss.
Hinweise zu select usw. Hajo-Excel.de
Hinweise zu select usw. Online-Excel.de
Hinweise zu select usw. Online-Excel.de

' für Zeile 1
LoLetzte = IIf(IsEmpty(Cells(1, Columns.Count)), Cells(1, Columns.Count).End(xlToLeft).Column, Columns.Count)

GrußformelHomepage


  

Betrifft: AW: letzte Zelle ermitteln von: Matze Matthias
Geschrieben am: 25.10.2014 19:49:41

Hallo Kurt

Sub LetzteZelleInZeile()
    Dim loletzte As Long
    loletzte = Cells(1, Columns.Count).End(xlToLeft).Column
    'dient zum selektieren der Zelle ist aber meist nicht nötig
    Cells(1, loletzte).Select
End Sub
Matze


  

Betrifft: AW: letzte Zelle ermitteln von: Beverly
Geschrieben am: 25.10.2014 19:54:12

Hi Matze,

ist das nicht der Code für die letze belegte Spalte?


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: letzte Zelle ermitteln von: Beverly
Geschrieben am: 25.10.2014 19:56:29

Sorry, sehe gerade habe die Frage falsch gelesen.

Allerdings gibt dieser Code einen Fehler, wenn die letzte Spalte belegt ist.



GrußformelBeverly's Excel - Inn


  

Betrifft: Matze klappt leider auch nicht ! von: Kurt K
Geschrieben am: 25.10.2014 20:06:27




  

Betrifft: Klappt nicht ist keine AW, denn es klappt ... von: Luc:-?
Geschrieben am: 25.10.2014 20:26:56

…definitiv, Kurt!
Welche Zelle wird denn ausgewählt, vor oder nach AC1? Und was steht dann in der? Prüfe mit ISTLEER!
Ansonsten bitte mal belegt definieren! ;->
Gruß, Luc :-?


  

Betrifft: Hallo Luc.. von: Kurt K
Geschrieben am: 25.10.2014 20:32:08

Guten Abend Luc,
da wo der Courser vorher Stand ist er noch nach Ablauf
Makro.

Die Zeile 1 ist unterschiedlich befüllt, daher sind LEERE Zellen dazwischen
und die letzte Zelle wo Text drin steht ist AC1

gruß
kurt k


  

Betrifft: AW: Hallo Luc.. von: Matze Matthias
Geschrieben am: 25.10.2014 20:37:10


https://www.herber.de/bbs/user/93370.xlsm

Du erhälst mit loletzte die 29, das sagt aus das es die 29 SPalte ist

wenn du das Ergebnis dieser Zelle haben möchtest musst du den Wert mit value ausgeben.

Gruß Matze


  

Betrifft: Die LeerZellen stören Matzes Pgm NICHT, ... von: Luc:-?
Geschrieben am: 26.10.2014 00:34:24

…Kurt,
und da die gefundene Zelle ja Selectiert wird, muss das auch AC1 sein, wenn das wirklich die letzte „belegte“ Zelle in dieser Zeile ist. Aber evtl lässt du das Pgm ja auf dem falschen Blatt laufen (oder viell auch gar nicht, denn es läuft nicht von allein :-]), da sich nichts tut (weitere Urachen sind auch noch möglich, ggf war die letzte Zelle ja schon ausgewählt ;-])…
Luc :-?


  

Betrifft: AW: Matze klappt leider auch nicht ! von: Daniel
Geschrieben am: 25.10.2014 20:27:22

Hi
für die letzte Belegte Zelle in einer Zeile kannst du auch das verwenden:

rows(1).find(what:="*", lookat:=xlwhole, lookin:=xlformulas, searchdirection:=xlprevious).activate

Gruß Daniel


  

Betrifft: Hallo Daniel Laufzeitfehler... von: Kurt K
Geschrieben am: 25.10.2014 20:34:26

Guten Abend Daniel,
Laufzeitfehler 91
Objektvariable oder With... nicht festgelegt.

gruß kurt k


  

Betrifft: GOTTSEIDANK !!! --)) von: Kurt K
Geschrieben am: 25.10.2014 20:37:15

Hallo Daniel,
so klappt es !!!
ActiveSheet.Rows(1).Find(what:="*", lookat:=xlWhole, LookIn:=xlFormulas, searchdirection:=xlPrevious).Activate

ALLEN einen schönes Wochende noch !

gruß Kurt k


  

Betrifft: AW: GOTTSEIDANK !!! --)) von: Matze Matthias
Geschrieben am: 25.10.2014 20:42:19

meins sollte auch zum Ziele führen,
schau dir die Muster Datei an


  

Betrifft: AW: Hallo Matthias von: Walter mb
Geschrieben am: 25.10.2014 21:15:09

Hallo Matthias,
werde ich morgen Früh nochmals prüfen und gebe Bescheid.
Gruß Kurt K


  

Betrifft: Warum unterschiedliche Benutzernamen? von: Matze Matthias
Geschrieben am: 25.10.2014 22:15:18

Hallo Kurt,
nicht persönlich gegen dich gesehen, sondern allgemein sehe ich es so das man bei einem USERNAMEN bleiben sollte da es zu manch einer Derben Verwechselung kommen kann.
Ich kenne dank diesem Forum mittlerweile viele User mit ihrem Usernamen und weis immer gleich wie ich Ihn zuordnen kann. Also die Bitte meinerseits, bleib bei einem,

Gruß Matze


  

Betrifft: Sorry vom Sohn Ipad gesendet von: Kurt k
Geschrieben am: 26.10.2014 08:55:02

Guten Morgen, Matthias,
Sorry Verwechslung, habe vom Ipad meines Sohnes gesendet.
Gruß
kurt k


  

Betrifft: Hast du darauf auch gerechnet, ... von: Luc:-?
Geschrieben am: 26.10.2014 15:08:07

…Kurt,
denn das könnte das Mysterium evtl erklären?!
Gruß, Luc :-?


  

Betrifft: Ja, aber gerade nicht... von: Kurt K
Geschrieben am: 26.10.2014 15:52:04

Hallo Luc,
habe die kompl. Bearbeitung am PC durchgeführt.
gruß kurt k


  

Betrifft: AW: Ja, aber gerade nicht... von: Matze Matthias
Geschrieben am: 26.10.2014 18:45:29

Hallo Kurt,
nur mal so am Rande, da sich ja "NIX" tut bei deiner Datei, kann es sein das du die gar nicht als "XLSM" abgespeichert hast?? ohne dies zu tun würden die Makros NICHT laufen.

Oder wenn in xlsm gespeichert ist, das Makros deaktiviert sind?

Gru0 Matze


  

Betrifft: Guten Morgen Matthias, leider ... von: Kurt K
Geschrieben am: 26.10.2014 11:40:17

Guten Morgen Matthias,
leider bleibt der Courser da stehen wo er vorher war.
Bei deiner Musterdatei ebenfalls, Warum ?

gruß Kurt K


  

Betrifft: AW: Guten Morgen Matthias, leider ... von: Matze Matthias
Geschrieben am: 26.10.2014 18:14:04

Hallo Kurt,
stell DEINE Datei hier ein per Upload, ich blick hier ja kaum noch durch.
Mein Code sollte eigentlich das tun, was zum Start deines ERSTEN Beitrags gewünscht war:

Ich möchte in der Zeile 1 die letzte belegte Zelle ermitteln und dort
 soll die Zelle aktiviert werden.
Wenn du die hier nicht einstellen kannst, sende die Datei an Machtnix21@gmx.de

Gruß Matze


  

Betrifft: leider Fehler von: Kurt K
Geschrieben am: 25.10.2014 19:57:06

Hallo zusammen,
leider wird nicht die Zelle aktiviert die belegt ist.
Bei mir ist dies die Zelle AC1 also Spalte 29.
In der ZEILE 1 die letzte belegte Zelle !

gruß kurt


  

Betrifft: AW: letzte Zelle ermitteln von: Hajo_Zi
Geschrieben am: 25.10.2014 19:57:43

Hallo Kurt,

bei der Lösung musst Du nur beachten, falls die letzte Spalte der Zeile belegt ist bekommst Du ein falsches Ergebnis.

Gruß Hajo


  

Betrifft: Hajo versteh ich nicht ? von: Kurt K
Geschrieben am: 25.10.2014 20:02:17

Hallo Hajo,
das stimmt, bleibt hier stehen:
Cells(1, loletzte).Select
leider klappt es nicht.

Ich hatte geschrieben das meherer Zellen in der Zeile 1 LEER sind
aber die letzte belgte AC1 ist.

kurt k


  

Betrifft: AW: Hajo versteh ich nicht ? von: Ewald
Geschrieben am: 26.10.2014 14:13:25

Hallo Kurt,

die Sub ist in Ordnung,

wo hast du denn den Code stehen, in einem allgemeinen Modul oder im Tabellenmodul.

Gruß Ewald


  

Betrifft: Hallo Ewald von: Kurt K
Geschrieben am: 26.10.2014 15:53:00

Hallo Ewald,
im aktuellen Modul !

gruß kurt k


  

Betrifft: AW: Hallo Ewald von: Ewald
Geschrieben am: 26.10.2014 17:12:51

Hallo Kurt,

was heißt aktuell??

was ist auf der linken Seite im Explorer leichtmarkiert

Modul1,Modul2 oder Tabelle1,Tabelle2

Gruß Ewald


  

Betrifft: AW: Hallo Ewald von: Kurt k
Geschrieben am: 26.10.2014 21:09:33

Guten Abend Ewald,
ich versteh es nicht, die Zeile Funktioniert doch. Wieso dann die vom Matthias
nicht.
Kurt k


  

Betrifft: AW: Hallo Ewald von: Ewald
Geschrieben am: 26.10.2014 22:44:04

Hallo Kurt,

teste mal diesen Code

Sub LetzteZelleInZeile()
    Dim loletzte As Long
    loletzte = Cells(1, Columns.Count).End(xlToLeft).Column
    MsgBox loletzte               'dient zum selektieren der Zelle ist aber meist nicht nötig
    Cells(1, loletzte).Select
End Sub
und sag mal was die Msgbox anzeigt.

die ganze erste Zelle ist leer, nur in Spalte XFC steht ein Wert,dann ist alles in Ordnung.

Nur wenn in Spalte XFD was steht,funktioniert das nicht mehr. Diese Spalte muß also frei bleiben

Gruß Ewald


  

Betrifft: Guten Morgen Ewald --)) von: Kurt K
Geschrieben am: 27.10.2014 09:21:37

Guten Morgen Ewald,
es wird die Spalte 29 in der MSGBOX angezeigt und der Curser springt
dort hin.
DANKE !!!

Schöne Woche !


  

Betrifft: Guten Morgen Kurt ... von: Matthias L
Geschrieben am: 27.10.2014 10:13:10

Hallo Kurt

Nur meine persönliche Meinung!
Ich würde den Vorschlag von Daniel vorziehen.
Nur noch ein On Error Resume Next vorschalten.

Sub Daniel()
 On Error Resume Next
 ActiveSheet.Rows(1).Find(what:="*", lookat:=xlWhole, LookIn:=xlFormulas, searchdirection:= _
xlPrevious).Activate
End Sub
So kannst Du dann auch die letzte Zelle der Zeile(1) benutzen.
Sollte es keinen Eintrag in der Zeile geben bleibt der Cursor
an seiner Position ohne nach A1 zu springen (was ich als vorteilhaft erachte)
Probiers einfach aus.

Gruß Matthias


  

Betrifft: Danke für den Hinweis Matthias ! von: Kurt K
Geschrieben am: 27.10.2014 10:35:47

Ich wünsche Dir noch eine schöne Woche.
gruß
kurt k


  

Betrifft: AW: ohne On Error Resume Next von: Daniel
Geschrieben am: 27.10.2014 12:34:16

Hi

On Error Resume Next sollte sparsam verwendet werden.
Für diese Anwendung ist es besser, die gesuchte Zelle nicht sofort zu aktivieren sondern erst mal in einer Variablen abzulegen.
Das erzeugt keinen Fehler wenn der Suchwert nicht gefunden werden kann, sondern die Variable bleibt leer. Diesen Fall kann man dann recht einfach prüfen und so Fehlerabbrüche vermeiden.
Ausserdem hat man die letzte Zelle dann gespeichert und kann bei Bedarf ihre Werte (Zeile, Spalte, Inhalt usw) direkt abfragen, und sich so in den meisten Fällen ein aktiveren ersparen.

dim rngLetzeZelle as Range
Set rngLetzteZelle = Rows(1).Find(What:="*", Lookat:=xlwhole, Lookin:=xlformulas,  _
Searchdirection:=xlprevious)
If Not rngLetzteZelle is Nothing then rngLetzteZelle.activate

Gruß Daniel


  

Betrifft: Hall Daniel, danke. -) von: Kurt K
Geschrieben am: 29.10.2014 11:51:42

Hallo Daniel,
danke für alles und die zusätzliche Info.
gruß
kurt k


  

Betrifft: AW: Guten Morgen Ewald --)) von: Ewald
Geschrieben am: 27.10.2014 10:40:09

Hallo Kurt,

danke für die Rückmeldung,

die Ausnahme, das es bei der letzten Spalte nicht geht,ist ja eher theoretischer Natur, wann werden 16384 Spalten benutzt.

Gruß Ewald


 

Beiträge aus den Excel-Beispielen zum Thema "letzte Zelle ermitteln"