Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
932to936
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
932to936
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Checkbox-abfrage optimieren

Checkbox-abfrage optimieren
14.12.2007 13:52:00
marion
Hallo,
kann mir jemand dabei helfen den folgenden code zu optimieren.
Es ist eine Checkbox-abfrage. Sicher etwas unelegant, aber wie geht es besser?
Checkbox3 - 14 wird abgefragt um den Monat zu ermitteln.
für jede Hilfe bin ich dankbar
Marion

Private Sub CheckBox3_Click()
If CheckBox3 Then
CheckBox4.Value = False
CheckBox5.Value = False
CheckBox6.Value = False
CheckBox7.Value = False
CheckBox8.Value = False
CheckBox9.Value = False
CheckBox10.Value = False
CheckBox11.Value = False
CheckBox12.Value = False
CheckBox13.Value = False
CheckBox14.Value = False
wahlmonat = 1
Range("A1").Select
ActiveCell.FormulaR1C1 = "Jan-" & Cells(2, 1)
Cells(3, 1) = wahlmonat
End If
End Sub



Private Sub CheckBox4_Click()
If CheckBox4 Then
CheckBox3.Value = False
CheckBox5.Value = False
CheckBox6.Value = False
CheckBox7.Value = False
CheckBox8.Value = False
CheckBox9.Value = False
CheckBox10.Value = False
CheckBox11.Value = False
CheckBox12.Value = False
CheckBox13.Value = False
CheckBox14.Value = False
wahlmonat = 2
Range("A1").Select
ActiveCell.FormulaR1C1 = "Feb-" & Cells(2, 1)
Cells(3, 1) = wahlmonat
End If
End Sub



Private Sub CheckBox5_Click()
If CheckBox5 Then
CheckBox3.Value = False
CheckBox4.Value = False
CheckBox6.Value = False
CheckBox7.Value = False
CheckBox8.Value = False
CheckBox9.Value = False
CheckBox10.Value = False
CheckBox11.Value = False
CheckBox12.Value = False
CheckBox13.Value = False
CheckBox14.Value = False
wahlmonat = 3
Range("A1").Select
ActiveCell.FormulaR1C1 = "Mar-" & Cells(2, 1)
Cells(3, 1) = wahlmonat
End If
End Sub



Private Sub CheckBox6_Click()
If CheckBox6 Then
CheckBox3.Value = False
CheckBox4.Value = False
CheckBox5.Value = False
CheckBox7.Value = False
CheckBox8.Value = False
CheckBox9.Value = False
CheckBox10.Value = False
CheckBox11.Value = False
CheckBox12.Value = False
CheckBox13.Value = False
CheckBox14.Value = False
wahlmonat = 4
Range("A1").Select
ActiveCell.FormulaR1C1 = "Apr-" & Cells(2, 1)
Cells(3, 1) = wahlmonat
End If
End Sub



Private Sub CheckBox7_Click()
If CheckBox7 Then
CheckBox3.Value = False
CheckBox4.Value = False
CheckBox5.Value = False
CheckBox6.Value = False
CheckBox8.Value = False
CheckBox9.Value = False
CheckBox10.Value = False
CheckBox11.Value = False
CheckBox12.Value = False
CheckBox13.Value = False
CheckBox14.Value = False
wahlmonat = 5
Range("A1").Select
ActiveCell.FormulaR1C1 = "May-" & Cells(2, 1)
Cells(3, 1) = wahlmonat
End If
End Sub



Private Sub CheckBox8_Click()
If CheckBox8 Then
CheckBox3.Value = False
CheckBox4.Value = False
CheckBox5.Value = False
CheckBox6.Value = False
CheckBox7.Value = False
CheckBox9.Value = False
CheckBox10.Value = False
CheckBox11.Value = False
CheckBox12.Value = False
CheckBox13.Value = False
CheckBox14.Value = False
wahlmonat = 6
Range("A1").Select
ActiveCell.FormulaR1C1 = "Jun-" & Cells(2, 1)
Cells(3, 1) = wahlmonat
End If
End Sub



Private Sub CheckBox9_Click()
If CheckBox9 Then
CheckBox3.Value = False
CheckBox4.Value = False
CheckBox5.Value = False
CheckBox6.Value = False
CheckBox7.Value = False
CheckBox8.Value = False
CheckBox10.Value = False
CheckBox11.Value = False
CheckBox12.Value = False
CheckBox13.Value = False
CheckBox14.Value = False
wahlmonat = 7
Range("A1").Select
ActiveCell.FormulaR1C1 = "Jul-" & Cells(2, 1)
Cells(3, 1) = wahlmonat
End If
End Sub



Private Sub CheckBox10_Click()
If CheckBox10 Then
CheckBox3.Value = False
CheckBox4.Value = False
CheckBox5.Value = False
CheckBox6.Value = False
CheckBox7.Value = False
CheckBox8.Value = False
CheckBox9.Value = False
CheckBox11.Value = False
CheckBox12.Value = False
CheckBox13.Value = False
CheckBox14.Value = False
wahlmonat = 8
Range("A1").Select
ActiveCell.FormulaR1C1 = "Aug-" & Cells(2, 1)
Cells(3, 1) = wahlmonat
End If
End Sub



Private Sub CheckBox11_Click()
If CheckBox11 Then
CheckBox3.Value = False
CheckBox4.Value = False
CheckBox5.Value = False
CheckBox6.Value = False
CheckBox7.Value = False
CheckBox8.Value = False
CheckBox9.Value = False
CheckBox10.Value = False
CheckBox12.Value = False
CheckBox13.Value = False
CheckBox14.Value = False
wahlmonat = 9
Range("A1").Select
ActiveCell.FormulaR1C1 = "Sep-" & Cells(2, 1)
Cells(3, 1) = wahlmonat
End If
End Sub



Private Sub CheckBox12_Click()
If CheckBox12 Then
CheckBox3.Value = False
CheckBox4.Value = False
CheckBox5.Value = False
CheckBox6.Value = False
CheckBox7.Value = False
CheckBox8.Value = False
CheckBox9.Value = False
CheckBox10.Value = False
CheckBox11.Value = False
CheckBox13.Value = False
CheckBox14.Value = False
wahlmonat = 10
Range("A1").Select
ActiveCell.FormulaR1C1 = "Oct-" & Cells(2, 1)
Cells(3, 1) = wahlmonat
End If
End Sub



Private Sub CheckBox13_Click()
If CheckBox13 Then
CheckBox3.Value = False
CheckBox4.Value = False
CheckBox5.Value = False
CheckBox6.Value = False
CheckBox7.Value = False
CheckBox8.Value = False
CheckBox9.Value = False
CheckBox10.Value = False
CheckBox11.Value = False
CheckBox12.Value = False
CheckBox14.Value = False
wahlmonat = 11
Range("A1").Select
ActiveCell.FormulaR1C1 = "Nov-" & Cells(2, 1)
Cells(3, 1) = wahlmonat
End If
End Sub



Private Sub CheckBox14_Click()
If CheckBox14 Then
CheckBox3.Value = False
CheckBox4.Value = False
CheckBox5.Value = False
CheckBox6.Value = False
CheckBox7.Value = False
CheckBox8.Value = False
CheckBox9.Value = False
CheckBox10.Value = False
CheckBox11.Value = False
CheckBox12.Value = False
CheckBox13.Value = False
wahlmonat = 12
Range("A1").Select
ActiveCell.FormulaR1C1 = "Dec-" & Cells(2, 1)
Cells(3, 1) = wahlmonat
End If
End Sub


21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Checkbox-abfrage optimieren
14.12.2007 14:05:20
Tipp
Hallo Marion
nimm Optionbutton anstatt Checkboxes
Grüsse vom Tipp

AW: Checkbox-abfrage optimieren
14.12.2007 14:10:40
marion
OK Tipp,
und wie gehts dann weiter?
Danke
Marion

AW: Checkbox-abfrage optimieren
14.12.2007 14:16:00
Tipp
Hallo Marion
mit den Optionbutton entfällt doch die gesamte Abfrageorgie, da Du ja nur einen Optionbutton aktivieren kannst
Grüsse vom Tipp

AW: Checkbox-abfrage optimieren
14.12.2007 14:39:00
marion
Danke Tipp,
geht schon sehr gut, aber ich muß hier auch 12 Sub`s aufrufen.
Gehts nicht etwas eleganter in einer Schleife?
Hab keine Ahnung wie ich die 12 Optionbuttons in einer Schleife abfragen kann.
Danke
Marion

AW: Checkbox-abfrage optimieren
14.12.2007 14:46:54
Tipp
Hallo Marion
so in etwa:
Code unter deine Tabelle eingeben

Private Sub OptionButton1_Click()
Cells(1, 8) = "Jan"
End Sub



Private Sub OptionButton2_Click()
Cells(1, 8) = "Feb"
End Sub



Private Sub OptionButton3_Click()
Cells(1, 8) = "März"
End Sub


usw.
und dann nur cells(1,8) abfragen und weiterverarbeiten

Anzeige
AW: Checkbox-abfrage optimieren
14.12.2007 14:56:00
Tipp
Hallo Marion
Du kannst alternativ auch die Optionsfelder aus der Formularleiste nehmen, dann brauchst Du gar keine Minimakros (Zuweisung) und frägst einfach dei Zellverknüpfung der Optionsfelder ab und verarbeitest diese weiter.
Grüsse vom Tipp

AW: Checkbox-abfrage optimieren
14.12.2007 15:22:00
marion
Hallo Tipp,
Danke, werde dann doch bei den 12 Sub's bleiben müssen.
Danke, schönen Tag
Marion

AW: Checkbox-abfrage optimieren
14.12.2007 16:03:31
Jan
Hi,
wo befinden sich die Checkboxen, tabelle uder Userform?
mfg Jan

AW: Checkbox-abfrage optimieren
14.12.2007 16:39:00
marion
Hallo Jan,
Checkboxen sind in einer Userform.
Gruß
Marion

AW: Checkbox-abfrage optimieren
14.12.2007 16:44:44
Jan
Hi,
lad mal ein Beispiel hoch, reicht wenn die Userform mit den Checkboxen in der datei ist,
ich bau das dann dort ein, ist zu kompliziert zu erklären.
mfg Jan

Anzeige
AW: Checkbox-abfrage optimieren
14.12.2007 17:45:46
Jan
Hi,
muss auch nochmal nachfragen, warum eigentlich keine Optionbutton?
mfg Jan

AW: Checkbox-abfrage optimieren
14.12.2007 17:51:03
marion
Hi Jan,
ja, mit Optionbutton und 12 Sub's hatte ich mich ja auch schon abgefunden.
Aber wenn es doch eleganter geht als mit 12 Sub's .........
Gruss
Marion

AW: Checkbox-abfrage optimieren
14.12.2007 18:03:00
Chris
Hi Marion,
nimm option Buttons benenne sie mit optJanuar usw. lege um sie einen frame Name: fraMonat
und frage den Monat mit folgender Funktion ab:

Function Monat() As String
Dim ctrOptMonat As Control
For Each ctrOptMonat In fraMonat.Controls
If ctrOptMonat.Value = True Then
Cells(1, 1) = Mid(ctrOptMonat.Name, 4) & "-" & Cells(2, 1)
Exit Function
End If
Next ctrOptMonat
End Function


Die Funktion rufst du dann am Anfang deiner Command Button Prozedur mit Call Monat auf.
Grüße Chris

Anzeige
AW: Checkbox-abfrage optimieren
14.12.2007 18:23:00
marion
Hallo Chris,
soweit verstanden, aber was heist "lege um sie einen frame Name: fraMonat"
Verstehe ich nicht, wie vergebe ich den "frame Name"?
Danke
Marion

AW: Checkbox-abfrage optimieren
14.12.2007 18:37:18
Chris
Hi Marion,
ein frame(=Rahmen) ist ein control wie z.b. die option Buttons auch, ich habe ihn in meiner function
fraMonat genannt.
Du mußt also einen frame auf die userform legen, ihm den Name fraMonat geben (im Eigenschaftenfenster) und in diesen frame deine 12 option Buttons legen und mit optJanuar usw. benennen.
Grüße Chris

AW: Checkbox-abfrage optimieren
14.12.2007 19:13:00
marion
Danke Chris,
klappt schon ganz gut.
Muss noch nen bischen dran rumfeilen, es wird mein "Label1 und Image1" mit ausgelesen und dann gibt es eine Fehlermeldung.
Hab mal Label1 und Image1 aus der Userform gelöscht, dann hat es funtioniert.
Hast Du noch eine Idee?
Danke
Marion

Anzeige
AW: Checkbox-abfrage optimieren
14.12.2007 19:25:23
marion
Hi Chris,
noch etwas,
die Variable "wahlmonat" muss noch den Monatswert bekommen (Januar = 1, Februar = 2 usw.)
Danke für weitere hilfe.
Marion

AW: Checkbox-abfrage optimieren
14.12.2007 21:25:55
Chris
Hi Marion,
lad das Teil nochmal hoch, wahrscheinlich stimmt mit dem frame was nicht.
Schreibst du Wahlmonat nur in die Tabelle oder wird die im Code noch verwendet?
Grüße Chris

AW: Checkbox-abfrage optimieren oT
14.12.2007 23:01:16
marion
Hallo Chris,
besten Dank, habe es jetzt hinbekommen.
Ich habe eine ganz neue Userform erstellt und jetzt klappt es.
Wahlmonat zähle ich in der For Each-schleife hoch.
Vielen Dank Chris, Du hast mir sehr geholfen.
Schönes Wochenende
Marion

Anzeige
AW: Checkbox-abfrage optimieren
14.12.2007 23:03:00
marion
Hallo Jan,
besten Dank für Deine hilfe.
Chris hat mir schon eine Lösung aufgezeichnet.
Nochmals, besten Dank für Deine Mühe.
Schönes Wochenende
Marion

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige