2017-03-21 2 views
0

Also bin ich neu in der Programmierung (2 Wochen). Ich mache eine Datenbox, um einen Gesamtpreis für ein Projekt zu finden. Ich arbeite mit Textfeldern, Ankreuzfeldern und einer Schaltfläche, um die Summe zu finden.Neu bei VBA mit Checkbox-Problemen

Ich gebe die Anzahl der Zitronen und Orangen ein, wenn ich die Taste drücke, berechnet sie, wie viel es kostet, basierend auf den Preisen, die aus dem Blatt gezogen werden.

Jetzt setze ich das Kontrollkästchen, weil es eine festgelegte Menge von eins gibt. Ich möchte den Preis von "Zucker" zum Gesamtpreis hinzufügen, wenn es überprüft wird.

Kann mir jemand helfen, das Kontrollkästchen zum Gesamtpreis hinzuzufügen?

zum Beispiel sieht das Feld wie folgt aus: Dank enter image description here

enter image description here


Neuer Code fast so funktioniert, ich hatte gehofft. Vielen Dank für den Hinweis, ich habe versucht, das Blatt zu referenzieren und es gab mir Fehler. Aber so funktioniert es jetzt.

-Wenn ich Zahlen in die Eingabefelder eingeben und auf Berechnen klicken, erhalte ich die richtige Summe. -Wenn ich die Checkbox ankreuze, wird die Summe addiert, ABER wenn ich "Calc" drücke, wird die Summe berechnet, ohne die Checkbox einzubeziehen. -Wenn ich mehr als ein Kontrollkästchen zum Beispiel drücken: Wählen Sie "Checksugar" dann "checkbox2" die Summe fügt nur den Wert von "Checkbox2". Wenn ich dann erneut "Calc" drücke, ignoriert die Summe die Checkboxen.

Was ich will es tun: Wenn ich mehr als ein Kontrollkästchen, möchte ich die Summen hinzufügen und dann ersetzen einander. Ich möchte auch, dass der Code den Gesamtwert angibt, wenn ich "Calc" drücke, und dann nur die Summe der Eingabefelder.

Was ich denke, ich muss tun: Einige, wie die If-Anweisungen in der "TxtTotal" hinzufügen, aber ich weiß nicht, wie das geht. Oder haben mehrere If-Anweisungen.

Kann jemand helfen?

Private Sub Calculate_Click()

TxtTotal = TxtLemon * Range ("E21"). Value + TxtLime * Range ("E20"). Value _ + TxtOranges * Range ("E19"). Value _ + TxtApple * Range ("E25"). Value _ + TxtCactus * Range ("E24"). Value

End Sub

private Sub Checksugar_Click() Wenn Me.Checksugar.Value = True Then

TxtTotal = TxtLemon * Range("E21").Value + TxtLime * Range("E20").Value _ 

+ TxtOranges * Range ("E19"). Value _ + TxtApple * Range ("E25"). Value _ + TxtCactus * Range ("E24"). Value + Range ("E22"). Value

End If End Sub

private Sub Checkbox2_Click() Wenn Me.Checkbox2.Value = True Then

TxtTotal = TxtLemon * Range ("E21"). Value + TxtLime * Range (“ E20 ").Wert _ + TxtOranges * Bereich ("E19"). Wert _ + TxtApple * Bereich ("E25"). Wert _ + TxtCactus * Bereich ("E24"). Wert + Bereich ("E27"). Wert

End If End Sub

+0

kann jemand helfen? – Noob1

Antwort

0
IF CheckSugarValue.Value = True Then 
     'do stuff 
     TxtTotal.Value = TxtTotal.Value + ThisWorkbook.Sheets("your sheet name).Range("E22").Value 
End if 

Sie haben eine realloy schlechte Gewohnheit nicht Bezug Sachen richtig. Da du neu bist, ist es jetzt am besten zu verstehen, während du gute Gewohnheiten bilden kannst. Das Konvertieren von Steuerobjektinhalten in verwendbare Werte erfolgt oft mit ".Value" und oft werden die meisten Leute diese Werte in einer Variablen speichern. Wenn Sie nicht explizit auf einen Blattnamen verweisen, werden Sie in große Schwierigkeiten geraten. Spätere b/c mehrdeutige Referenzen werden den Compiler veranlassen, auf falsche Blätter zu schauen. Ich habe es mir angewöhnt, es so zu machen wie in meinem Beispiel.

+0

Danke, das "Do-Zeug", ist was ich festgeklebt habe. Wie kann ich das Kontrollkästchen zum Gesamtbetrag hinzufügen, wenn ausgewählt? – Noob1

+0

@ Noob1 siehe meine bearbeitete Antwort –

+0

Ich habe es bearbeitet, macht es Sinn? – Noob1