Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
184to188
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
184to188
184to188
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fehler in Makro

Fehler in Makro
28.11.2002 22:24:11
Rolf St
Hallo !
Ich habe in folgendem Makro eine Fehlermeldung! Die Uhr startet aber sobald ich das Tabellenblatt wechsle kommt Laufzeitfehler 13 unverträgliche Typen.
In dieser Zeile liegt mein Problem :
Range("E1").Value = Now - Range("D1").Value

Sub Start()
'Time = Now + TimeValue("00:00:01")
Startzeit = Now 'Application.Run("gibZeit")
Range("D1,D3:D1000").ClearContents
' Range("D1:D" & Rows.Count).ClearContents
Range("D1").Value = Startzeit
Range("D2").Select
' ActiveCell.FormulaR1C1 = "Zeit"
Range("C3").Select
Application.OnTime Now + TimeValue("00:00:01"), "uhr"
uhrlaeuft = True
With Application
.OnKey "Q", "zwischenzeit24112002" ' setzt Zuweisung
.OnKey "q", "zwischenzeit24112002"
End With
Beep

End Sub

Sub Stopp()
On Error Resume Next
uhrlaeuft = False
Application.OnTime Time, "Start", , False

With Application
.OnKey "Q"
.OnKey "q"
End With
Beep

End Sub

Sub zwischenzeit24112002()
Dim iRow As Integer
iRow = Cells(Rows.Count, 4).End(xlUp).Row + 1
If iRow < 3 Then iRow = 3
Cells(iRow, 4) = Application.Run("gibZeit", Range("D1"))
'Now - Range("D1").Value + Application.Run("gibZeit", Range("D1"))
Beep

End Sub


Public Sub uhr()
' hier ist die Fehlermeldung
Range("E1").Value = Now - Range("D1").Value
If uhrlaeuft Then
Application.OnTime Now + TimeValue("00:00:01"), "uhr"
End If
End Sub

Vielleicht kan mir jemand helfen?

Vielen Dank für eure Hilfe!

Tschüß
rolf


11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Fehler in Makro
28.11.2002 22:48:40
M. Kuhn
Moin Rolf,

wenn das die Fehlerzeile ist, dann:

Range("E1").Value = Now - CDate(Range("D1").Value)

Hilft, wenn "D1" kein Datums/Zeitwert ist.

MfG Mario

Re: Fehler in Makro
29.11.2002 06:53:39
Hajo
Hallo Rolf

bezeichne die Zellen genau mit
Worksheets("Tabelle1").Range.....

Gruß Hajo

Re: Fehler in Makro
29.11.2002 16:30:21
Rolf St
Hallo Hajo und Mario,
leider funktioniert beides nicht

Worksheets("Zeitnahme").Range("E1").Value = Now - Range("D1").Value

Range("E1").Value = Now - CDate(Range("D1").Value)

Immer wenn ich das Tabellenblatt wechsle kommt die fehlermeldung!

Habt ihr noch eine Idee für mich?

Tschüß
Rolf

Re: Fehler in Makro
29.11.2002 16:31:05
Rolf St
Hallo Hajo und Mario,
leider funktioniert beides nicht

Worksheets("Zeitnahme").Range("E1").Value = Now - Range("D1").Value

Range("E1").Value = Now - CDate(Range("D1").Value)

Immer wenn ich das Tabellenblatt wechsle kommt die fehlermeldung!

Habt ihr noch eine Idee für mich?

Tschüß
Rolf

Anzeige
Re: Fehler in Makro
29.11.2002 16:40:01
Hajo
Halo Rolf

leider hast Du das zweite Makro nichrt zur Verfügung gestelt. Aber folgendes läuft ohne Fehler selbst bei Tabellenwechsel.



Gruß Hajo

Re: Fehler in Makro
29.11.2002 17:42:21
Rolf St
Hallo Hajo,
hier das ganze Makro. (Es läuft in Modul basMain /Ist das richtig?)
Der Fehler kommt immer noch in dieser Zeile:
Worksheets("Zeitnahme").Range("E1").Value = Now - Range("D1").Value

Wenn ich das Tabellenblatt wechsle läuft das Makro nicht weiter und es kommt Laufzeitfehler 13

Option Explicit
Dim uhrlaeuft
Dim Startzeit


Sub Start()
With Worksheets("Zeitnahme")
'Time = Now + TimeValue("00:00:01")
Startzeit = Now 'Application.Run("gibZeit")
Range("D1,D3:D1000").ClearContents
' Range("D1:D" & Rows.Count).ClearContents
Range("D1").Value = Startzeit
Range("D2").Select
' ActiveCell.FormulaR1C1 = "Zeit"
Range("C3").Select
Application.OnTime Now + TimeValue("00:00:01"), "uhr"
uhrlaeuft = True
With Application
.OnKey "Q", "zwischenzeit24112002" ' setzt Zuweisung
.OnKey "q", "zwischenzeit24112002"
End With
Beep
End With

End Sub

Sub Stopp()
On Error Resume Next
uhrlaeuft = False
Application.OnTime Time, "Start", , False

With Application
.OnKey "Q"
.OnKey "q"
End With
Beep

End Sub

Sub zwischenzeit24112002()
Dim iRow As Integer
iRow = Cells(Rows.Count, 4).End(xlUp).Row + 1
If iRow < 3 Then iRow = 3
Cells(iRow, 4) = Application.Run("gibZeit", Range("D1"))
'Now - Range("D1").Value + Application.Run("gibZeit", Range("D1"))
Beep

End Sub

Public Sub uhr()
'folgende Zeile mach Probleme
Worksheets("Zeitnahme").Range("E1").Value = Now - Range("D1").Value
If uhrlaeuft Then
Application.OnTime Now + TimeValue("00:00:01"), "uhr"
End If
End Sub


Tschüß
Rolf

Anzeige
Re: Fehler in Makro
29.11.2002 17:51:34
Hajo
Hallo Rolf

mir ist nicht klar warum Du meinen Code nicht 1 zu 1 übernommen hast. Aber Du wirst schon Deinen Grund dafür haben. Dann Frage mich aber nicht, warum er nicht läuft.

Gruß Hajo

Re: Fehler in Makro
29.11.2002 19:26:27
Rolf St
Hallo Hajo,
da liegt wohl meinerseits ein Missverständnis vor.
Du schreibst : leider hast Du das zweite Makro nicht zur Verfügung gestellt. Aber folgendes läuft ohne Fehler selbst bei Tabellenwechsel.

Da dachte ich, ich füge noch einmal das Makro mit der Fehlermeldung ein! Sorry !!

Hier das Makro 1: 1 übernommen. Habe ich getestet

Noch immer kommt die Fehlermeldung beim wechseln in eine anderes Tabellenblatt

In dieser Zeile sitzt der Fehler:
Worksheets("Zeitnahme").Range("E1").Value = Now - Range("D1").Value

Option Explicit
Sub Start()
Dim Startzeit As Date
Dim Uhrlaeuft As Boolean
With Worksheets("Zeitnahme")
'Time = Now + TimeValue("00:00:01")
Startzeit = Now 'Application.Run("gibZeit")
.Range("D1,D3:D1000").ClearContents
' Range("D1:D" & Rows.Count).ClearContents
.Range("D1").Value = Startzeit
'.Range("D2").FormulaR1C1 = "Zeit"
Application.OnTime Now + TimeValue("00:00:01"), "uhr"
Uhrlaeuft = True
With Application
.OnKey "Q", "zwischenzeit24112002" ' setzt Zuweisung
.OnKey "q", "zwischenzeit24112002"
End With
Beep
End With
End Sub


Sub Uhr()
Dim Uhrlaeuft As Boolean
' in folgender Zeile ist der Fehler
Worksheets("Zeitnahme").Range("E1").Value = Now - Range("D1").Value
If Uhrlaeuft Then
Application.OnTime Now + TimeValue("00:00:01"), "uhr"
End If
End Sub

Sub Stopp()
Dim Uhrlaeuft As Boolean
On Error Resume Next
Uhrlaeuft = False
Application.OnTime Time, "Start", , False

With Application
.OnKey "Q"
.OnKey "q"
End With
Beep

End Sub

Sub zwischenzeit24112002()
Dim iRow As Integer
iRow = Cells(Rows.Count, 4).End(xlUp).Row + 1
If iRow < 3 Then iRow = 3
Cells(iRow, 4) = Application.Run("gibZeit", Range("D1"))
'Now - Range("D1").Value + Application.Run("gibZeit", Range("D1"))
Beep

End Sub

Tschüß
Rolf

Anzeige
Re: Fehler in Makro
30.11.2002 07:02:08
Hajo
Hallo Rolf

Schaue doch mal unter Features, wie Code im Forum dargestellt wird.

den Fehler beim Wechsel des Tabellenblattes kann ich nicht nachvollziehen. Bei mir kommt kein Fehler beim Wechsel des Tabellenblatttes. Nur bei Wechsel der Datei,. Diesen Fehler habe ich noch beseitigt. Ansonsten bin ich mit meinem Latein am Ende. Ich kann Deinen Fehler nicht nachbauen, so kann ich ihn auch nicht finden.


Gruß Hajo

Re: Fehler in Makro
30.11.2002 09:43:41
Rolf St
Hallo Hajo!
Vielen Dank für deine Hilfe!

Interessanter Weise läuft die Uhr so und es gibt keine Fehlermeldung:
ThisWorkbook.Worksheets("Zeitnahme").Range("E1").Value = Now
' - Range("D1").Value

Das Makro kann die Zeit nicht von D1 abziehen.
Ich vermute, das liegt irgenwie an der Formatierung der Zelle
und weil Excel dort mit zehntel und hunderstelstel rechnet.
(Das kann meines wissens VBA nicht)
Wahrscheinlich benötige ich eine zweite Startzeit die anders rechnet.

Werde dies heute Nachmittag mal testen! Wenn es klappt informier ich dich!

Tschüß
Rolf

Anzeige
Re: Fehler in Makro
02.12.2002 18:25:16
Rolf St
Hallo Hajo!
ich habe das Makro jetzt soweit, das es läuft. Die Stoppuhr die in Zelle E1 gestört hat läuft jetzt in der Statusleiste.
Der Fehler beim wechseln des Tabellenblattes kommt nicht mehr.


Option Explicit
Dim Startzeit As Date
Dim Uhrlaeuft As Boolean
Dim strMsg As String
Public NextTime As Date
Public Zeit1 As Date
Sub Start()
With Worksheets("Zeitnahme")
'Time = Now + TimeValue("00:00:01")
Startzeit = Now 'Application.Run("gibZeit")
.Range("D1,D3:D1000").ClearContents
' Range("D1:D" & Rows.Count).ClearContents
.Range("D1").Value = Startzeit
'.Range("D2").FormulaR1C1 = "Zeit"
Application.OnTime Now + TimeValue("00:00:01"), "uhr"
Uhrlaeuft = True
Zeit1 = Time
uhr1
With Application
.OnKey "Q", "zwischenzeit24112002" ' setzt Zuweisung
.OnKey "q", "zwischenzeit24112002"
End With
Beep
End With
End Sub


Sub Stopp()

If MsgBox("Soll die Zeitnahme beendet werden?", vbYesNoCancel) = vbNo Then Exit Sub

On Error Resume Next
Uhrlaeuft = False
Application.OnTime Time, "Start", , False
Application.OnTime NextTime, "uhr1", , False
Application.StatusBar = False
With Application
.OnKey "Q"
.OnKey "q"
End With
Beep
End Sub


Public Sub uhr()
' ThisWorkbook.Worksheets("Zeitnahme").Range("E1").Value = Now ' - Range("D1").Value
If Uhrlaeuft Then Application.OnTime Now + TimeValue("00:00:01"), "uhr"
End Sub

Sub uhr1()
Worksheets("Zeitnahme").Range("E1").Calculate
Application.StatusBar = "Zeit: " & Format(Time - Zeit1, "hh:mm:ss")
NextTime = Now + TimeValue("00:00:01")
Application.OnTime NextTime, "uhr1"
End Sub


Tschüß
Rolf



Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige