Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1820to1824
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeiterfassung, Daten einlesen fehlerhaft

Zeiterfassung, Daten einlesen fehlerhaft
18.03.2021 09:30:49
Jannes
Hallo zusammen, 
ich arbeite gerade an einer kleinen Spielerei, um Zeiten zu erfassen, jedoch bekomme ich immer Fehlermeldung in der Zeile (Worksheets(MONAT).Columns(1).Find(S).Select). Was mache ich falsch? 
Ich öffne eine UserForm, in der der aktuelle Monat abgefragt wird, da ich für jeden Monat ein einzelnes Worksheet habe. 
Es wird das Datum abgefragt, damit ich nach der Zeile mit dem Datum suchen kann. Es wird auch die Kommen und Gehen-Zeit abgefragt, 
die dann rechts neben dem Datum eingepflegt werden sollen, damit ich mir dann meine IST-Zeit errechnen kann. 
Hier der Code: 
_____________________________________________

Private Sub CommandButton_Click()
Dim S As String
Dim KOMMEN As String
Dim GEHEN As String
Dim MONAT As String
S = Zeiterfassung.TextBox3.Value
S = Format(S, "dd/mm/yyyy")
KOMMEN = Zeiterfassung.TextBox5.Value
GEHEN = Zeiterfassung.TextBox6.Value
MONAT = Zeiterfassung.ComboBox1.Value
Worksheets(MONAT).Columns(1).Find(S).Select
ActiveCell.Offset(0, 1).Value = TextBox5.Text
ActiveCell.Offset(0, 2).Value = TextBox6.Text
End Sub

_____________________________________________________

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeiterfassung, Daten einlesen fehlerhaft
18.03.2021 09:39:36
ralf_b
Moin,
Wie sicher ist es das MONAT immer einen gültigen Wert hat, das S einen gültigen Wert hat und auch in der Liste gefunden wird? Im Fehlerfall löst find() eine Fehler aus oder Select löst einen Fehler aus wenn es keine Zelle zum selectieren gibt. Das betreffende Worksheet(MONAT) sollte auch aktiv sein für select.
gruß
rb

AW: Zeiterfassung, Daten einlesen fehlerhaft
18.03.2021 09:45:04
Jannes
Hallo Ralf,
komischerweise, nach dem Debuggen, wenn die Zeile gelb ist und ich mit dem Cursor über MONAT fahre, steht dort MONAT = "Februar" (bei Februar-Angabe in der Userform) und S = "01/02/2021".
Das Einlesen sollte geklappt haben. Trotzdem kommt ein Laufzeitfehler
Gruß
Jannes

Anzeige
AW: Zeiterfassung, Daten einlesen fehlerhaft
18.03.2021 11:37:54
ralf_b
Daniel hats ja schon geschrieben Datum finden ist so ne Sache.
das Format sollte evtl. engl. sein. und die Findparameter Lookin und Lookat sollest du setzen, da diese sich nach der letzten Einstellung im Excel richten. Es macht möglicherweise einen Unterschied ob Lookin auf xlValues oder XlFormulas steht. Das mußt du probieren.
gruß
rb

AW: Zeiterfassung, Daten einlesen fehlerhaft
18.03.2021 09:39:37
ralf_b
Moin,
Wie sicher ist es das MONAT immer einen gültigen Wert hat, das S einen gültigen Wert hat und auch in der Liste gefunden wird? Im Fehlerfall löst find() eine Fehler aus oder Select löst einen Fehler aus wenn es keine Zelle zum selectieren gibt. Das betreffende Worksheet(MONAT) sollte auch aktiv sein für select.
gruß
rb

Anzeige
AW: Zeiterfassung, Daten einlesen fehlerhaft
18.03.2021 09:47:24
Daniel
Hi
Mit Select kannst du immer nur ein Element neu auswählen.
Entweder das neue Blatt Oder die neue Zelle im aktiven Blatt.
Beides gleichzeitig geht mit Select nicht.
Entweder so:
Applications.Goto Worksheets(MONAT).Columns(1).Find(S)
Oder aber besser wäre, die Fundstelle einer Variablen zuzuweisen und diese statt ActiveCell zu verwenden.
Das erlaubt dir auch, bei Falscheingaben in Textbox3 ohne Fehlerabbruch auszukommen:
Private Sub CommandButton_Click()
Dim S As String
Dim KOMMEN As String
Dim GEHEN As String
Dim MONAT As String
DIM ZELLE AS Range
S = Zeiterfassung.TextBox3.Value
S = Format(S, "dd/mm/yyyy")
KOMMEN = Zeiterfassung.TextBox5.Value
GEHEN = Zeiterfassung.TextBox6.Value
MONAT = Zeiterfassung.ComboBox1.Value
Set ZELLE = Worksheets(MONAT).Columns(1).Find(S)
IF ZELLE is Nothing then
Msgbox "Bitte Datum korrekt eingeben"
Else
Application.Goto ZELLE
ZELLE.Offset(0, 1).Value = TextBox5.Text
ZELLE.Offset(0, 2).Value = TextBox6.Text
END IF
End Sub

hierbei wäre es auch nicht mehr erforderlich, das Blatt und die Zelle zu aktivieren, das würde auch funktionieren wenn ein anderes Blatt aktiv ist.
Ich hab den Sprung zur Zelle trotzdem hinzugefügt, damit der Anwender die Eingabe sehen kann.
Gruss Daniel

Anzeige
AW: Zeiterfassung, Daten einlesen fehlerhaft
18.03.2021 09:52:32
Daniel
Noch ein Hinweis:
Datumswerte mit .Find in Excel suchen ist ein Thema für sich.
Dazu wurde aber auch schon viel geschrieben.
Du solltest mit Hilfe einer Suchmaschine deiner Wahl dazu genügend in den Archiven und im WWW finden, so dass ich das hier nicht nochmal wiederholen muss.
Gruß Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige