Herbers Excel-Forum - das Archiv

Makro zyklisch ausführen?

Bild

Betrifft: Makro zyklisch ausführen?
von: Bernhard

Geschrieben am: 21.12.2006 15:37:36
Hallo zusammen,
habe folgendes winziges Makro geschrieben:
Sub Empfehlung_Bandlänge()
If Worksheets("Produkt&Maschine").Range("B8").Value <> "?" & Worksheets("Produkt&Maschine").Range("B15").Value <> "?" Then
Worksheets("Produkt&Maschine").Range("G21").Value = Worksheets("Produkt&Maschine").Range("B8").Value + Worksheets("Produkt&Maschine").Range("B15").Value
Worksheets("Produkt&Maschine").Range("G29").Value = Worksheets("Produkt&Maschine").Range("B8").Value + Worksheets("Produkt&Maschine").Range("B15").Value
Else
Worksheets("Produkt&Maschine").Range("G21").Value = "?"
Worksheets("Produkt&Maschine").Range("G29").Value = "?"
End If
End Sub

Jetzt möchte ich, dass es im Hintergrund selbständig immer wieder ausgeführt wird (also ohne dass ich auf Play drücke).
Ist sowas möglich? Wie geht das?
Vielen Dank für Eure Hilfe
Bernhard
Bild

Betrifft: AW: Makro zyklisch ausführen?
von: Fred

Geschrieben am: 21.12.2006 15:47:32
Hi,
Sub Empfehlung_Bandlänge()
Do
With Worksheets("Produkt&Maschine")
If .Range("B8").Value <> "?" & .Range("B15").Value <> "?" Then
.Range("G21").Value = .Range("B8").Value + .Range("B15").Value
.Range("G29").Value = .Range("B8").Value + .Range("B15").Value
Else
.Range("G21").Value = "?"
.Range("G29").Value = "?"
End If
End With
Loop
End Sub

mfg Fred
Bild

Betrifft: AW: Makro zyklisch ausführen?
von: Bernhard

Geschrieben am: 22.12.2006 07:49:17
Hallo,
erstmal vielen Dank für die schnelle Hilfe! Die Verwendung von "With - End With" ist auch sehr hilfreich.
Allerdings habe ich mit der Schleife das Problem, dass Excel dann nicht mehr reagiert. Blokiert die Endlosschleife weiteres Vorgehen?
Weiterhin scheint meine If-Abfrage nicht zu funktionieren, da in der Zielzelle z.B. "??" steht, wenn die Bezugszellen beide ein Fragezeichen aufweisen.(oder "ab", wenn jeweils a und b in den Bezugszellen steht)
Hat jemand eine Idee warum?
Bild

Betrifft: AW: Makro zyklisch ausführen?
von: Bernhard
Geschrieben am: 22.12.2006 07:54:36
Hallo nochmal, was ich gerade geschrieben habe war natürlich zum Teil Mist.
Wenn "a" und "b" drin steht ist das ja <> "?". Aber es passiert halt auch, wenn "?" in beiden oder einer Zelle steht.
Bild

Betrifft: AW: Makro zyklisch ausführen?
von: Bernhard
Geschrieben am: 22.12.2006 08:26:28
Ich bins nochmal,
habe festgestellt, dass ich eine falsch Und-Verknüpfung verwendet habe (schlimm, wenn man mehr als drei Programmiersprachen gleichzeitig verwendet).
Das Problem mit der Schleife habe ich leider immer noch...
Vielen Dank für eure Hilfe
Bild

Betrifft: AW: Makro zyklisch ausführen?
von: Heiko S.
Geschrieben am: 22.12.2006 11:53:26
Hallo,
warum willst du das denn zyklisch abarbeiten.
Wann und wodurch ändert sich den der Inhalt der Zellen die du im Vergleich drin hast?
Ducrh manuelle Eingabe, durch eine Berechnung oder durch was ?!
Gruß Heiko
PS: Rückmeldung wäre nett !
Bild

Betrifft: AW: Makro zyklisch ausführen?
von: Bernhard
Geschrieben am: 22.12.2006 13:56:16
Hallo,
die Inhalte werden manuell geändert. Eine Detektierung, ob sich der Inhalt der Felder geändert hat mit anschließender automatischer Makroausführung wäre optimal.
Geht das?
Danke,
Bernhard
Bild

Betrifft: AW: Makro zyklisch ausführen?
von: Heiko S.

Geschrieben am: 22.12.2006 14:15:06
Hallo Bernhard,
diesen Code in das Codefenster der Tabelle die du überwachen willst.
Private Sub Worksheet_Change(ByVal Target As Range)
' Hier dann dein Code rein OHNE DIE SCHLEIFE !!!
' Das soll nur zeigen das es geht, kann später raus.
MsgBox "Es wurde gerade was geändert, in Zelle " & Target.Address, vbInformation
End Sub

Oder den wenn du nur bei Änderungen in B8 oder B15 was machen willst.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "B8" Or Target.Address(False, False) = "B15" Then
' Hier dann dein Code rein OHNE DIE SCHLEIFE !!!
' Das soll nur zeigen das es geht, kann später raus.
MsgBox "Es wurde gerade was geändert, in Zelle " & Target.Address, vbInformation
End If
End Sub

Die Afrage wo was geändert wurde läßt sich bei Bedarf auch noch erweitern.
Gruß Heiko
PS: Rückmeldung wäre nett !
Bild

Betrifft: AW: Makro zyklisch ausführen?
von: Daniel Eisert
Geschrieben am: 22.12.2006 14:01:57
Hallo
informier dich mal über die Application.OnTime-Eigenschaft.
Damit kann man ein Makro zeitgesteuert aufrufen.
Du müsstest dann 2 Makros schreiben, die sich gegenseitig mit einem Versatz von 10 Minuten aufrufen.
Gruß, Daniel Eisert
Bild

Betrifft: AW: Makro zyklisch ausführen?
von: Bernhard
Geschrieben am: 22.12.2006 14:11:55
Hallo,
ist das im standardumfang enthalten? Wenn ich in VB danach suche (Suchen-Funktion) finde ich es nicht...
Bernhard
Bild

Betrifft: AW: Makro zyklisch ausführen?
von: Daniel Eisert

Geschrieben am: 22.12.2006 14:23:14
Hallo
bei mir ja.
gib mal im Direktfenster "Application.OnTime" ein, sezte den cursor auf "OnTime" und drücke F1. dann sollte die Hilfe erscheinen, falls sie installiert ist.
Gruß, Daniel
 Bild