Anzeige
Archiv - Navigation
932to936
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
932to936
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sub nur alle 60 Sekunden ausführen

Sub nur alle 60 Sekunden ausführen
11.12.2007 14:29:04
HannaG
Hallo,
hab hier ein Makro mit mehreren Subs, die permanent ablaufen. Ein Sub davon soll allerdings nur alle 60 Sekunden aufgerufen werden.
Application.Wait Now + TimeSerial(0, 0, 60) hilft mir da also nicht weiter, oder?
Gruß
Hanna

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sub nur alle 60 Sekunden ausführen
11.12.2007 14:31:00
Andi
Hi,
verwende ontime:

Sub Test()
Application.OnTime Now + TimeSerial(0, 0, 60), "Test"
MsgBox "x"
End Sub


Die


Sub muss einmal extern aufgerufen werden und startet sich dann alle 60 Sekunden selbst. Statt  _
der MsgBox fügst Du Deinen Code ein.
Schönen Gruß,
Andi

AW: Sub nur alle 60 Sekunden ausführen
11.12.2007 18:22:34
HannaG
Nochmal für ganz Dumme:
Will ich z.b. die Zeile alle 60 Sekunde löschen, sollte der Code so aussehen?
Starte das Makro Test manuell und erhalte dann immer die Meldung

Sub Test()
Application.OnTime Now + TimeSerial(0, 0, 60), "Test"
Rows(6).ClearContents
End Sub


Microsoft Excel kann das Makro C/:XXXX\Shett.xls`!Test nicht finden.
Was hab ich da wieder falsch gemacht?
Gruß
Hanna

Anzeige
AW: Sub nur alle 60 Sekunden ausführen
12.12.2007 11:28:00
Andi
Hi,
wo steht denn das Makro und von wo rufst Du es wie auf?
Schönen Gruß,
Andi

AW: Sub nur alle 60 Sekunden ausführen
12.12.2007 12:56:39
HannaG
Microsoft Excel Objekt,Tabelle2.
Starte den gesammten Code und dann noch manuel das Makro "Test",
Läuft erst durch und dann kommt nach 20 Sekunden etwa die o.g. Meldung.
Gruß
Hanna
Aussschnitt:
....

Sub Show_change3()
Application.Wait Now + TimeSerial(0, 0, 1)
For I = 10 To 50
If Range("L" & I).Value  myArray3(I - 10) Then
Application.ScreenUpdating = False
Rows(I).Copy
Rows(6).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("L" & I).Select
Call sndPlaySound32("c:\pos", 1)
Application.ScreenUpdating = True
myArray3(I - 10) = Range("L" & I)
End If
Next I
Call Test
End Sub



Sub Test()
Application.OnTime Now + TimeSerial(0, 0, 60), "Test"
Rows(8).ClearContents
Call Show_change4
End Sub


.....

Anzeige
AW: Sub nur alle 60 Sekunden ausführen
12.12.2007 13:13:00
HannaG
Microsoft Excel Objekt,Tabelle2.
Starte den gesammten Code und dann noch manuel das Makro "Test",
Läuft erst durch und dann kommt nach 20 Sekunden etwa die o.g. Meldung.
Gruß
Hanna
Aussschnitt:
....

Sub Show_change3()
Application.Wait Now + TimeSerial(0, 0, 1)
For I = 10 To 50
If Range("L" & I).Value  myArray3(I - 10) Then
Application.ScreenUpdating = False
Rows(I).Copy
Rows(6).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("L" & I).Select
Call sndPlaySound32("c:\pos", 1)
Application.ScreenUpdating = True
myArray3(I - 10) = Range("L" & I)
End If
Next I
Call Test
End Sub



Sub Test()
Application.OnTime Now + TimeSerial(0, 0, 60), "Test"
Rows(8).ClearContents
Call Show_change4
End Sub


.....

Anzeige
AW: Sub nur alle 60 Sekunden ausführen
12.12.2007 14:24:37
Andi
Hi,
kopiere das Makro mal in ein Standard-Modul.
Dazu müsstest Du noch im Code das betreffende sheet referenzieren, etwa
sheets("Tabelle1").Rows(8).ClearContents
Schönen Gruß,
Andi

AW: Sub nur alle 60 Sekunden ausführen
12.12.2007 15:49:00
HannaG
Oh, je. Da fehlen mir die Grundlagen. Also einfach den Code unten in neues Modul(Modul2 wäre das) reinkopieren?
Und wo referenzier ich das? Sagen wir, das Sheet heißt Sheet1, ist Tabelle 2?
LG
Hanna

Sub Test()
Application.OnTime Now + TimeSerial(0, 0, 60), "Test"
Rows(8).ClearContents
End Sub


AW: Sub nur alle 60 Sekunden ausführen
12.12.2007 15:54:00
Andi
Hi,
Also einfach den Code unten in neues Modul(Modul2 wäre das) reinkopieren?
Genau so.
Und wo referenzier ich das?
Wie ich schon schrieb:
statt
Rows(8).ClearContents
schreibst Du
Sheets("Tabelle1").Rows(8).ClearContents
den Tabellennamen musst Du natürlich noch anpassen.
Wenn Du dann Dein Makro einmal aufrufst, entweder über Extras, Makro, Makros oder per
Call Test
aus einem anderen Makro heraus, dann startet es sich ab dann alle 60 Sekunden selbst.
Schönen Gruß,
Andi

Anzeige
AW: Sub nur alle 60 Sekunden ausführen
12.12.2007 16:29:00
HannaG
Oh, je. Da fehlen mir die Grundlagen. Also einfach den Code unten in neues Modul(Modul2 wäre das) reinkopieren?
Und wo referenzier ich das? Sagen wir, das Sheet heißt Sheet1, ist Tabelle 2?
LG
Hanna

Sub Test()
Application.OnTime Now + TimeSerial(0, 0, 60), "Test"
Rows(8).ClearContents
End Sub


Doppelt oT
11.12.2007 14:32:06
Hajo_Zi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige