Frage von oesens, 40

Hallo zusammen, ich habe bei Excel ein Formular erstellt bei der man entweder eine US Bank mit ABA routing usw oder eine "EURO" Bank mit IBAN ausfüllen soll?

Meine Frage Ich habe zwei Optionsbutton.1. Domestic 2. International. Ich möchte, dass wenn man International auswählt nur die Felder IBAN und SWift ausfüllbar sind und bei Domestic anstatt IBAN und SWIFT Account NO, ABA und Routing. Könnt ihr mir helfen?

Danke im Voraus

Mathias

Expertenantwort
von schmiddi1967, Community-Experte für Excel, 15

Also das kannst du wie folgt machen:

Da du schon zwei Optionsbutton hast, verlinkst du diese Button über Eigenschaften im Reiter Entwicklertools mit zb. Zelle A1 oder irgendeine leere Zelle (Dort kannst du später die Schriftfarbe Weiß nehmen).

Die Zellen für die Eingabe der IBAN und SWIFT markieren und den Namen International geben und die Zellen für Account NO und ABA und Routing den Namen Domestic.

Jetzt gehst du unten auf den Reiter deiner Tabelle (zb. Tabelle1) und da mit der rechten Maustaste auf Code anzeigen.

Nun bist du im VBA Modus diner Tabelle, dort gibst du folgenden Code ein:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("A1").Value = 1 Then
If Not Intersect(Target, Range("International")) Is Nothing Then Range("International").Offset(, -1).Cells(1).Select
End If
If Range("A1").Value = 2 Then
If Not Intersect(Target, Range("Domestic")) Is Nothing Then Range("Domestic").Offset(, -1).Cells(1).Select
End If
End Sub

Das ganze noch als xlsm Datei (Excel Arbeitsmappe mit Makros) abspeichern.

Hier wird jetzt die verlinkte Zelle A1 überwacht, sobald sich die Zahl darin ändert (Das passiert automatisch durch die Optionsbutton) werden die dazugehörigen Felder freigegeben. Die anderen sind gesperrt.

Eventuell musst du das International und Domestic im Code tauschen und die Zelle A1 nach deinen wünschen anpassen.

Kommst du so mit meiner Beschreibung klar?

Hier mal ein Muster

http://workupload.com/file/q7GkN4S

Kommentar von PWolff ,

Es gibt auch eine Alternative ohne Makros, wenn man erlauben kann, dass in den "falschen" Zellen noch was stehen bleibt, wenn man die Auswahl zwischen "Domestic" und "International" wechselt.

(Könnte sein, dass Datengültigkeiten bei neueren Excel-Versionen auch nachträglich durchgesetzt werden können, aber ich habe hier nur eine alte Version.)

Hier eine Beispieldatei: http://workupload.com/file/qrmzEB8

Schau dir besonders die Bereiche A1 und D3:D7 an, und hier die Gültigkeitsprüfungen der Daten und die bedingten Formatierungen.

Kommentar von schmiddi1967 ,

Das ist auch eine gute Möglichkeit, nur ich bin hier ja auf die Frage des FS eingegangen und dort gibt es Optionsbuttons die die Felder aktivieren oder deaktivieren sollen. Deshalb hatte ich diese Lösung von mir angedacht.

Expertenantwort
von Ninombre, Community-Experte für Excel, 22

Ich nehme an, es geht um eine normale Tabelle, keine Userform.

Dort kann man Optionbuttons als Formularsteuerfeld oder ActiveX Element verwenden. Für ActiveX habe ich gerade keine makrofreie Lösung im Kopf.

Beim Formularsteuerfeld (der Button heißt eingefügt dann "Optionsfeld1") kann man Steuerelement formatieren eine Zelle zuweisen. Dort ist dann die aktuelle Auswahl als 1 oder 2 hinterlegt.

Damit kann man über die Datengültigkeitsprüfung arbeiten. Wenn man international auswählt, steht bspw. in Z1 eine 2 (2. Option ausgewählt).

Die SWIFT/ABA/Routing bekommen dann eine Datengültigkeitsprüfung Textlänge mit Minimum = 0 und Maximum =(Z1-1)*22

Wenn in Z1 eine 1 steht (d.h. domestic ausgewählt) ist die maximale Länge damit 0

Für IBAN/BIC geht es auch über Textlänge:
Minimum = 0, Maximum = (2-Z1)*22

Das Minimum bzw. die maximale Länge mit 22 kannst Du natürlich noch anpassen, um tatsächlich eine fachliche Plausibilität abzufragen.

Lücke allerdings bei der Datengültigkeitsprüfung: Wenn man domestic auswählt und eine IBAN erfasst, danach auf international wechselt, wird die IBAN deshalb nicht gelöscht oder angemeckert.

Das müsstest Du über Makros abfragen oder über eine Formel, die einfach einen Hinweistext anzeigt. Neben / Über / Sonstwo bei IBAN/BIC
=wenn(Z1=1;"";"Keine IBAN/BIC bei internationalen Überweisungen")
entsprechend für den anderen Fall eben mit Z1=2

Kommentar von Ninombre ,

wie immer kommen die besseren Ideen nach dem Abschicken.

Verfahren bleibt wie gehabt, Option button mit einer Zelle verbinden, Datengültigkeitsprüfung nutzen. Dort allerdings besser benutzerdefiniert nehmen, dann kann man mit Formeln noch weitere Aspekte prüfen. D9 ist bei meinem Beispiel die IBAN, D10 SWIFT

=UND(LÄNGE(D9)=(2-Z1)*22;LINKS(D9;2)="DE";ISTZAHL(RECHTS(D9;20)*1);D10="")

Muss fachlich nicht unbedingt sinnvoll sein, aber links(D9;2)="DE" wäre bspw. die Überprüfung, dass nur deutsche IBAN erfasst werden können, das Feld genau 22 Stellen hat, die letzten 20 Stellen nummerisch sind und das Feld SWIFT leer sein muss. Da kann man sich recht frei austoben

Vielleicht erklärungsbedürftig: Wenn man mit rechts/links Teile einer Zelle betrachtet wird das standardmäßig als Text interpretiert. Durch das *1 akzeptiert Excel das wieder als Zahl

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten