Fragebogen erstellen und auswerten
#11
Hallo,

Zitat:Und @ Käpt´n Blaubär: Ich dachte (in meinem begrenzten Kosmos) das ich für die Auswertung aller zurück kommenden Fragebogen auf jeden Fall eine separate Datei brauche die mir die ausgefüllten Bögen auslesen kann. Wenn dem nicht so ist muss das natürlich keine Anforderung sein.

... es ist doch alles in Ordnung. Meiner Meinung nach hat Fennek das Kind in trockene Tücher gepackt
und es entspricht doch auch Deinen Wünschen. Nur hatte ich die Frage anfangs nur halb verstanden.
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • Leonhard
Top
#12
Hallo,

durch die vielen Anstürze war es wesentlich schwieriger als gedacht.

Die beigefügte Datei ist soweit wie möglich ausgefüllt und die Buttons positioniert, dass in EINEM Test sowohl das Ausfüllen als auch das Auslesen der Einträge funktioniert hat.

Diese xlsx-Datei (ohne das Blatt "Auswertung") kann an die Probanden verteilt werden und mit zufälligen Dateinamen wieder eingesammelt werden.

In der xlsm-Datei Auswertung werden dann die Ergebnisse gesammelt und ausgewertet

Bitte berichte, ob es geklappt hat.

mfg


Angehängte Dateien
.xlsx   Fragebogen Felix (Wiederhergestellt).xlsx (Größe: 63,32 KB / Downloads: 7)
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Leonhard
Top
#13
Guten Abend =)

die xlsx-Datei funktioniert super. Habe auch keine Probleme oder Abstürze beim ausfüllen.
Noch eine Frage zur Auswertung: die xlsm Datei ist eine leere Datei die den unten stehenden Code in einem Modul enthalten muss oder orientiert sich die Auswertung an dem von mir angedachten Muster?

Ich könnte aus dem Code nicht erkennen das ich damit alle xlsx Dateien die im gleichen Ordner liegen auslesen kann oder wie ist das angedacht?


Code:
Sub T_1()
Dim WS As Worksheet: Set WS = ActiveSheet
Dim Shp As Shape
Dim Grp As GroupShapes
Dim Opt As OptionButton

For Each Shp In WS.Shapes
'Debug.Print Shp.Top, Shp.TopLeftCell.Address

   For i = 1 To Shp.GroupItems.Count
       If InStr(1, Shp.GroupItems(i).Name, "Option") > 0 Then
           If Shp.GroupItems(i).ControlFormat.Value = 1 Then _
           Debug.Print Shp.TopLeftCell.Offset(, -1), i - 1
           'Debug.Print i - 1, Shp.TopLeftCell.Address, Shp.GroupItems(i).Name, _
               Shp.GroupItems(i).ControlFormat.Value
           
       End If
   Next i
Next Shp
End Sub


Und nochmals: Danke!!
Top
#14
Moin!
Wenn man in die Spalte rechts neben der Frage den Zahlenwert 1 bis 5 schreibt (sich also das fehleranfällige "Gehampel" mit den gruppierten Option-Buttons schenkt),
ist die Auswertung ein Klacks!

Noch einfacher ist es, eine Umfrage gleich auf Onedrive zu erstellen.
Da ist die Auswertung gleich build in.
(und kann auch "bequem" am Smartphone beantwortet werden, was die Akzeptanz erhöhen dürfte)

   

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  •
Top
#15
Hallo,

anbei ein Code, der alle Buttons auf "xloff", also nicht ausgewählt setzt. Gleichzeitig werden alle Fragen numeriert und die GroupBoxen beschriftet. Dass mach nach der Umfrage die Übertragung weniger fehleranfällig.

Code:
Sub T_1()
Dim WS As Worksheet: Set WS = ActiveSheet
Dim Shp As Shape
Dim Grp As GroupShapes
Dim Opt As OptionButton

For sht = 1 To 2
Set WS = Sheets(sht)
WS.Activate
For Each Shp In WS.Shapes
'Debug.Print Shp.Top, Shp.TopLeftCell.Address
    Q = Q + 1
    Shp.Name = "Q" & Format(Q, "00")
    WS.Shapes.Range(Array(Shp.GroupItems(1).Name)).Select
    Selection.Characters.Text = Shp.Name
    
    For i = 1 To Shp.GroupItems.Count
        
        If InStr(1, Shp.GroupItems(i).Name, "Option") > 0 Then
        Shp.GroupItems(i).ControlFormat.Value = xlOff
            If Shp.GroupItems(i).ControlFormat.Value = 1 Then _
            Debug.Print Shp.TopLeftCell.Offset(, -1), i - 1
            'Debug.Print i - 1, Shp.TopLeftCell.Address, Shp.GroupItems(i).Name, _
                Shp.GroupItems(i).ControlFormat.Value
            
        End If
    Next i
Next Shp
Next sht
End Sub

mfg

PS: Das "Rumgehampele" über alle Fragen und Buttons muss zumindest einmal sein, ob die Antworten direkt in die Auswertungsdatei oder zuerst in eine Nachbarspalte geschrieben werden, ist Geschmackssache.


Angehängte Dateien
.xlsx   Fragebogen Felix (Wiederhergestellt).xlsx (Größe: 64,21 KB / Downloads: 8)
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Leonhard
Top
#16
Hallo Fennek,

nur das ich das auch verstehe. Der Code ist für die Vorbereitung vor dem Versenden gedacht, da er ja alle Buttons auf nicht ausgewählt setzt.
Kann man die Beschriftung noch i-wie verbergen? Das die Fragen über die GroupBoxen nummeriert werden müssen damit sie ausgewertet werden können verstehe ich, optisch ist das leider nicht so schön.

Beste Grüße

Ps.: Wenn das einmal sauber ist, wie viel Aufwand würde dann noch eine xlsm Datei benötigen die in der Lage ist die GroupBoxen auszulesen?
Top
#17
Um die Beschriftung der Group-Boxen wieder zu löschen, lasse den Code nocheinmal mit dieser Änderung durchlaufen:

Code:
WS.Shapes.Range(Array(Shp.GroupItems(1).Name)).Select
    Selection.Characters.Text = ""

Dieses Objekt ist recht gut versteckt.

Der Code wertet auch aus, aber i.M. werden die Ergebnisse ins Debug-Fenster geschrieben. Wenn man anstelle das Auswertungs-Workbook referenziert, passt es. Also eine sehr kleine Änderung.
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Leonhard
Top
#18
Das funktioniert super :05: :17: :17:  und ich verstehe es größtenteils =))))

Würdest du die Auswertungsdatei so aufbauen wie ich eingangs angedacht hatte oder gibt es einen cleveren Weg?

Daaaanke und einen guten Start ins Wochenende
Leo
Top
#19
Blatt 3 als Muster für die Auswertung passt schon. Wichtig ist, dass die Reihenfolge der Fragen gleich ist zum Fragebogen und auch keine Leerspalten existieren. Der Makro schreibt einfach (blind) die nächste Frage des Fragebogens in die nächste Spalte der Auswertung.

Evetuell sollte man den Titel der Frage (Q + Nr der Frage) im Auswertungsbogen ebenfalls einfügen und vom Makro checken lassen. Sonst muss man es einmal "per Augenschein" machen.

Dass die beiden offenen Fragen am Ende stehen, erleichert die Programmierung. Der Makro muss die Likert-Skala und die offenen Fragen getrennt bearbeiten.

Es fehlt noch eine Schleife über alle Dateien (*.xlsx) eines Ordners. Das ist aber ein sehr gut eingeübter Code.
Top
#20
hallo Blush

ich denke ein zusätzliches Makro welches die Reihenfolge in der Auswertungsdatei checkt ist eher nicht notwendig. Das würde ich dann doch einmalig "per Augenschein" prüfen, die extra Programmierung will ich dir/ euch gerne sparen =)

Darf ich denn mal dreist anfragen ob du für die Auswertungsdatei schon was gezaubert hast?

Beste Grüße
Leo
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste