Folgendes Problem:
Ich habe 5 Artikel mit einem festen Startpreis.
Ich möchte 5 Schaltflächen dazu machen, für jeden Artikel.
Wenn man auf eine Schaltfläche klickt, soll der Preis des Artikels um 5 ct steigen, gleichzeitig die Preise der anderen um 4/5 ct fallen, usw.
du muss die entsprechenden Formeln im Visual Basic Code zum entsprechenden Button eintragen.
Lösung 1:
Private Sub CommandButton1\_Click()
'Button für Preis 1
'Preise stehen in den Zellen A2 bis E2
PreisPlus = 0.05 ' 5 ct
PreisMinus = 0.008 ' 4/5 ct
Range("A2").Value = Range("A2").Value + PreisPlus 'Preis 1
Range("B2").Value = Range("B2").Value - PreisMinus 'Preis 2
Range("C2").Value = Range("C2").Value - PreisMinus 'Preis 3
Range("D2").Value = Range("D2").Value - PreisMinus 'Preis 4
Range("E2").Value = Range("E2").Value - PreisMinus 'Preis 5
End Sub
Für die Buttons zu den anderen 5 Preisen muss du die Formeln entsprechend anpassen
Lösung 2 (aus meiner Sicht die etwas elegantere):
Private Sub CommandButton1\_Click()
'Button für Preis 1
PreisNr = 1
PreisPlus = 0.05 ' 5 ct
PreisMinus = 0.008 ' 4/5 ct
Zaehler = 0
For Each Preis In Range("Preise")
' Preise ist der Bereich (z.B. A2:E2) in dem die 5 Preise eingetragen sind
Zaehler = Zaehler + 1
Select Case Zaehler
Case Is = PreisNr
Preis.Value = Preis.Value + PreisPlus
Case Else
Preis.Value = Preis.Value - PreisMinus
End Select
Next Preis
End Sub
Für die Buttons der anderen 4 Preise muss du nur in der 3. Zeile für die PreisNr die 1 durch 2, 3, 4 bzw. 5 ersetzen.
Gruß
Franz
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
habe meinen Lösungsvorschlag 2 nochmals verfeinert.
Die eigentliche Berechnung der jeweils neuen Preise wird jetzt in separaten SUB-Routine durchgeführt. Dadurch wird die Befehlsfolge für die einzelnen Buttons stark verkürzt.
Private Sub CommandButton1\_Click()
'Button für Preis 1
Preise 1, 0.05, 0.008
End Sub
Private Sub CommandButton2\_Click()
'Button für Preis 2
Preise 2, 0.05, 0.008
End Sub
Private Sub CommandButton3\_Click()
'Button für Preis 3
Preise 3, 0.05, 0.008
End Sub
Private Sub CommandButton4\_Click()
'Button für Preis 4
Preise 4, 0.05, 0.008
End Sub
Private Sub CommandButton5\_Click()
'Button für Preis 5
Preise 5, 0.05, 0.008
End Sub
Sub Preise(PreisNr As Integer, PreisPlus As Double, PreisMinus As Double)
'Sub-Routine zur Berechnung der neuen Preise
Zaehler = 0
For Each Preis In Range("Preise")
' Preise ist der Bereich (z.B. A2:E2) in dem die 5 Preise eingetragen sind
Zaehler = Zaehler + 1
Select Case Zaehler
Case Is = PreisNr
Preis.Value = Preis.Value + PreisPlus
Case Else
Preis.Value = Preis.Value - PreisMinus
End Select
Next Preis
End Sub
Gruß
Franz
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
die Ausgangswert 1 bis 5 kannst mit folgendem Code wiederherstellen:
Private Sub CommandButton6\_Click()
'Button für Ausgangswerte wieder herstellen
'Preise stehen in den Zellen A2 bis E2
Range("A2").Value = 1 'Preis 1
Range("B2").Value = 2 'Preis 2
Range("C2").Value = 3 'Preis 3
Range("D2").Value = 4 'Preis 4
Range("E2").Value = 5 'Preis 5
End Sub
oder
Private Sub CommandButton6\_Click()
'Button für Ausgangswerte wieder herstellen
' Preise ist der Bereich (z.B. A2:E2) in dem die 5 Preise eingetragen sind
Zaehler = 0
For Each Preis In Range("Preise")
Zaehler = Zaehler + 1
Preis.Value = Zaehler
Next Preis
End Sub
Viel Erfolg beim Ausprobieren
Franz
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]