Registriert seit: 13.04.2014
Version(en): 365
Hallo, hier mal ein Ansatz für eine Checkbox: Code: Option Explicit Public loCheck1 Public loCheck2 Public loCheck3 Public loCheck4 Public loCheck5 Public loCheck6 Private Sub CheckBox1_Click()
Dim loLetzte As Long If CheckBox1 = True Then 'Wenn in Checkbox1 das Häckchen gesetzt ist' loLetzte = Sheets("Kalkulation").Cells(Rows.Count, 1).End(xlUp).Row + 1 Range("A" & loLetzte) = CheckBox1.Caption 'Gehe zur nächsten freien Zelle und schreibe den Namen der Checkbox rein' loCheck1 = loLetzte Else loLetzte = Sheets("Kalkulation").Cells(Rows.Count, 1).End(xlUp).Row Range("A" & loCheck1) = "" 'Lösche den Wert aus ebendieser Zelle' End If End Sub
Da Du Formeln in Deiner Tabelle hast und ich keine Zeit habe, habe ich es dabei belassen, den Eintrag zu löschen, normalerweise würde ich die ganze Zeile löschen und jedesmal neu eintragen.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
Registriert seit: 14.04.2014
Version(en): 2003, 2007
20.03.2015, 17:41
(Dieser Beitrag wurde zuletzt bearbeitet: 20.03.2015, 17:41 von atilla.)
Hallo zusammen, das Ganze ist nicht gut durchdacht und für ungeübte User eher ungeeignet. Wenn ich es richtig versteh, dann sollen ja noch zu den Checkboxen Zahlen eingegeben werden. Diese müssten dann auch mit gelöscht werden. Was soll passieren, wenn eine Checkbox mittendrin abgewählt wird. Dann entsteht in der Tabelle eine Lücke. Man kann das Bisherige aber sehr leicht ohne viel Aufwand unter der Nutzung der Tag Eigenschaft der Checkbox umsetzen. Folgender Code als Beispiel für eine Checkbox kann auf die anderen genauso adaptiert werden: Code: Private Sub CheckBox1_Click() Dim loLetzte As Long If CheckBox1.Tag = "" Then 'Wenn in Checkbox1 das Häckchen gesetzt ist' loLetzte = Sheets("Kalkulation").Cells(Rows.Count, 1).End(xlUp).Row + 1 Range("A" & loLetzte).Value = CheckBox1.Caption 'Gehe zur nächsten freien Zelle und schreibe den Namen der Checkbox rein' Me.CheckBox1.Tag = "A" & loLetzte 'shreibe die Zelladresse in die Tag Eigenschaft der Checkbox Else 'Wenn in Checkbox1 das Häckchen gelöscht wird oder keins vorhanden ist' Range(Me.CheckBox1.Tag).ClearContents 'Lösche den Wert aus ebendieser Zelle' CheckBox1.Tag = "" 'löscht den Eintrag in der Tag Eigenschaft der Checkbox End If End Sub
Gruß Atilla
Registriert seit: 13.04.2014
Version(en): 365
Hallo, ich hätte es so gemacht: Code: Option Explicit
Public loCheck1 Public loCheck2 Public loCheck3 Public loCheck4 Public loCheck5 Public loCheck6 Private Sub CheckBox1_Click()
Dim loLetzte As Long If CheckBox1 = True Then 'Wenn in Checkbox1 das Häckchen gesetzt ist' loLetzte = Sheets("Kalkulation").Cells(Rows.Count, 1).End(xlUp).Row + 1 Range("A" & loLetzte) = CheckBox1.Caption 'Gehe zur nächsten freien Zelle und schreibe den Namen der Checkbox rein' loCheck1 = loLetzte Else loLetzte = Sheets("Kalkulation").Cells(Rows.Count, 1).End(xlUp).Row Rows(loCheck1).EntireRow.Clear 'Lösche den Wert aus ebendieser Zelle' End If End Sub
Private Sub CheckBox2_Click()
Dim loLetzte As Long If CheckBox2 = True Then 'Wenn in Checkbox1 das Häckchen gesetzt ist' loLetzte = Sheets("Kalkulation").Cells(Rows.Count, 1).End(xlUp).Row + 1 Range("A" & loLetzte) = CheckBox2.Caption 'Gehe zur nächsten freien Zelle und schreibe den Namen der Checkbox rein' loCheck2 = loLetzte Else loLetzte = Sheets("Kalkulation").Cells(Rows.Count, 1).End(xlUp).Row Rows(loCheck2).EntireRow.Clear 'Lösche den Wert aus ebendieser Zelle' End If End Sub
Private Sub CheckBox3_Click()
Dim loLetzte As Long If CheckBox3 = True Then 'Wenn in Checkbox1 das Häckchen gesetzt ist' loLetzte = Sheets("Kalkulation").Cells(Rows.Count, 1).End(xlUp).Row + 1 Range("A" & loLetzte) = CheckBox3.Caption 'Gehe zur nächsten freien Zelle und schreibe den Namen der Checkbox rein' loCheck3 = loLetzte Else loLetzte = Sheets("Kalkulation").Cells(Rows.Count, 1).End(xlUp).Row Rows(loCheck3).EntireRow.Clear 'Lösche den Wert aus ebendieser Zelle' End If End Sub
Private Sub CheckBox4_Click() Dim loLetzte As Long If CheckBox4 = True Then 'Wenn in Checkbox1 das Häckchen gesetzt ist' loLetzte = Sheets("Kalkulation").Cells(Rows.Count, 1).End(xlUp).Row + 1 Range("A" & loLetzte) = CheckBox4.Caption 'Gehe zur nächsten freien Zelle und schreibe den Namen der Checkbox rein' loCheck4 = loLetzte Else loLetzte = Sheets("Kalkulation").Cells(Rows.Count, 1).End(xlUp).Row Rows(loCheck4).EntireRow.Clear 'Lösche den Wert aus ebendieser Zelle' End If End Sub
Private Sub CheckBox5_Click() Dim loLetzte As Long If CheckBox5 = True Then 'Wenn in Checkbox1 das Häckchen gesetzt ist' loLetzte = Sheets("Kalkulation").Cells(Rows.Count, 1).End(xlUp).Row + 1 Range("A" & loLetzte) = CheckBox5.Caption 'Gehe zur nächsten freien Zelle und schreibe den Namen der Checkbox rein' loCheck5 = loLetzte Else loLetzte = Sheets("Kalkulation").Cells(Rows.Count, 1).End(xlUp).Row Rows(loCheck5).EntireRow.Clear 'Lösche den Wert aus ebendieser Zelle' End If End Sub
Private Sub ComboBox1_Change() Range("B" & loCheck1) = CDbl(ComboBox1.Text) End Sub
Private Sub ComboBox2_Change() Range("B" & loCheck5) = CDbl(ComboBox2.Text) End Sub
Private Sub ComboBox3_Change() Range("B" & loCheck4) = CDbl(ComboBox3.Text) End Sub
Private Sub ComboBox4_Change() Range("B" & loCheck3) = CDbl(ComboBox4.Text) End Sub
Private Sub ComboBox5_Change() Range("B" & loCheck2) = CDbl(ComboBox5.Text) End Sub
Private Sub CommandButton1_Click() Dim loLetzte As Long loLetzte = Cells(Rows.Count, 1).End(xlUp).Row If loLetzte = 1 Then Exit Sub Range(Cells(2, 1), Cells(loLetzte, 5)).Sort key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo loLetzte = Cells(Rows.Count, 1).End(xlUp).Row Cells(2, 3).FormulaLocal = "=sverweis(A2;Hintergrund!C:D;2;0)" Cells(2, 4).FormulaLocal = "=B2*C2" Range("C2:D2").AutoFill Range("C2:D" & loLetzte) UserForm1.Hide End Sub
Private Sub UserForm_Click()
End Sub
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Edgar,
es gibt da so einige Lösungswege, denke ich.
Aber mich interessiert mehr, was Travis damit machen möchte.
Hier einige Fragen an Travis: 1. wie erkenne später welche Vorrichtung wann und von wem und wofür eingegeben wurde? 1a. wäre eine eindeutige ID Vergabe nicht sinnvoll?
2.Bei 100 Checkboxen ist der ungeübte User eher überfordert. Es würde übersichtlicher mit nur zwei Comboboxen und einer Listbox zu arbeiten.
Beispiel: ertse Combobox enthält alle Vorrichtungen, die zweite wie gehabt die Anzahl. Nach Auswahl bei Beiden werden diese erst in der Listbox gelistet. Wenn alles ausgewählt wurde, dann wird per Schaltfläche der Inhalt der Listbox in die Tabelle übertragen. Falls eine Auswahl rausgenommen werden soll, kann das per Doppelklick in die Listboxzeile aus der Listbox entfernt werden.
Wenn ich nachher mal Zeit habe, stelle ich ein Beispiel ein, wie ich es machen würde. Aber wichtig wäre zu wissen, ob eine ID sein soll um die Daten später genau zuordnen zu können.
Gruß Atilla
Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:1 Nutzer sagt Danke an atilla für diesen Beitrag 28
• Travis5002
Registriert seit: 14.04.2014
Version(en): 2003, 2007
20.03.2015, 23:10
(Dieser Beitrag wurde zuletzt bearbeitet: 20.03.2015, 23:25 von atilla.)
Hallo zusammen, in der Anlage ein Beispiel, wie ich es machen würde:
Kalkulations Userform.xlsm (Größe: 39,54 KB / Downloads: 38)
Gruß Atilla
Registriert seit: 08.01.2015
Version(en): 2013
24.03.2015, 10:42
(Dieser Beitrag wurde zuletzt bearbeitet: 24.03.2015, 10:43 von Travis5002.)
Hey Leute, sorry für die späte Rückmeldung, war übers WE weg. Und vielen Dank für die zahlreichen Rückmeldungen, ist ja Wahnsinn @ Atilla, du hattest mir ein paar Fragen gestellt: 1&1a: wann und von wem ist in erster Linie unwichtig, ich bastel mir eine Funktion, die das Tabellenblatt exportiert auf dem die ausgewählten Vorrichtungen gelistet sind. Eine eindeutige ID Vergabe ist definitiv sinnvoll und auch schon geschehen. 2. Recht hast du, übersichtlicher ist es definitiv. Jedoch könnte es unter Umständen sein, dass der Enduser ein Laie auf dem Gebiet ist und sich mit den Vorrichtungen nicht auskennt. Die 100 Vorrichtungen sind unterteilt in 4 verschiedene Serien, dementsprechend gibt es ca 25 Vorrichtungen pro Userform. Um die Auswahl zu erleichtern, habe ich von jeder Vorrichtung Zeichnungen anfertigen lassen, nach denen der User seine Auswahl treffen kann. Ich glaube das wird schwierig werden über eine Listbox zu realisieren. Ich finde die Idee, dass der User seine Auswahl bestätigen muss, bevor er den Endpreis sieht, aber sehr schön. Ich versuche mal die Checkboxen der einzelnen Vorrichtungen mit einer Listbox zu verknüpfen, ich glaube das wäre die optimale Lösung :28: Bei Fragen melde ich mich. also bis später GlG und vielen Dank Travis
|