Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Daniel,
nein, ich hatte Dir ja schon einen Ansatz mit IIf gepostet - mein erstes Beispiel. Hier mal für die ersten beiden Felder, Ausgabe in einer MsgBox statt im Textfeld.
Code:
Private Sub CommandButton3_Click()
MsgBox IIf(Me.ob_system_a, "A", "") & IIf(Me.ob_system_b, "B", "") & _
IIf(Me.ob_bereich_a, "A", "") & IIf(Me.ob_bereich_b, "B", "")
End Sub
Das könntest Du nun noch weiter treiben bis alle drin sind und dann eben in die TextBox schreiben statt in die MsgBox.
Wenn Du eine Prüfung auf Auswahl haben willst, dann müsstest Du das vorschalten - siehe mein zweiter Ansatz im Beitrag weiter oben. Ansonsten könnte es passieren, das was fehlt
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 16.03.2017
Version(en): Excel2013
Leider werde ich das so nicht machen können.
Wenn ich das richtig verstehe, definiert System A den Buchstaben A.
Das klappt aber leider nicht, weil das je nach Kombination immer eine andere Buchstaben und Zahlenkombination ist.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
22.03.2017, 21:07
(Dieser Beitrag wurde zuletzt bearbeitet: 22.03.2017, 21:07 von schauan.)
Hallöchen,
ja, und System_b den Buchstaben B. Das hast Du ja so vorgegeben. Je nachdem, welchen von beiden Du gewählt hast, wird selbiger für die Zeichenkette verwendet. Deswegen hatte ich weiter oben das allgemeine Beispiel, dachte, das man das dadurch besser nachvollziehen kann.
Mit der Anweisung IIf kannst Du für eine Bedingung einen True- und einen False-Part programmieren.
IIf(Me.ob_system_a, "A", "")
Die Prüfung ist hier Me.ob_system_a, also, ob Du den Optionbutton gewählt hast.
Ist er gewählt, wird der Buchstabe A genommen.
Ist er nicht gewählt, ist es ein leerer String.
Da die Buttons ob_system_a und ob_system_b in einem Frame liegen, kann nur einer von beiden gewählt sein.
IIf(Me.ob_system_a, "A", "") & IIf(Me.ob_system_b, "B", "")
Das bringt an der ersten Stelle Deiner Zeichenkette also ein A oder ein B. Ausgenommen, Du hast am Anfang nichts von beiden gewählt, dann würde Deine Zeichenkette hier ein Zeichen kürzer.
Du könntest z.B. A gewählt haben, das wäre der Anfang.
Mit den anderen Optionbuttons geht es dann entsprechend nach dem gleichen Prinzip weiter.
IIf(Me.ob_bereich_a, "A", "") & IIf(Me.ob_bereich_b, "B", "")
bringt Dir für die zweite Stelle ein A oder ein B. Wieder mit der Ausnahme ...
Du könntest z.B. A gewählt haben, das wäre der zweite Buchstabe, die Zeichenkette nun also AA.
Als nächstes käme dann wohl
IIf(Me.ob_ef, "EF", "") & IIf(Me.ob_df, "DF", "")
Du könntest z.B. EF gewählt haben, das wäre der dritte und vierte Buchstabe, die Zeichenkette nun also AAEF.
Durch das " & _" am Ende einer Zeile kannst Du übrigens selbige sozusagen auf der nächsten Zeile fortsetzen. Da brauchst Du nicht so viel nach rechts zu scollen und der Code wird zuweilen etwas übersichtlicher.
Es ist also erst mal etwas Fleißarbeit, die Prüfungen bis zur letzten zu erweitern. Anschließend können wir dann schauen, wie wir z.B. auf die "ungewählten" Ausnahmen reagieren können.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 16.03.2017
Version(en): Excel2013
Hallo Schauan,
Vielen Dank nochmals für die Erklärung.
Das hatte ich auch soweit verstanden nur habe ich damit ein Problem.
Angenommen system a definiere ich als “A“ und system b als “B“, so kann es sein, dass sobald ich z.b. Breite 1235 gewählt habe, system a plötzlich als “L“ definiert werden müsste.
Sorry, mit der Reihenfolge der Buchstaben- und Zahlenkombination unserer Artikelnnumern hbe ich nichts zu tun...
Am realistischsten das umzuseten wäre wohl z.b.
mit der Select Case Funktion:
...
Select Case -ob_systema & -ob_systemb & -ob_bereicha & -ob_bereichb & -ob_ef & -ob_df & -cbo_sonderelement ...
Case “101010(1 wenn der 1. Inhalt aus der combobox gewählt wird aber das erlaubt mir vba leider nicht“))...
Gruß Daniel
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Daniel,
eine Möglichkeit zum Austausch wäre Mid$
Code:
Sub test()
str1 = "ABCA"
Mid$(str1, 1, 1) = "L"
MsgBox str1
End Sub
Du könnest also in Abhängigkeit weiterer Eingaben bestimmte Stellen des Strings ändern.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)