ich habe ein Problem bei der Erstellung einer Tankliste. Ich möchte, dass die UserForm, in welcher ich den Kilometerstand eintrage, diesen mit dem alten Kilometerstand verrechnet. Also folgendes: Ich wähle ein Fahrzeug via ComboBox aus und trage den Kilometerstand ein. Dieser und andere Werte werden dann in eine Excelliste übertragen. Es gibt die Spalte "gefahrene Kilomter" diese soll dann, bei einer neuen Eingabe den letzten Wert des selben Fahrzeug in der Rubrik "Kilometer" suchen und dieser muss minus den neuen Kilometerstand gerechnet werden, dieser steht bis dahin noch in der UserForm in der TextBox_Miles. Ich hoffe das ist verständlich.
Der Code ist schätze ich aussagekräfitger. Der Betroffene Bereich ist unter "Calculate Miles" zu finden.
Private Sub CommandButton_Ok_Click()
Dim Datum As Date
Dim Verbrauch, Betrag, Menge As Double
Dim I, Last, nLast As Integer
Dim Km, KMneu, KMalt As Long
Dim Fahrer, Fahrzeug As String
Dim OptionButton As MSForms.Control
Dim Preis As Currency
Dim rng As Range
Last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row - 1
nLast = Last + 1
'------------------------Connect variables to Data--------------------
'Datum = TextBox_Date
Km = TextBox_Miles
Fahrer = ComboBox_Driver
Fahrzeug = ComboBox_Vehicle
Betrag = TextBox_Total
Preis = TextBox_Price
'------------------------Read Gastype--------------------
For Each OptionButton In Frame_Gas.Controls 'Übernimmt den True-Wert der _
Optionsfelder in die Tabelle'
If OptionButton.Value = True Then
ActiveSheet.Cells(nLast, 6).Value = OptionButton.Caption
End If
Next OptionButton
'------------------------Calculate Miles--------------------
I = 2
For I = 2 To Last
If Cells(I, 2).Value = Fahrzeug Then
KMalt = Cells(I, 4).Value
End If
Next I
KMneu = KMalt - Km
Debug.Print Km, KMneu, KMalt, Last, nLast
'------------------------Calculate Ammount & Waste --------------------
Menge = Betrag / Preis
Verbrauch = (Menge / KMneu) * 100
'------------------------Fill Data in Userform--------------------
ActiveSheet.Cells(nLast, 1).Value = Datum
ActiveSheet.Cells(nLast, 2).Value = Fahrer
ActiveSheet.Cells(nLast, 3).Value = Fahrzeug
ActiveSheet.Cells(nLast, 4).Value = Km
ActiveSheet.Cells(nLast, 5).Value = KMneu
ActiveSheet.Cells(nLast, 7).Value = Preis
ActiveSheet.Cells(nLast, 8).Value = Betrag
ActiveSheet.Cells(nLast, 9).Value = Verbrauch
End Sub