Anzeige
Archiv - Navigation
1944to1948
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
Inhaltsverzeichnis

mehre IF Abfragen werden nicht seriell verarbeitet

mehre IF Abfragen werden nicht seriell verarbeitet
19.09.2023 15:32:19
cixz
Hi zusammen,

ich habe 3 IF Abfragen nacheinander laufen.
Wegen seltsamen Verhaltens, habe ich in jeder eine msgbox eingebaut.

Die 3 IFs werden durchlaufen.
Eigentlich sollte nur in eines der 3 Felder Q5, T5 oder W5 ein Wert eingetragen werden, sofern in AE2 ein Wert steht.

JEdoch werden alle 3 IF Abfragen ausgeführt und AE2 erst am ende geleert.
Die Msgboxen kommen alle 3 erst am Ende nach durchlaufen aller IFs in umgekehrter Reihenfolge.
ALso erst MSGBOX 3, 2, 1...

Ich verstehe es grad nicht... jemand eine Idee?
Für mich sieht es so aus, als würde die 3 IFs nicht sauber seriell verarbeitet....




If Range("AE2").Value > "" And Range("Q5").Value = "" Then
Range("Q5").Value = Range("AE2")
Range("AE2").Value = ""
MsgBox "OK1"
End If

If Range("AE2").Value > "" And Range("T5").Value = "" Then
Range("T5").Value = Range("AE2")
Range("AE2").Value = ""
MsgBox "OK2"
End If

If Range("AE2").Value > "" And Range("W5").Value = "" Then
Range("W5").Value = Range("AE2")
Range("AE2").Value = ""
MsgBox "OK3"
End If

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

Betreff
Datum
Anwender
Anzeige
AW: mehre IF Abfragen werden nicht seriell verarbeitet
19.09.2023 15:46:31
onur
Es ist nicht Excels Schuld - Das Problem mit dem Computer sitzt wieder mal vor dem Computer. Da wird nix falsch verarbeitet oder sowas.
Der Code macht GENAU DAS, was du programmiert hast.
Die einfachste Lösung: Hinter jedem der ersten beiden "End If" ein "Exit Sub".
AW: mehre IF Abfragen werden nicht seriell verarbeitet
19.09.2023 15:53:45
cixz
Danke für die schnelle Antwort.

Aber Exit Sub endet dann doch immer die gesamte Routine...
Wenn W5 aus der ersten If bereits gefüllt ist, soll es ja mit T5 weiter gehen...

Auch alles andere was nach den 3IFs kommt, wird dann ja nicht mehr verarbeitet.
Ober klemmt es da grad bei mir?

Anzeige
AW: mehre IF Abfragen werden nicht seriell verarbeitet
19.09.2023 15:57:49
onur
In diesem Falle mach es so:

IF ....

...
End If
Goto weiter
IF ....
....
End If
Goto weiter
IF ....
....
End If

weiter:
'REST VOM CODE
AW: mehre IF Abfragen werden nicht seriell verarbeitet
19.09.2023 15:53:44
Yal
Hallo Cixz,

findet diese Verarbeitung zufällig in einer "Worksheet_Change"-Prozedure, bei dem Du nicht "Application.EnableEvents = False" setzt?

Private Sub Worksheet_Change()

Application.EnableEvents = False
If Range("AE2").Value > "" Then
Select Case ""
Case Range("Q5").Value
Range("Q5").Value = Range("AE2")
MsgBox "OK1"
Case Range("T5").Value
Range("T5").Value = Range("AE2")
MsgBox "OK2"
Case Range("W5").Value
Range("W5").Value = Range("AE2")
MsgBox "OK3"
End Select
Range("AE2").Value = ""
End If
Application.EnableEvents = True
End Sub


VG
Yal
Anzeige
AW: mehre IF Abfragen werden nicht seriell verarbeitet
19.09.2023 15:59:30
daniel
HI
also bei mir funktioniert dein Code so, wie du es dir wünscht, ich kann deine Probleme nicht nachvollziehen.
getestet habe ich den Code allerdings in einem normalen Makro.
hast das irgenwie anders? wie wird der Code ausgelöst? hast du eventuell Eventmakros am Start, beispielsweise das Change-Event?
dann solltest du beachten, dass die sich auch selber aufrufen können, dh dein Makro würde nochmal gestartet, wenn du das aufsführst :Range("Q5").Value = Range("AE2")

um sowas zu vermeiden gibt es den Befehl: Application.EnableEvents = False
danach werden keine Events mehr ausgelöst, dh du kannst Zellwerte änderen, ohne dass das Changemarko nochmal ausgelöst wird.
am Ende musst du dann mit Application.EnableEvents = True diese wieder aktivieren, sonst bleiben die ausgeschaltet, wenn du wieder normal mit Excel arbeitest
Anzeige
AW: mehre IF Abfragen werden nicht seriell verarbeitet
19.09.2023 15:56:38
cixz
findet diese Verarbeitung zufällig in einer "Worksheet_Change"-Prozedure, bei dem Du nicht "Application.EnableEvents = False" setzt?

Ja, genau...
Wusste nicht, dass es relevant ist für das Problem...

OK, ich teste mal...
Danke!
AW: mehre IF Abfragen werden nicht seriell verarbeitet
19.09.2023 16:01:47
onur
Das ist eigentlich absolut nicht relevant für dein Problem....
AW: mehre IF Abfragen werden nicht seriell verarbeitet
19.09.2023 16:11:36
cixz
Doch, es war absolut relevant.

So wie YAL geschrieben hat, lag es Event CHANGE...
Das hat mir die Verarbeitung der 3 IF Schleifen gestört.

Durch
Application.EnableEvents = False
vor, bzw.
Application.EnableEvents = True
nach den 3 IFs läuft es jetzt perfekt.

Danke an alle Hinweisgeber ;o)

Anzeige
AW: mehre IF Abfragen werden nicht seriell verarbeitet
19.09.2023 16:15:07
onur
Ich habe dir eben eine kürzere Version gepostet.
AW: mehre IF Abfragen werden nicht seriell verarbeitet
19.09.2023 16:14:09
onur
Ich habe Blödsinn erzählt - Sorry!
SO sollte es laufen:

Application.EnableEvents = False

If Range("AE2").Value > "" Then
If Range("Q5").Value = "" Then
Range("Q5").Value = Range("AE2"): MsgBox "OK1"
ElseIf Range("T5").Value = "" Then
Range("T5").Value = Range("AE2"): MsgBox "OK2"
ElseIf Range("W5").Value = "" Then
Range("W5").Value = Range("AE2"): MsgBox "OK3"
End If
Range("AE2").Value = ""
End If
Application.EnableEvents = True
Anzeige
AW: mehre IF Abfragen werden nicht seriell verarbeitet
19.09.2023 16:30:54
cixz
Danke, die kurze Variante funktioniert auch perfekt!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige