Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

zwei letzte Zellen überprüfen
#1
Hallo zusammen,

ich habe ein kleines Problem:

auf einem Tabellenblatt werden in Spalte 10 und 11 Eintragungen gemacht. Diese Eintragungen bestehen aus einer Anfangszeit (Spalte 10) und einer Endzeit (Spalte 11).
Nach Ablauf einer gewissen Zeit soll nun überprüft werden, ob in der letzten Zelle von Spalte 10 eine Anfangszeit eingetagen ist und ob es dazu in Spalte 11 eine Endzeit gibt.
Wenn es diese Endzeit nicht gibt, dann soll das Programm eine Mail als Erinnerung schicken.

Folgenden Code hatte ich mal ausprobiert, der mir jedoch einen Laufzeitfehler 13 (Typen unverträglich) anzeigt....

Sub LeereZelle()

Dim lastrowz1 As Integer
Dim lastrowz2 As Integer

lastrowz1 = Cells(Rows.Count, 10).End(xlUp).Row
lastrowz2 = Cells(Rows.Count, 11).End(xlUp).Row

If lastrowz1 <> "" And lastrowz2 = "" Then

Call Mail2Send

End If

End Sub

Wo liegt mein Fehler?

Eine zweite Frage, auf die ich keine befriedigenden Antwort gefunden habe:

Außerhalb einer UserForm habe ich 3 ActiveX-Steuerelemente (Textboxen). Der Cursor soll nach der Übernahme der Daten wieder in die erste Textbox positioniert werden.
SetFocus und Select funktionieren da irgendwie nicht.

Viele Grüße
Stefan
Antworten Top
#2
Hallo,

wirklich helfen können dir nur die VBA-Experten aber als Ansatz: Könnte es sein, dass der Fehler darin liegt, dass du die Variablen als Integer deklarierst (Ganzzahlen) und dann versuchst mit einem Textwert "" zu vergleichen?

https://www.excel-hilfe.ch/blog/vba-lauf...ehler%2013.
Gruß
Peter
Antworten Top
#3
Hi,

versuche es mal so:

Code:
If Not IsNumeric(lastrowz1) And Not IsNumeric(lastrowz2) Then
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#4
Zeilen (und auch Spalten) deklariert man besser als Long. 
Eine ganze Zahl, egal ob Integer oder Long, prüft man nicht, als ob sie Text seien.

Ist es wirklich das entscheidende Kriterium, dass die Nummer der jeweils letzten gefüllten Zeilen gleich oder ungleich einem Leerzeichen sind? Wäre es nicht angemessener zu prüfen, dass letzte Zeile 1 ungleich oder größer als letzte Zeile 2 ist? Oder noch besser: Ob der Inhalt der Zelle (letzte Zeile 1, Enddatum) nicht leer ist und ein Datum enthält?
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipediadie Tafeln oder aktion-deutschland-hilft.de
Antworten Top
#5
@EarlFred

eigentlich ist das nicht entscheidend....da aber die Werte automatisiert (durch Klick auf Button) eingetragen werden und auch nachher nicht mehr verändert werden können, war es für mich einfacher, zu prüfen, ob die Zelle überhaupt einen Wert enthält.
ich wollte da nicht zwei Uhrzeit miteinader vergleichen....

Ich muss nur wissen, ob in Zelle 2 ein Wert steht, wenn Zelle 1 einen Wert enthält.

Wenn das nicht der Fall ist, dann soll eine Erinnerungs-Mail verschickt werden....ansonsten soll gar nichts passieren...

Wichtig ist, dass in Zelle 2 zeitnah ein Wert eingetragen wird (innerhalb von 60 Minuten), wenn Zelle 1 einen Wert (Uhrzeit) enthält

@BoskoBiati

ich habe die Variablen als Long deklariert und deinen Code eingetragen....da tut sich gar nichts.....
Antworten Top
#6
Vielleicht solltest du meinen Beitrag nochmal lesen.

Du ermittelst in deinem Code die Zeilennummer, nicht die letzte Zelle selbst.

Dass eine Variable vom Typ Integer numerisch ist, sollte nicht wirklich überraschen.
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipediadie Tafeln oder aktion-deutschland-hilft.de
Antworten Top
#7
Hi,

was soll mit dem Makro passieren?
Zum Einen ist da kein Automatismus drin, der das Makro startet, zum Andern ist da keinerlei Regelung, die sich auf eine Zeitdauer bezieht.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#8
danke euch.....:)
durch eure Ansätze habe ich eine Lösung gefunden:

die Werte werden in beiden Spalten ja automatisch gesetzt....
da die Zellen für sonstige Änderungen gesperrt sind, kann ich nach einer gewissen Zeit überprüfen, ob die zweite Zelle noch leer ist....

ich vergleiche also nur die letzte beschriebene Zeile mit der letzten beschriebenen Zeile daneben...ist das Ergebnis nicht gleich, dann soll es eine Erinnerung geben....

Danke nochmals :)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste