Ich bin neu hier im Forum und habe sehr wenig Ahnung von VBA. Habe schon im Netz gesucht nach meinem Problem, doch leider bin ich nicht so richtig fündig geworden. Ich habe mir eine Userform gebastelt mit Comboboxen und Textboxen.
Wer kann mir helfen wie ich das mache das, wenn ich in Combobox 8 eine entsprechende Zahl auswähle, das mir dann die anderen Boxen ausgeblendet werden?? Beispiel: A) Wähle ich in Combobox 8 die 1 aus, so sollen die Comboboxen 2 bis 7 und auch die Textboxen 2 bis 7 ausgeblendet werden. Drücke ich dann den Commandbutton 1 so soll er das in die entsprechende Spalten einfügen, bei Befüllung. B) Wähle ich in Combobox 8 die 2 aus, so sollen die Combobox 1 , Combobox 3 bis 7 und die Textbox 1, TextBoxen 3 bis 7 ausgeblendet werden. Drücke ich nun wieder den Commandbutton 1 so soll er auch die in die entsprechenden Spalten einfügen, bei Befüllung. usw.
Ich wäre euch sehr sehr dankbar wenn ihr mir helfen könntet.
15.03.2020, 15:03 (Dieser Beitrag wurde zuletzt bearbeitet: 15.03.2020, 15:03 von MajorOli.)
Hallo Maria,
im VBA Editor erzeugst du ein neues Ereignis für ComboBox8 namens Change. Darin baust du dir dein Select-Case Statement zusammen so wie du es brauchst.
EDIT: Du musst jede Box pro Statement einfügen und sagen ob Sie angezeigt werden soll oder nicht. Also für Case 1 / Case 2 / Case 3 usw.
Beispiel
Code:
Private Sub ComboBox8_Change()
Select Case ComboBox8.Value Case 1 ComboBox1.Visible = False End Select End Sub
Frage B) habe ich leider nicht ganz verstanden da ich nicht weiß wohin was geschrieben werden soll. Spalten Befüllung gibt es nicht in der Excel.
Ich hoffe ich konnte dir etwas helfen.
Beste Grüße
Folgende(r) 1 Nutzer sagt Danke an MajorOli für diesen Beitrag:1 Nutzer sagt Danke an MajorOli für diesen Beitrag 28 • Maria 6
15.03.2020, 15:41 (Dieser Beitrag wurde zuletzt bearbeitet: 15.03.2020, 15:41 von Maria 6.)
Hallo MajorOli
Vielen Dank für deine schnelle Meldung.
Nach ersten Test ist das genau was ich gesucht habe, noch funktioniert es.
Aber zur Sicherheit hier nochmal den Code den ich erweitert habe. War es so gemeint oder kann man ihn noch kürzer schreiben? Mit der zweiten Frage habe ich natürlich nicht Spaltenweise , sondern jenach Befüllung der jeweiligen Combobox oder Textbox in die jeweilige Spalte geschrieben werden , wie ich in der Tabelle schon geschrieben hatte
15.03.2020, 16:21 (Dieser Beitrag wurde zuletzt bearbeitet: 15.03.2020, 16:21 von marose67.)
Hallo,
bist Du mit Schleifen vertraut? For I=2 to 7 . Next
????? Damit wird dein Code um einiges schlanker, denn Du musst jetzt das selbe noch einmal mit visible=true machen ...
Lade doch mal eine Tabelle hoch Gruß Marcus
Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen. Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Folgende(r) 1 Nutzer sagt Danke an marose67 für diesen Beitrag:1 Nutzer sagt Danke an marose67 für diesen Beitrag 28 • Maria 6
16.03.2020, 13:16 (Dieser Beitrag wurde zuletzt bearbeitet: 16.03.2020, 13:23 von Maria 6.)
Hallo schauan
Dir auch erst mal Danke für deine Antwort. Habe dein Makro mal getestet, leider muss ich sagen es liefert mir nicht das Wunschergebnis so wie ich es mir vorstelle. Bei deinem Makro wird nur die eine Combobox ausgeblendet leider, es sollten wenn eine Auswahl in Combobox 8 getroffen wurde nur eine Combobox und die Textbox dazu zusehen sein. vielleicht mache ich ja noch was falsch weiß aber noch nicht was. Beispiel: Wähle ich die 6 in Combobox 8 aus , so soll nur die Combobox 6 und die Textbox 6 zusehen sein, der Rest der Boxen sollte ausgeblendet sein. Hallo Marcus
Dir auch danke für deine Antwort.
Eine Datei hatte ich schon im Anfangspost mit drin, vielleicht übersehen. Eine Schleife zu programmieren kann ich leider noch nicht, ganz kleine Abänderungen würde ich vielleicht noch hinbekommen. Wie müsste denn die Schleife aussehen für mein Fall?
16.03.2020, 13:55 (Dieser Beitrag wurde zuletzt bearbeitet: 16.03.2020, 13:56 von Kuwer.)
Hallo Maria 6,
Code:
Private Sub ComboBox8_Change() If ComboBox8.Value > 0 Then BlendeCB ComboBox8.Value End Sub
Private Sub BlendeCB(iCB As Integer) Dim iCnt As Long For iCnt = 1 To 7 Controls("ComboBox" & iCnt).Visible = False Next iCnt Controls("ComboBox" & iCB).Visible = True Controls("TextBox" & iCB).Visible = True End Sub
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28 • Maria 6
dann hab ich es genau falsch rum verstanden. iCnt <> iCB liefert True für allen Boxen die ungleich der Eingabe sind, entsprechend sind die dann auch sichtbar. iCnt = iCB würde nur bei der eingegebenen Zahl True liefern und entsprechend wäre dann nur die sichtbar.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • Maria 6
Dir auch danke schön für deine Antwort. Habe dein Makro mal getestet, anfangs war noch ein Fehler(eine Codezeile zu wenig drin) das konnte ich aber ganz schnell selber lösen. Ich bin halt Blond und stehe in Sachen VBA noch ganz in Anfangsschuhen, aber habe wieder was neues gelernt
Hallo schauan Ich gebe dir keine Schuld, habe es vielleicht zu schlecht erklärt halt. Wie sagt man im Alltag Blonde Frau....... Trotzdem danke für deine Erklärung.
Allen Helfern ein ganz liebes Dankeschön für eure Hilfe. Ich versuche mal den Rest selbst zu schaffen, lasse drum noch das Thema offen (ungelöst) da stehen. Falls ich Probleme habe melde ich mich nochmals.