Anzeige
Archiv - Navigation
1552to1556
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

Reihenfolge unabhängig von Checkboxen

Reihenfolge unabhängig von Checkboxen
26.04.2017 17:07:46
Checkboxen
Hallo zusammen,
ich habe ein Problem, welches ich einfach nicht ohne Hilfe lösen kann. Ich habe eine Userfom erstellt, mit deren Hilfe Analysen mittels Checkboxen ausgewählt werden können. Falls es neue Analysen gibt, wird die Userform natürlich durch zusätzliche Checkboxen erweitert. Bei dem Code stört mich total, dass die Analysen der Reihenfolge nach in dem Auftragsformular eingefügt werden.
Ich erläutere mein Problem an einem Beispiel:
Ich wähle in der Userform folgendes aus:
- Dicke (Checkbox1)--> wird in Zelle B 12 eingetragen
- Reibung (Checkbox3)--> wird in Zelle B 13 eingetragen
Wenn mir später auffällt, dass ich doch noch gerne das Flächengewicht hätte, ist dieser Code nicht ideal dafür.
Checkbox 2 ist das Flächengewicht und wird deswegen in B13 eingetragen und die Reibung rutscht in Zelle B14.
Also so:
B12 --> Dicke (Checkbox1)
B13 --> Flächengewicht (Checkbox2)
B14 --> Reibung (Checkbox3)
Ich hätte es gerne in der Reihenfolge, wie ich die Analysen ausgewählt habe. Also unabhängig von der Nummerierung der Checkboxen:
B12 --> Dicke (Checkbox1)
B13 --> Reibung (Checkbox3)
B14 --> Flächengewicht (Checkbox2)
Den folgenden Code habe ich mit Hilfe von Foren erstellt bekommen. Wenn ich ehrlich bin, verstehe ich den Code auch nicht wirklich, aber für mich war es ausreichend. Jetzt werden mehrere Personen mein Auftragsformular verwenden und dann sollte das geändert werden. Private Sub CommandButton2_Click() ActiveSheet.Unprotect Password:="xxx" Dim lR As Long, lC As Long Dim ctrl As Object lR = 12 lC = 2 For Each ctrl In Me.Controls If Left(ctrl.Name, 8) = "CheckBox" Then If ctrl.Value Then ActiveSheet.Cells(lR, lC) = ctrl.Caption lR = lR + 1 If lR > 28 Then lR = 12: lC = lC + 2 End If End If Next ctrl ActiveSheet.Protect Password:="xxx", DrawingObjects:=True, Contents:=True, Scenarios:=True, _ _ _ AllowFormattingCells:=True, AllowFormattingColumns:=True, _ AllowFormattingRows:=True Unload Me End Sub
Ich bedanke mich jetzt schon mal für das Lesen meines Beitrages!
Liebe Grüße und einen schönen Tag.
SA

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
nimm OptionButton ... Bsp anbei
26.04.2017 18:13:31
Matthias
Hallo
Als Ansatz
OptionButton aktivieren, dann mit CommanButton2 übertragen
Dann nächsten OptionButton aktivieren und wieder übertragen
In der Reihenfolge wie Du es haben willst.
UserForm über das Kreuz schließen.
Tabelle1

 BC
11EinträgeBezeichnung
12OptionButton1Dicke
13OptionButton3Reibung
14OptionButton2Flächengewicht


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
https://www.herber.de/bbs/user/113133.xlsm
Die Bezeichnung steht in der Tag-Eigenschaft der Objekte
Gruß Matthias
Anzeige
AW: Reihenfolge unabhängig von Checkboxen
26.04.2017 20:14:31
Checkboxen
Hallo! Hatte nicht gesehen, dass du im anderen Forum noch was geschrieben hast. Also die Idee war, dass du nicht mit einem extra Button die Werte überträgst, sondern schon direkt beim Anklicken. Hier mal der Code dazu. Den bei der Userform reinkopieren. Wenn du nun auf eine Checkbox klickst, wird die Prozedur am Ende aufgerufen. Diese trägt dann in der Liste gleich den Namen der Box ein. So wird gleich beim Anklicken die Reihenfolge gesichert. Wenn du den Haken rausnimmst, wird der Eintrag auch wieder gelöscht. Das geschieht, indem die Zelle gelöscht und der Rest nach oben gezogen wird. Bin mal davon ausgegangen, dass daruner nichts weiter steht. Wenn doch was drunter steht, dann kann man das auch noch ändern (ging so am schnellsten). VG

Private Sub CheckBox1_Change()
Call eintragen_entfernen(Me.CheckBox1.Caption)
End Sub
Private Sub CheckBox2_Change()
Call eintragen_entfernen(Me.CheckBox2.Caption)
End Sub
Private Sub CheckBox3_Change()
Call eintragen_entfernen(Me.CheckBox3.Caption)
End Sub
Sub eintragen_entfernen(boxname As String)
ActiveSheet.Unprotect Password:="xxx"
Dim lR As Long, lC As Long, li As Long
Dim ctrl As Object
lR = 11
lC = 2
For li = 1 To 3
If ActiveSheet.Cells(lR + li, lC) = "" Then
ActiveSheet.Cells(lR + li, lC) = boxname
Exit For
Else
If ActiveSheet.Cells(lR + li, lC) = boxname Then
ActiveSheet.Cells(lR + li, lC).Delete Shift:=xlUp
Exit For
End If
End If
Next li
ActiveSheet.Protect Password:="xxx", DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True
End Sub

Anzeige
AW: Reihenfolge unabhängig von Checkboxen
27.04.2017 08:45:45
Checkboxen
Hallo,
vielen lieben Dank für deine Hilfe, allerdings funktioniert es noch nicht so, wie es sein sollte. Ich habe einfach ein Word-Dokument hinzugefügt, die mein Problem veranschaulichen soll.
https://www.herber.de/bbs/user/113145.doc
Liebe Grüße
Sa
AW: Reihenfolge unabhängig von Checkboxen
27.04.2017 21:29:09
Checkboxen
Hallo! Dann probiere es mal so. Damit werden die Zellen nicht mehr nach oben gezogen sonder nur der Inhalt geleert und die Werte nach oben kopiert. Damit sollten die Zellen die Formatierung nicht verlieren und die Formel sollte auch noch passen. (alles im konjunktiv, da ich es nicht an der Originaldatei testen konnte). Da du mehr als die 3 Checkboxen hast, einfach im Code die lmax an die Anzahl anpassen. Dazu aber zu jeder Box den Aufruf beim _Change eintragen. Unten jetzt am Beispiel für 6 Boxen. VG

Call eintragen_entfernen(Me.CheckBox2.Caption)
End Sub
Private Sub CheckBox3_Change()
Call eintragen_entfernen(Me.CheckBox3.Caption)
End Sub
Private Sub CheckBox4_Change()
Call eintragen_entfernen(Me.CheckBox4.Caption)
End Sub
Private Sub CheckBox5_Change()
Call eintragen_entfernen(Me.CheckBox5.Caption)
End Sub
Private Sub CheckBox6_Change()
Call eintragen_entfernen(Me.CheckBox6.Caption)
End Sub
Sub eintragen_entfernen(boxname As String)
ActiveSheet.Unprotect Password:="xxx"
Dim lR As Long, lC As Long, li As Long, lmax As Long
Dim temp
Dim ctrl As Object
lR = 11
lC = 2
lmax = 6        'anzahl der checkboxen anpassen
For li = 1 To lmax
'eintragen
If ActiveSheet.Cells(lR + li, lC) = "" Then
ActiveSheet.Cells(lR + li, lC) = boxname
Exit For
Else
'löschen
If ActiveSheet.Cells(lR + li, lC) = boxname Then
If li = lmax Then
ActiveSheet.Cells(lR + li, lC).Resize(1, 2).ClearContents
Else
temp = ActiveSheet.Cells(lR + li + 1, lC).Resize(lmax - li, 2)
ActiveSheet.Cells(lR + li, lC).Resize(lmax - li + 1, 2).ClearContents
ActiveSheet.Cells(lR + li, lC).Resize(lmax - li, 2) = temp
End If
'ActiveSheet.Cells(lR + li, lC).Resize(1, 2).Delete Shift:=xlUp
Exit For
End If
End If
Next li
ActiveSheet.Protect Password:="xxx", DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True
End Sub

Anzeige
AW: Reihenfolge unabhängig von Checkboxen
28.04.2017 14:15:07
Checkboxen
Hallo,
ich habe ganz viel ausprobiert, aber irgendwie bekomme ich es nicht hin.
Die ausgewählten Analysen werden einfach weiter in die Spalte B eingetragen, obwohl das Auftragsformular zu Ende ist und die ausgewählten Analysen in der Spalte D weiter aufgeführt werden sollen.
Ich habe einfach mal eine "zensierte" Datei hochgeladen. Vielleicht klappt es dann besser.
https://www.herber.de/bbs/user/113178.xls
Mit deinem vorgeschlagenen Code habe ich etwas experimentiert, deswegen ist er öfters zu sehen.
Liebe Grüße
Sa
Anzeige
Danke fürs ignorieren ... owT
28.04.2017 22:17:14
Matthias
AW: Reihenfolge unabhängig von Checkboxen
29.04.2017 11:37:06
Checkboxen
Moin! Also habe mal probiert. Er trägt die ausgewähltn Boxen doch beim anklicken ein und löscht sie auch wieder, wenn der Haken rausgenommen wird. Kannst du nochmal erklären, wie der genaue Ablauf sein soll und was wo eingetragen werden soll. Deinem Post entnehme ich, das max. bis Zeile 28 ausgefüllt werden soll. WIe soll es weiter gehen, wenn mehr Felder ausgewählt werden? BItte mal genau beschreiben, was nicht passt. Die Reihenfolge vom Anklicken berücksichtigt er ja. VG

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige