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

Optionsfelder im Frame auswerten/ Wahr ausgeben

Optionsfelder im Frame auswerten/ Wahr ausgeben
09.01.2018 21:31:13
Ha-Pe
Guten Abend Excelfreunde
Habe mal wieder eine Aufgabe, die ich nicht allein lösen kann.
Ich habe eine Userform gebastelt. In dieser sind 24 Frames mit jeweils 3 Optionsfeldern darin sowie weitere Befehlsschaltflächen, Beschriftungsfeldern und Textfeld.
Meine Tabelle soll eine Abfrage des Arbeitsaufwandes/Stresslevels werden.
Die 24 Frames stellen die 24 Stunden des Tages dar. Die jeweils 3 Optionsfelder des Frames sind die Wertung des stundlichen Tagesaufwandes (H=hoch, M=Mittel, L=Leicht).
Bei meiner Suche im Internet bin ich bei https://www.herber.de/xldialoge/uf_opt03.html auf einen Code gestoßen, der meiner Aufgabe mit der Auswertung der Optionsbuttons entspricht und immer in die letzte freie Zeile schreibt.
Um diesen Code für meine Tabelle anzupassen brauche ich Hilfe, da ich mich in VBA nicht auskenne.
zur Erklärung nehme ich diesen Code um die gewünschten Veränderungen zu beschreiben.
1. wie oder was kann/muss verändert werden, dass nicht wahr/falsch angezeigt wird sondern z.Bsp. A,B,C... oder 1,2,3...? Z.Bsp. Frame1 Button L=1, Button M=2 Button H=3, Frame2 Button L=1, Button M=2, Button H=3 usw.
2. wie oder was kann/muss verändert werden, dass nur das "wahr" Ergebnis eines Frame in der/einer Zelle eingetragen wird?
3. wie oder was muss man verändern, um die Ergebnisse der Frames erst ab Spalte "E" ff. eingetragen werden (z. Bsp. Wahrergebnis Frame1 Spalte E, Wahrergebnis Frame2 Spalte F usw.)? oder erübrigt sich das, da ja schon Werte in die Spalten A-D eingetragen werden?
Hoffe das ich es einigermaßen verständlich erklären konnte.
Testtabelle beigefügt
https://www.herber.de/bbs/user/118826.xlsm
Freundlicher Gruß
Ha-Pe

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Code
10.01.2018 10:26:01
Phi
Hallo Herr Müller,
anbei ein VBA-Code, der jeweils "L", "M" oder "H" in die entsprechende Spalte einträgt:

For i = 0 To Me.Controls.Count - 1
Select Case Left(Me.Controls(i).Name, 5)
Case Is = "Optio"
'Debug.Print Me.Controls.Item(i).Name, Me.Controls.Item(i).Value
Case Is = "Frame"
Set Fra = Me.Controls(i)
Debug.Print Me.Controls(i).Name, Fra.Controls(0).Value, Fra.Controls(1).Value, Fra. _
Controls(2).Value
If Fra.Controls(0).Value Then Cells(loLetzte, 5 + sp) = "L"
If Fra.Controls(1).Value Then Cells(loLetzte, 5 + sp) = "M"
If Fra.Controls(2).Value Then Cells(loLetzte, 5 + sp) = "H"
sp = sp + 1
Case Else
'Debug.Print Me.Controls(i).Name
End Select
Next i
Es ist möglich die Buttons auszulesen, aber dann muss die Systematik der Namen immer durchgehalten werden. Deshalb hier der etwas sicherere Weg mit den Frames.
mfg
(es wa komplizierter als gedacht)
Anzeige
AW: VBA - Code
10.01.2018 11:11:50
Ha-Pe
Hallo Phi
Danke für die Mühe. Werde es ausprobieren und hoffe es an der richtigen Stelle einzubauen.
Ich Berichte nach, ob ichs hinbekommen habe.
Gruß Ha-Pe
AW: etwas schlanker
10.01.2018 11:27:14
Phi
dim Ctl as control

For Each Ctl In Me.Controls
If TypeName(Ctl) = "Frame" Then
Set Fra = Ctl
W = (Fra.Controls(0).Value * 1 + Fra.Controls(1).Value * 2 + Fra.Controls(2).Value * 3)  _
* -1
Cells(loLetzte, 5 + sp) = Choose(W, "L", "M", "H")
sp = sp + 1
End If
Next Ctl

AW: etwas schlanker
10.01.2018 13:28:23
Ha-Pe
Hallo Phi
Dankeschööööön, beide Codes funktionieren.
Wünsche Dir noch eine schöne Zeit, nochmals vielen vielen Dank.
Gruß Ha-Pe
Anzeige
AW: Optionsfelder im Frame auswerten/ Wahr ausgeben
10.01.2018 11:05:26
Ha-Pe
Guten Morgen
Juhu!! Eine Lösung für meine 1. Frage habe ich schon mal gefunden.
Hier habe ich die Funktion/Eigenschaft "OptionButton.Caption" gelesen und probiert, und damit diese Frage schon mal gelöst. Die Optionfelder heißen ja schon L,M und H. Die Lösung kann so einfach sein.
Nun bräuchte ich noch erklärende Hilfe bei den Fragen zu 2. und 3.
Gruß Ha-Pe
AW: Frage 2 und 3
10.01.2018 11:31:11
Phi
ein Frame kann NICHT wahr oder falsch sein, nur eines der Controls im Frame
AW: frame angeklickt
10.01.2018 11:34:39
Phi

with Frame.controls
if .item(0) + .item(1) + .item(2) = 0 then msgbox "nichts ausgewählt"
end with
ungetestet
Anzeige
AW: etwas zum knabbern
10.01.2018 13:58:51
Phi

For Each Ctl In Me.Controls
If TypeName(Ctl) = "OptionButton" Then
If Ctl.Value Then
N = Val(Replace(Ctl.Name, "OptionButton", "")) - 1
Cells(loLetzte, 5 + N \ 3) = Ctl.Caption
End If
End If
Next Ctl
Die Buttons wurden sehr sorgfältig angelegt, damit geht es auch so.
AW: etwas zum knabbern
10.01.2018 15:05:02
Ha-Pe
Hi Phi
Auch der dritte Code funktioniert super!
Bist ein Super Helfer!
Muss mich nun entscheiden welchen von den Codes ich einsetzte. :-)
ich kann nur weitergeben, dass ich hier in diesem Forum gut aufgehoben bin.
Vielen Dank an Dich und natürlich auch an die weiteren Helfer die dieses Forum so gut machen
mit besten Grüßen
Ha-Pe
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige