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

Userform Fragebogen

Userform Fragebogen
30.09.2022 11:17:03
MMRH
Hallo Allerseits,
ich bin momentan dabei einen Fragebogen in VBA zu entwerfen. Ich arbeite im Team mit Leuten, die keine VBA-Kenntnisse haben. Daher haben wir uns darauf verständigt, dass sich diese Leute um die Fragen, Hilfetexte und Vorgaben zur zwingenden Formatierung kümmern, diese in einer Exceldatei in drei Spalten untereinander schreiben und ich daraus einen Fragebogen mache.
Daher gehe ich so vor, dass beim Initialisieren des Fragebogens die Labels, die die Fragen anzeigen sollen, sich aus der Spalte A speisen (controls("Label" & irow).caption= cells(irow,1).value). Die Antworten, die im Fragebogen in den entsprechenden Textboxen eingegeben werden, werden beim Klick auf Commandbutton1 der jeweiligen userform in Spalte B eingetragen.
Das klappt ganz gut. Eiin großes Problem ist jedoch, dass ich keine gute Lösung für Antworten gefunden habe, die selbst widerum Fragen beeinflussen.
So stelle ich in userform6 eine Frage nach der Anzahl (1 bis max 3) von Irgendwas. Und je nach dem welche Anzahl angegeben wird, sollen in der folgenden Userform 3, 6 oder 9 Eingabefelder entstehen. Eine Lösung sind dynamische Userforms, die entsprechend weitere Textboxen einblenden.
Jedoch ist es wichtig, dass die gegebenen Antworten bei den befragten immer wieder in den Textboxen zu sehen sind. Z.B. wenn die Exceldatei geschlossen und am nächsten Tag wieder geöffnet wird. Textbox1.text = cells(2,2).value funktioniert dort nicht.
Daher habe ich mit einem if statement und drei userforms gearbeitet: userform6_1, userform6_2 und userform6_3. Je nachdem was in userform6 ausgewählt wird, erscheint die entsprechende weitere userform.
1. Hat jemand hierfür eine geschicktere Lösung?
Falls es tatsächlich keine geschicktere Lösung gibt bzw. es nur eine Lösung gibt, die mein VBA-Kenntnisgrad übersteigt, stellt sich ein weiteres Problem.
Ich möchte in der abschließenden userform prüfen, ob alle Fragen beantwortet wurden. Daher habe ich in jeder vorangehenden userform festgelegt, dass wenn die Antworten gegeben wurden (textbox nullstring) der commandbutton = vbcyan werden soll. in der abschließenden userform wird dann geprüft, ob zu jeder vorangehenden userform der commandbutton = vbcyan ist und erst dann wird der Abschluss gewährt.
Dieses If Statement bekomme ich aber nur für die userforms1-6 hin. Bei den Verzweigungen 6_1, 6_2 und 6_3, von denen ja immer nur eine zutreffend sein wird, scheitere ich.
2. Wie kann man in einem if statement also für 1-6 "and" prüfen und abschließend für 6_1, 6_2 und 6_3 nach "or" prüfen? Oder gibt es insgesamt eine bessere Lösung?
Dank im Voraus.

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform Fragebogen
30.09.2022 11:27:43
ralf_b
du könntest weitere Spalten hinzufügen um dir damit einen Fragestatus oder Zwischenergebnis oder vorhergende Pflichtergebnisse zu setzen/merken.
statt if gibt es noch select case.
alternaitv wären da 13,7 Millionen Antworten auf "excel umfrage selbst erstellen" bei der großen Suchmaschine.
Ich bin sicher das dort diese Probleme auch schon gelöst wurden.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige