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

Fehler im Macro

Fehler im Macro
frank
Hallo,
ich habe dieses Macro von einem Excel-Sheet übernommen.

Sub tageslauf()
' heute = today()
Windows("test290404.xls").Activate
Sheets("Sheet1").Activate
v_pos = Sheets("Sheet1").Range("T2").Value
If Not IsError(v_pos) Then
Sheets("Sheet1").Cells(v_pos, 1).EntireRow.Select
Selection.Interior.ColorIndex = xlNone
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Cells(v_pos, 1).Select
ActiveSheet.Cells(v_pos, 20).Value = Now
ActiveWorkbook.Save
Beep
Else
Beep
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Beep
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Beep
End If
' MsgBox v_pos
datenbasis_zeitsteuerung
End Sub

Die Datei habe eingespielt

Die Datei https://www.herber.de/bbs/user/5840.xls wurde aus Datenschutzgründen gelöscht

Kann mir jemand sagen, wo das Problem bei diesem Macro liegt.
Danke

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fehler im Macro
Andreas
Du sagst nicht welches Problem du hast.
Anstelle von
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
geht auch
Application.Wait Now + TimeValue("00:00:01")
(kann es sein, dass Deine Version bei 59 Sekunden Probleme macht?)
AW: Fehler im Macro
frank
Dieses Macro schaut sich die Zelle T2 (=aktuelle Datum). Dann sucht es das aktuelle Datum in Zelle A1-A.... und führt die Schrittte aus.
Starte ich dieses Macro führt es die Schritte in Spalte 38106 (=aktuelles Datum als Zahl aus)
Anzeige
AW: Fehler im Macro
Andreas
Klar.
Und warum?
v_pos = Sheets("Sheet1").Range("T2").Value
setzt 38106 in v_pos.
Hier ein Schubser in die richtige Richtung
Du brauchst eine Schleife
For i= 3 to ?
if cells(i,1).value=v_pos then
Sheets("Sheet1").Cells(v_pos, 1).EntireRow.Select
Selection.Interior.ColorIndex = xlNone
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Cells(v_pos, 1).Select
ActiveSheet.Cells(v_pos, 20).Value = Now
ActiveWorkbook.Save
Beep
exit for
end if
next i
(ohne Fehlerhandhabung)
Anzeige
AW: Fehler im Macro
frank
Ich habe das Macro geändert. Es funktioniert noch nicht.

Sub tageslauf()
' heute = today()
Windows("TEST290404.xls").Activate
Sheets("Sheet1").Activate
For i = 3 To 1000
If Cells(i, 1).Value = v_pos Then
Sheets("Sheet1").Cells(v_pos, 1).EntireRow.Select
Selection.Interior.ColorIndex = xlNone
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Cells(v_pos, 1).Select
ActiveSheet.Cells(v_pos, 20).Value = Now
ActiveWorkbook.Save
Beep
Exit For
End If
Next i
Beep
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Beep
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait Now + TimeValue("00:00:01")
Beep
' MsgBox v_pos
datenbasis_zeitsteuerung
End Sub


Sub datenbasis_zeitsteuerung()
Application.OnTime TimeValue("14:33:00"), "tageslauf"
End Sub

Anzeige
AW: Fehler im Macro
Andreas
Die Aussage "Es funktioniert noch nicht." ist nicht sehr hilfreich. Du hättest mehr sagen können oder?
Du hast
If Cells(i, 1).Value = v_pos Then
Sheets("Sheet1").Cells(v_pos, 1).EntireRow.Select
Das muss heissen
If Cells(i, 1).Value = v_pos Then
Sheets("Sheet1").Cells(i, 1).EntireRow.Select
Auch weitere Vorkommnisse
ActiveSheet.Cells(v_pos, 1).Select
ActiveSheet.Cells(v_pos, 20).Value = Now
vermutlich
ActiveSheet.Cells(i, 1).Select
ActiveSheet.Cells(i, 20).Value = Now
Versuch mal zu verstehen was da abläuft. Das bringt Dich langfristig weiter
Anzeige
AW: Fehler im Macro
frank
Hallo,
es wäre schon interessant zu wissen, wie Macros funktionieren. Vielleicht kann mir jemand eine gute Adresse nennen.
Also, ich habe die Veränderungen eingebaut. Das Macro funktioniert wenn ich es manuell starte. Die Zeitsteuerung geht aber noch nicht. Ich habe die Zeit abgeändert. Es passiert nichts. Es kommt auch keine Fehlermeldung.
Hoffentlich bekomme ich dazu auch noch eine Lösung.
Vielen Dank
AW: Fehler im Macro
Andreas
Was versuchts Du mit der Zeitsteuerung zu erreichen?
Sollte das Makro permanent laufen und wenn eine bestimmte Uhrzeit erreicht ist dann etwas machen. Echt, Du ruckst nur die Information sehr spärlich raus.
Du kannst das nicht selbst geschrieben haben, sondern hast es irgendwo her kopiert oder? Vielleicht dort nachfragen
Versuch mal bei Google mit folgenden Stichwörtern.
site:www.herber.de uhrzeit
Es gibt vieles, dass nicht für Dich relevant ist, aber auch mehrere, die Dir sicherlich helfen werden.
Anzeige
jaja...
P@ulchen
so sieht es aus, wenn man die gleiche Frage -zig mal postet, ohne auf die Fragen der Helfer einzugehen...
P@ulchen
AW: jaja...
Frank
Stimmt nicht, ich habe gestern abend um 20H00 geantwortet.
Ich bin zum ersten mal auf diesem Forum. Ich weiss nicht, wer mir antwortet. Machen die Helfer das freiwillig, oder
Zu meinem Problem
Die Datei ist eingestellt. Das Macro soll jeden Tag um 14H33 laufen. Starte ich es manuell funktioniert es. Das Sheet ist den ganzen Tag offen.

Sub tageslauf()
' heute = today()
Windows("TEST290404.xls").Activate
Sheets("Sheet1").Activate
v_pos = Sheets("Sheet1").Range("T2").Value
For i = 3 To 1000
If Cells(i, 1).Value = v_pos Then
Sheets("Sheet1").Cells(i, 1).EntireRow.Select
Selection.Interior.ColorIndex = xlNone
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Cells(i, 1).Select
ActiveSheet.Cells(i, 20).Value = Now
ActiveWorkbook.Save
Beep
Exit For
End If
Next i
Beep
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait Now + TimeValue("00:00:01")
Beep
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait Now + TimeValue("00:00:01")
Beep
' MsgBox v_pos
datenbasis_zeitsteuerung
End Sub


Sub datenbasis_zeitsteuerung()
Application.OnTime TimeValue("15:05:00"), "tageslauf"
End Sub


Anzeige
AW: jaja...
P@ulchen
Hi Frank,
ich hatte in den Code die Find-Methode eingebaut, um eine Schleife zu umgehen.
Bei mir funktioniert der Code ohne Probleme.
Das einzige, was ich nicht kapiere, ist die ganze Geschichte nach "Next i"
Hier noch mal Deine Datei, die genau so bei mir ohne Probleme läuft (auch mit der Zeitsteuerung):
https://www.herber.de/bbs/user/5856.xls
Gruß aus Leipzig
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Anzeige
AW: jaja...
frank
Schon mal vielen Dank.
Die Zeitsteuerung funktioniert bei mir nicht. Gebe ich in dem Macro eine andere Uhrzeit an passiert nichts. Ich bekomme auch keine Fehlermedlung.
Vielleicht hat das nach dem next i was damit zu tun, dass dort die Uhrzeit genauer definiert wird. Das Macro wird auf einem Reuters-Rechner ausgeführt.
Schönes Wochenende
AW: jaja...
Andreas
Ein letzter Tipp
Du sagts immer "Die Zeitsteuerung funktioniert bei mir nicht"
aber ich zumindest habe es nicht verstanden, was Du überhaupt erreichen möchtest
Folgende Befehle
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait Now + TimeValue("00:00:01")
machen nur folgendes
Errechnen eine variable "waitTime", die so wie ich es sehe nicht benutzt wird
Dann mit dem letzten Befehl wird eine Sekunden gewartet
Du sagst
- Gebe ich in dem Macro eine andere Uhrzeit an passiert nichts
Wo gibts Du diese Zeit an. Welche Zeit hast Du probiert.
Versuch mal mit MSGBOX festzustellen, wo wann was abläuft.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige