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

Zwei Makros NUR abwechselnd ausführen

Zwei Makros NUR abwechselnd ausführen
22.11.2004 20:00:26
Stephan
Guten Abend.
Ich habe zwei Makros die durch einen bestimmten Wert einer Zelle ausgeführt werden. Diese Zelle wird durch eine Cut/Paste-Funktion gefüllt wobei der Wert natürlich bei mehreren Cut/Paste-Ausführungen gleichbleiben kann.
Ich möchte verhindern, dass bei gleichbleibendem Wert der Zelle das entsprechende Makro erneut ausgeführt wird, es soll also nur dann erneut ausgeführt werden wenn vorher das andere Makro ausgeführt wurde (bzw. es nicht das letzte Makro war welches ausgeführt wurde).
Uff. Geht soetwas und wenn ja wie ...
Vielen Dank für Eure Hilfe
Stephan

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zwei Makros NUR abwechselnd ausführen
22.11.2004 20:26:04
Stephan
Zur weiteren Erklärung:
Makro 1 soll ausgeführt werden wenn Zelle $A$1 den Wert 1 bekommt
Makro 2 soll ausgeführt werden wenn Zelle $A$1 den Wert 2 bekommt
Der Wert wird alle 5 Minuten in einer Anwendung per "Copy" geholt und per "Paste" in die entsprechende Zelle $A$1 geschrieben.
Es gibt leider keine Möglichkeit den Wert darauf zu prüfen ob er sich seit dem letzten Mal überhaupt geändert hat und so wird bei einem Wert 1 nach jedem "Copy/Paste" das Makro 1 ausgeführt.
Dies möchte ich verhindern in dem ich jedes Makro nur einmal ausführen lasse solange es das letzte war welches ausgeführt wurde (bzw. solange das andere nicht ausgeführt wurde).
Danke für Eure Hilfe
Stephan
Anzeige
AW: Zwei Makros NUR abwechselnd ausführen
22.11.2004 20:34:04
Josef
Hallo Stephan!
Eine Möglichkeit.
Option Explicit
Public blnCheck As Boolean

Sub stephan()
If Not blnCheck Then
MsgBox "Erstes Makro"
blnCheck = True
Exit Sub
Else
MsgBox "Zweites Makro"
blnCheck = False
End If
End Sub

Gruß Sepp
AW: Zwei Makros NUR abwechselnd ausführen
22.11.2004 20:43:08
Stephan
Hallo Sepp.
Vielen Dank für Deine Hilfe.
Brauche ich diesen Code nur einzufügen oder muß ich irgendwo noch die MsgBox anlegen bzw. definieren.
Danke
Stephan
AW: Zwei Makros NUR abwechselnd ausführen
22.11.2004 20:46:44
Josef
Hallo Stephan!
Die "MsgBox" Anweisung ist nur ein ersatz für den Code der
ausgeführt werden soll!
Dort wo in meinem Code "MsgBox..." steht, rufst du entweder
deine Makros auf, oder du fügst die Anweisungen direkt in
dieses Makro ein.
Gruß Sepp
Anzeige
AW: Zwei Makros NUR abwechselnd ausführen
22.11.2004 20:51:21
Stephan
Also mein Code sieht bisher so aus:
If Target.Address = ("$X$2") Then
Select Case Target.Value
Case Is = 1
Call MakroLong300
Case Is = 2
Call MakroShort300
End Select
End If
Wo müßte ich jetzt Deine einbauen, könntest Du mir als Neuling da helfen ?
Danke
Stephan
AW: Zwei Makros NUR abwechselnd ausführen
22.11.2004 21:01:36
Josef
Hallo Stephan!
ZB. so.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = ("$X$2") Then
Select Case Target.Value
Case Is = 1
Call MakroLong300
Case Is = 2
Call MakroShort300
End Select
End If
End Sub

'In das Modul
Option Explicit
Public blnCheck As Boolean
Sub MakroLong300()
If blnCheck = True Then Exit Sub
'deine anweisungen
blnCheck = True
End Sub
Sub MakroShort300()
If blnCheck = False Then Exit Sub
'deine anweisungen
blnCheck = False
End Sub
Gruß Sepp
Anzeige
AW: Zwei Makros NUR abwechselnd ausführen
22.11.2004 21:27:05
Stephan
Ersteinmal Danke Sepp.
Ich sitze hier und versuche das umzusetzen. Leider habe ich noch nicht soviel Erfahrung mit der Makroprogrammierung.
Ich probiere rum, wollte mich aber zwischenzeitlich bei Dir bedanken damit nicht der Gedanke "Problem gelöst - Diskussionspartner verschwunden" bei Dir aufkommt.
Gruß
Stephan
AW: Zwei Makros NUR abwechselnd ausführen
22.11.2004 21:39:28
Stephan
Habe das jetzt so geschrieben:
---------------------------------
Public blnCheck As Boolean

Sub MakroLong300()
If blnCheck = True Then Exit Sub
'deine anweisungen
If Target.Address = ("$X$3") Then
Select Case Target.Value
Case Is = 1
Call MakroLong300
blnCheck = True
End Select
End Sub


Sub MakroShort300()
If blnCheck = False Then Exit Sub
'deine anweisungen
If Target.Address = ("$X$3") Then
Select Case Target.Value
Case Is = 2
Call MakroShort300
blnCheck = False
End Select
End Sub

----------------------------
Und habe im Worksheet noch stehen:
Private

Sub wks__Change(ByVal Target As Range)
Const str

Sub As String = "TrailingStopApp:TrailingStopWorksheet.wks__Change"
Dim strErrors As String
Dim rngRow As Range
On Error GoTo ErrHandler
If Target.Address = ("$X$3") Then
Select Case Target.Value
Case Is = 1
Call MakroLong300
Case Is = 2
Call MakroShort300
End Select
End If
Ich müßte den obigen Code eigentlich innerhalb des letzten unterbringen damit er ausgeführt wird. Ich kann aber eine Private 

Sub nicht in einem Private 

Sub unterbringen, oder ...
Ojeoje...
Stephan

Anzeige
AW: Zwei Makros NUR abwechselnd ausführen
22.11.2004 22:04:22
Josef
Hallo Stephan!
Nochmal von vorn.
Im Worksheet hast du diesen Code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = ("$X$2") Then
Select Case Target.Value
Case Is = 1
Call MakroLong300
Case Is = 2
Call MakroShort300
End Select
End If
End Sub

Die Makros stehen in einem allgemeinen Modul:
Option Explicit
Public blnCheck As Boolean
Sub MakroLong300()
If blnCheck = True Then Exit Sub
' hier stehen die Anweisungen die
du schon bisher in deinem Makro stehen hattest!

blnCheck = True
End Sub
Sub MakroShort300()
If blnCheck = False Then Exit Sub
' hier stehen die Anweisungen die
du schon bisher in deinem Makro stehen hattest!

blnCheck = False
End Sub
Gruß Sepp
Anzeige
AW: Zwei Makros NUR abwechselnd ausführen
22.11.2004 22:38:18
Stephan
Hallo Sepp.
Habe alles so gelassen wie Du es für Worksheet und Makrodatei sagtest.
In Option Explicit habe ich jetzt:
Public blnCheck As Boolean

Sub MakroLong300()
If blnCheck = True Then Exit Sub
Call MakroLong300
blnCheck = True
End Sub


Sub MakroShort300()
If blnCheck = False Then Exit Sub
Call MakroShort300
blnCheck = False
End Sub

==========================================
Es funktioniert einfach nicht.
Muß ich denn nicht auch den Code unter Worksheet abändern ?
Viele Grüsse
Stephan
Anzeige
AW: Zwei Makros NUR abwechselnd ausführen
22.11.2004 22:46:49
Josef
Hallo Stephan!
In Option Explicit habe ich jetzt:
Option Explicit steht am Anfang eines Modules und erzwingt
die Variablendklaration!
Du sollst einfach in dein Makro "MakroLong300()"
Die Zeilen hinzufügen die ich dir geschrieben habe!
Du rufst ja dein Makro rekursiv auf!
Dein Code von "MakroLong300()" sah bisher so aus

Sub MakroLong300()
'blabla
'blabla
'blabla
End Sub

und soll jetzt so aussehen

Sub MakroLong300()
If blnCheck = True Then Exit Sub
'blabla
'blabla
'blabla
blnCheck = True
End Sub

und das selbe mit "MakroShort300()" wie beschrieben
Gruß Sepp
Anzeige
AW: Zwei Makros NUR abwechselnd ausführen
22.11.2004 23:02:35
Stephan
Hallo Sepp.
Ok. Jetzt habe ich verstanden, ins Makro also.
Habe die Einträge in beide Makros gemacht "if blnCheck = ... ".
Die Makros laufen aber immer noch mehrmals ...
Wohin muß:
Option Explicit
Public blnCheck As Boolean
Ich hoffe mal ich bringe Dich nicht zur Weissglut :-)
Viele Grüsse
Stephan
An den Anfang des Moduls....
22.11.2004 23:05:48
Josef
...mit den Makros!
Das sind die ersten zwei Zeilen im Modul, dann folgen deine Makros.
Gruß Sepp
AW: An den Anfang des Moduls....
22.11.2004 23:11:53
Stephan
Hallo Sepp.
Also es scheint - dank Deiner unerschütterlichen Hilfe - zu laufen. Unglaublich.
Allerdings läuft es einmal und dann nimmermehr.
Kann es sein, das beim Ausführen eines Makros das "Flagg" des anderen wieder umgesetzt werden muß ?
Viele Grüsse
Stephan
Anzeige
AW: An den Anfang des Moduls....
22.11.2004 23:28:10
Josef
Hallo,
hast du den Code richtig kopiert?
einmal
If blnCheck = True Then Exit Sub
blnCheck = True
und einmal
If blnCheck = False Then Exit Sub
blnCheck = False
Gruß Sepp
AW: An den Anfang des Moduls....
22.11.2004 23:37:57
Stephan
Hallo Sepp.
Hatte ich natürlich nicht. Ich hatte überall =True.
Es funktioniert ... TADELLOS UND BESTENS.
Ich danke Dir für Deine Gedult. Habe erst gestern mit der Makroprogrammiererei angefangen und hatte davor noch nie etwas damit zu tun.
Was machst Du eigentlich noch so spät am Compi ?
Einen schönen Gruß
Anzeige
AW: Zwei Makros NUR abwechselnd ausführen
22.11.2004 22:46:49
Stephan
Hallo Sepp.
Danke für Deine Geduld :-)
Ich bekomme eine Meldung:
Fehler 28 in der Applikation - Nicht genügend Stapelspeicher.
Mmhh.
Stephan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige