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

Togglebuttons und IF-Schleife

Togglebuttons und IF-Schleife
09.01.2018 07:15:02
Chris
Hallo Forum,
ich habe eine Userform mit 4 Togglebuttons.
Je nachdem, was in Zelle H11 H12 oder H13 steht sollen die Togglebuttons aktiviert und grün bzw. rot eingefärbt werden. Das Makro unten funktioniert nur bei Togglebutton1. Die anderen Buttons reagieren gar nicht, auch von die Bedingungen erfüllt sind.
Habe ich evtl. die IF-Schleife falsch aufgebaut?
Bin für Korrekturen dankbar. Gruß Chris

'ToggleButton1 - Zuschlag Angebot A
If Sheets("Auftragsliste").Range("H11").Value = "Zuschlag Angebot A" Then
UserForm1.ToggleButton1.Value = True
UserForm1.ToggleButton1.BackColor = RGB(128, 255, 128) 'grün
UserForm1.ToggleButton2.Enabled = False
UserForm1.ToggleButton3.Enabled = False
UserForm1.ToggleButton4.Enabled = False
If Sheets("Auftragsliste").Range("H11").Value = "" Then
UserForm1.ToggleButton1.Value = False
UserForm1.ToggleButton1.BackColor = RGB(255, 128, 128) 'rot
UserForm1.ToggleButton2.Enabled = True
UserForm1.ToggleButton3.Enabled = True
UserForm1.ToggleButton4.Enabled = True
'ToggleButton2 - Zuschlag Angebot B
If Sheets("Auftragsliste").Range("H12").Value = "Zuschlag Angebot B" Then
UserForm1.ToggleButton2.Value = True
UserForm1.ToggleButton2.BackColor = RGB(128, 255, 128) 'grün
UserForm1.ToggleButton1.Enabled = False
UserForm1.ToggleButton3.Enabled = False
UserForm1.ToggleButton4.Enabled = False
If Sheets("Auftragsliste").Range("H12").Value = "" Then
UserForm1.ToggleButton2.Value = False
UserForm1.ToggleButton2.BackColor = RGB(255, 128, 128) 'rot
UserForm1.ToggleButton1.Enabled = True
UserForm1.ToggleButton3.Enabled = True
UserForm1.ToggleButton4.Enabled = True
'ToggleButton3 - Zuschlag Angebot C
If Sheets("Auftragsliste").Range("H13").Value = "Zuschlag Angebot C" Then
UserForm1.ToggleButton3.Value = True
UserForm1.ToggleButton3.BackColor = RGB(128, 255, 128) 'grün
UserForm1.ToggleButton1.Enabled = False
UserForm1.ToggleButton2.Enabled = False
UserForm1.ToggleButton4.Enabled = False
If Sheets("Auftragsliste").Range("H13").Value = "" Then
UserForm1.ToggleButton3.Value = False
UserForm1.ToggleButton3.BackColor = RGB(255, 128, 128) 'rot
UserForm1.ToggleButton1.Enabled = True
UserForm1.ToggleButton2.Enabled = True
UserForm1.ToggleButton4.Enabled = True
End If
End If
End If
End If
End If
End If

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Togglebuttons und IF-Schleife
09.01.2018 07:48:05
chao.soft
Hi Chris,
ich vermute, dass der Fehler daran liegt, dass du alle IF-Anweisungen ineinander verschachtelt hast. Das bedeutet, dass wenn die erste Bedingung nicht zutrifft, alle anderen Bedingungen auch nicht geprüft werden.
Ich habe deinen Code mal etwas umgestellt. Getestet habe ich es nicht.

'ToggleButton1 - Zuschlag Angebot A
If Sheets("Auftragsliste").Range("H11").Value = "Zuschlag Angebot A" Then
UserForm1.ToggleButton1.Value = True
UserForm1.ToggleButton1.BackColor = RGB(128, 255, 128) 'grün
UserForm1.ToggleButton2.Enabled = False
UserForm1.ToggleButton3.Enabled = False
UserForm1.ToggleButton4.Enabled = False
ElseIf Sheets("Auftragsliste").Range("H11").Value = "" Then
UserForm1.ToggleButton1.Value = False
UserForm1.ToggleButton1.BackColor = RGB(255, 128, 128) 'rot
UserForm1.ToggleButton2.Enabled = True
UserForm1.ToggleButton3.Enabled = True
UserForm1.ToggleButton4.Enabled = True
End If
'ToggleButton2 - Zuschlag Angebot B
If Sheets("Auftragsliste").Range("H12").Value = "Zuschlag Angebot B" Then
UserForm1.ToggleButton2.Value = True
UserForm1.ToggleButton2.BackColor = RGB(128, 255, 128) 'grün
UserForm1.ToggleButton1.Enabled = False
UserForm1.ToggleButton3.Enabled = False
UserForm1.ToggleButton4.Enabled = False
ElseIf Sheets("Auftragsliste").Range("H12").Value = "" Then
UserForm1.ToggleButton2.Value = False
UserForm1.ToggleButton2.BackColor = RGB(255, 128, 128) 'rot
UserForm1.ToggleButton1.Enabled = True
UserForm1.ToggleButton3.Enabled = True
UserForm1.ToggleButton4.Enabled = True
End If
'ToggleButton3 - Zuschlag Angebot C
If Sheets("Auftragsliste").Range("H13").Value = "Zuschlag Angebot C" Then
UserForm1.ToggleButton3.Value = True
UserForm1.ToggleButton3.BackColor = RGB(128, 255, 128) 'grün
UserForm1.ToggleButton1.Enabled = False
UserForm1.ToggleButton2.Enabled = False
UserForm1.ToggleButton4.Enabled = False
ElseIf Sheets("Auftragsliste").Range("H13").Value = "" Then
UserForm1.ToggleButton3.Value = False
UserForm1.ToggleButton3.BackColor = RGB(255, 128, 128) 'rot
UserForm1.ToggleButton1.Enabled = True
UserForm1.ToggleButton2.Enabled = True
UserForm1.ToggleButton4.Enabled = True
End If

Anzeige
AW: Togglebuttons und IF-Schleife
09.01.2018 08:27:10
Chris
Hallo Chao Soft,
dein Code funktioniert. Offensichtlich hast du recht, es werden - sobald die erste Bedingung nicht zutrifft - weitere IF-Bedingungen nicht weiter geprüft wird.
Ist dies tatsächlich das Wesen einer IF-Schleife? Eigentlich unlogisch, oder?
Deinen Aufbau hatte ich auch schon getestet, mit dem unterschied, dass ich kein "ELSE IF" genutzt hatte:

'ToggleButton3 - Zuschlag Angebot C
If Sheets("Auftragsliste").Range("H13").Value = "Zuschlag Angebot C" Then
UserForm1.ToggleButton3.Value = True
UserForm1.ToggleButton3.BackColor = RGB(128, 255, 128) 'grün
UserForm1.ToggleButton1.Enabled = False
UserForm1.ToggleButton2.Enabled = False
UserForm1.ToggleButton4.Enabled = False
End if
If Sheets("Auftragsliste").Range("H13").Value = "" Then
UserForm1.ToggleButton3.Value = False
UserForm1.ToggleButton3.BackColor = RGB(255, 128, 128) 'rot
UserForm1.ToggleButton1.Enabled = True
UserForm1.ToggleButton2.Enabled = True
UserForm1.ToggleButton4.Enabled = True
End if

... gleicher Aufbau für die anderen Buttons.
Auch hier hatte ich keinen Erfolg. Warum?
Anzeige
AW: Togglebuttons und IF-Schleife
09.01.2018 08:49:02
chao.soft

Offensichtlich hast du recht, es werden - sobald die erste Bedingung nicht zutrifft - weitere  _
IF-Bedingungen nicht weiter geprüft wird.
Ist dies tatsächlich das Wesen einer IF-Schleife? Eigentlich unlogisch, oder?
Ja das ist das Wesen einer IF-Anweisung, sobald die Bedingung nicht zutrifft wird alles, was sich innerhalb der IF-Anweisung befindet übersprungen.
Theoretisch sollte dein letzter Code (ToggleButton3 - Zuschlag Angebot C) funktionieren, da nacheinander beide If-Bedingungen geprüft werden -> wie auch bei der ElseIf.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige