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

lange then bedingung

lange then bedingung
16.01.2008 09:31:07
Uwe
Guten Morgen,
habe eine if then else Anweisung mit mehr als 30 Aktionen in der "then" bedingung. Dabei sagt mir vba, dass die Anweisung zu lang ist. Kann ich das Abkürzen?
if... then
cb_1.enabled=true _
and cb_2.enabled=true _
and cb_3.enabled=true _
and cb_4.enabled=true _
and cb_5.enabled=true _
....
else
end if
wie kann ich das Abkürzen?
Vielen Dank für Eure Gedanken....
MfG Uwe

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

Betreff
Datum
Anwender
Anzeige
AW: lange then bedingung
16.01.2008 09:54:50
Peter
Hallo Uwe,
wenn deine cb_s in einem UserForm(ular) enthalten sind, könnte dein If so gehen:

Private Sub CommandButton1_Click()
Dim bFehler  As Boolean
Dim iIndex   As Integer
Stop
If Range("A1")  "" Then
For iIndex = 1 To 30
If Controls("cb_" & iIndex) = False Then
bFehler = True
Exit For
End If
Next iIndex
Else
End If
If bFehler = True Then
MsgBox "Es gab eine CheckBox, die nicht auf True stand.", _
48, "   Hinweis für " & Application.UserName
Exit Sub
End If
End Sub


Gruß Peter

AW: lange then bedingung
16.01.2008 12:04:17
Uwe
Hallo:
Vielen Dank, aber das ist es noch nicht!
folgendermaßen:
Anhand eines Produktes 1, werden bestimmte Checkboxen oder Textboxen (je nachdem) sichtbar und eingie nicht. Wird ein anderes Produkt gewählt, sollen auch wieder bestimmte Checkboxen sichtbar sein. Für jedes Produkt unterschiedliche Checkboxen(Textboxen) und unterschiedlich Anzahl!
Mfg Uwe

Anzeige
AW: lange then bedingung
16.01.2008 09:57:00
Peter
Hallo Uwe,
den Stop-Befehl musst du natürlich löschen.
Die Abfrage der Zelle A1 ist ebenfalls nur Test, wie dein If aussieht, weiß ich ja nicht.
Gruß Peter

AW: lange then bedingung
16.01.2008 13:36:00
Uwe
Hallo:
Vielen Dank, aber das ist es noch nicht!
folgendermaßen:
Anhand eines Produktes 1, werden bestimmte Checkboxen oder Textboxen (je nachdem) sichtbar und eingie nicht. Wird ein anderes Produkt gewählt, sollen auch wieder bestimmte Checkboxen sichtbar sein. Für jedes Produkt unterschiedliche Checkboxen(Textboxen) und unterschiedlich Anzahl!
Mfg Uwe

AW: lange then bedingung
16.01.2008 14:44:11
Specke
Hallo Uwe,
ich löse solche Problem über Zahlencodes:
Wenn Z.b. fpr Produkt 1 alle ungeraden Checkboxen sichtbar sein sollen, sieht der so aus 1010101...
Ausgewertet wird dann so

Sub Zahlencode_auswerten()
For i = 1 To Anzahl_Checkboxen
If Mid(Zahlencode, i, 1) = 0 Then
.Controls("chk_" & i).Visible = False
Else
.Controls("chk_" & i).Visible=True
End If
Next i
End Sub


Vielleicht hilft Dir der Ansatz weiter.
Gruß Specke

Anzeige
AW: lange then bedingung
16.01.2008 23:01:32
Daniel
Hi
wenn du 30 Werte prüfen musst, musst du 30 Werte prüfen, da kannst du nichts abkürzen.
wahrscheinlich darf eine VBA-Zeile nicht mehr als 30 Textzeilen lang sein also versuche einfach mal, mehrere Prüfungen in eine Zeilen zusammen zu fassen und den Zeilenumbruch mit "_" erst nach 2 oder mehr AND-verknüfpungen zu setzen.
wenn das auch nicht funktioniert, kann man sich damit behelfen, daß VBA in berechnugen 0 als FALSE und jede andere Zahl als TRUE interpretiert. Somit entspricht eine AND-Operation einer Multiplikation und eine OR-Operation einer Addition.
dh dieser Code müsste auf jeden Fall funktionieren:

Dim Check as integer
Check = cb_1.enabeld
Check = Check * cb_2.enabled
Check = Check * cb_3.enabeld
Check = Check * cb_30.enabled
If Check then...


Gruß, Daniel

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige