Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1840to1844
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

If Anweisung

If Anweisung
26.07.2021 16:39:18
Peer
Hallo liebe XL-VBA Gemeinde.
Ich scheitere gerade an einer scheinbar einfache If-Anweisung.
Ich möchte beim Schließen der UF (QueryClose) prüfen, ob eine Auswahl getroffen wurde. Wenn nicht soll eine MsgBox erscheinen, ansonsten die UF schließen. Dabei habe ich unter "Verwendung" 6 Radiobutton angelegt.

'Abfrage, ob eine Verwendung ausgewählt wurde
If Me.opt_Ausbilder.Value = False And _
Me.opt_Krank.Value = False And _
Me.opt_Ruhe.Value = False And _
Me.opt_Urlaub.Value = False And _
Me.opt_Schicht.Value = False And _
Me.opt_Pruefer.Visible = True And Me.opt_Pruefer.Value = False Then
If MsgBox("Bitte eine Verwendung auswählen", vbOKCancel + vbInformation, "Keine Auswahl getroffen") = vbOK Then
Cancel = True
Else: Cancel = False
End If
End If
Die ersten 5 Optionen klappten bis jetzt auch prima. Nun habe ich eine Option "Pruefer" hinzugefügt, die in der UF ausgeblendet wird, wenn innerhalb der Mappe in einer Zelle nicht "Prüfer" steht.
Wenn der Radiobutton eingeblendet ist, funktioniert ebenfalls alles. Wenn ich aber prüfen möchte, dass der Radiobutton eingeblendet ist UND deaktiviert ist, soll die Meldung kommen. Aber derzeit schließt die UF einfach ohne die Meldung.
Habe ich einen Gedankenfehler?
Ich wäre dankbar für jeden Anstoß.
VG
Peer

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If Anweisung
26.07.2021 17:05:01
GerdL
Moin Peer,
hast du die 6 Optionbuttons gruppiert, so dass immer einer davon "True" ist ?
Gruß Gerd
AW: If Anweisung
26.07.2021 17:10:22
Peer
Hallo GerdL
Ja. Immer nur eine Option soll ausgewählt werden können.
Gruß
Peer
AW: If Anweisung
26.07.2021 17:15:43
Peer
Mist, zu schnell ge"enter"t.
Bei Initialisieren der UF wird geprüft, ob in der bestimmten Zelle ein Wert von den benannten Radiobutton steht. Wenn ja wird der ausgelesene Wert dem Radiobutton true übergeben, den anderen false.
Wenn aber in der bestimmten Zelle NICHTS steht, soll keiner der Radiobutton einen Wert bekommen und die Werte neu bestimmt werden. Deshalb die Abfrage, das hier auch genau ein Wert ausgewählt werden soll beim Schließen der UF.
Gruß
Peer
Anzeige
AW: If Anweisung
26.07.2021 17:27:40
onur
Da du alles mit AND verknüpft hast, trifft die IF-Bedingung nur zu, wenn ALLE 7 Kriterien erfüllt sind. Sobald "opt_Pruefer" ausgeblendet ist, ist dies nicht mehr der Fall, ganz egal wie die einzelnen Buttons stehen.
AW: If Anweisung
26.07.2021 17:38:37
Peer
Das ist logisch, onur. Soweit habe ich gar nicht gedacht.
Ich habe mit einer Abfrage versucht, vorher zu klären, ob der Radiobutton überhaupt da ist und dann die Routine drüber laufen zu lassen.

Dim PrueferActive As Boolean
PrueferActive = False
If Me.opt_Pruefer.Visible = True And Me.opt_Pruefer.Value = False Then
PrueferActive = True
'MsgBox PrueferActive
Else
PrueferActive = False
'MsgBox PrueferActive
End If
'Abfrage, ob eine Verwendung ausgewählt wurde
If Me.opt_Ausbilder.Value = False And _
Me.opt_Krank.Value = False And _
Me.opt_Ruhe.Value = False And _
Me.opt_Urlaub.Value = False And _
Me.opt_Schicht.Value = False And _
PrueferActive = True Then
'Me.opt_Pruefer.Visible = True And Me.opt_Pruefer.Value = False Then
If MsgBox("Bitte eine Verwendung auswählen", vbOKCancel + vbInformation, "Keine Auswahl getroffen") = vbOK Then
Cancel = True
Else: Cancel = False
End If
End If
Es ist aber genau das selbe, wie du gemeint hast.
Wie kann ich dafür sorgen, dass die Prüfung nur erfolgt, wenn es den Radiobutton überhaupt "gibt"?
Anzeige
AW: If Anweisung
26.07.2021 17:44:24
onur
DAS müsste völlig reichen:

If Me.opt_Ausbilder Or Me.opt_Krank Or Me.opt_Ruhe Or Me.opt_Urlaub Or Me.opt_Schicht Then Exit Sub
If Me.opt_Pruefer.Visible = True And Me.opt_Pruefer Then Exit Sub
If MsgBox("Bitte eine Verwendung auswählen", 65, "Keine Auswahl getroffen") = vbOK Then Cancel = True

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige