12.02.2016, 13:09
Seiten: 1 2
12.02.2016, 13:21
Hi,
diesen Teil
kannst du so verkürzen:
diesen Teil
Zitat:intErsteLeereZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
ActiveSheet.Cells(intErsteLeereZeile, 1).Value = Me.txtDatum.Value
ActiveSheet.Cells(intErsteLeereZeile, 2).Value = Me.txtbenzin.Value
ActiveSheet.Cells(intErsteLeereZeile, 3).Value = CCur(Me.txtPreis.Value)
ActiveSheet.Cells(intErsteLeereZeile, 4).Value = CCur(Me.txtKilometer.Value)
ActiveSheet.Cells(intErsteLeereZeile, 5).Value = Me.txtbenzin.Value / CCur(Me.txtKilometer.Value) * 100
ActiveSheet.Cells(intErsteLeereZeile, 6).Value = CCur(Me.txtPreis.Value) / Me.txtbenzin.Value * Me.txtbenzin.Value / CCur(Me.txtKilometer.Value) * 100 / 100
ActiveSheet.Cells(intErsteLeereZeile, 7).Value = CCur(Me.txtPreis.Value) / Me.txtbenzin.Value
ActiveSheet.Cells(intErsteLeereZeile, 8).Value = Me.txtbenzin.Value / CCur(Me.txtKilometer.Value) * 100 / 100
kannst du so verkürzen:
Zitat:intErsteLeereZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
With ActiveSheet
.Cells(intErsteLeereZeile, 1).Value = Me.txtDatum.Value
.Cells(intErsteLeereZeile, 2).Value = Me.txtbenzin.Value
.Cells(intErsteLeereZeile, 3).Value = CCur(Me.txtPreis.Value)
.Cells(intErsteLeereZeile, 4).Value = CCur(Me.txtKilometer.Value)
.Cells(intErsteLeereZeile, 5).Value = Me.txtbenzin.Value / CCur(Me.txtKilometer.Value) * 100
.Cells(intErsteLeereZeile, 6).Value = CCur(Me.txtPreis.Value) / Me.txtbenzin.Value * Me.txtbenzin.Value / CCur(Me.txtKilometer.Value) * 100 / 100
.Cells(intErsteLeereZeile, 7).Value = CCur(Me.txtPreis.Value) / Me.txtbenzin.Value
.Cells(intErsteLeereZeile, 8).Value = Me.txtbenzin.Value / CCur(Me.txtKilometer.Value) * 100 / 100
End With
12.02.2016, 13:35
Hi Günter,
evtl. das "intErsteLeereZeile" auch noch in die With einschließen.
Und "Option Explicit" am Anfang jedes Moduls (Tabellen oder Formulare oder allgemeines Modul) einfügen
evtl. das "intErsteLeereZeile" auch noch in die With einschließen.
Code:
With ActiveSheet
intErsteLeereZeile = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(intErsteLeereZeile, 1).Value = Me.txtDatum.Value
...
End With
Und "Option Explicit" am Anfang jedes Moduls (Tabellen oder Formulare oder allgemeines Modul) einfügen
12.02.2016, 13:40
Hi,
was mir noch aufgefallen ist:
du lässt teilweise deine Zahlen als Text schreiben.
[
Bild bitte so als Datei hochladen: Klick mich!
]
Damit kannst du nicht weiterrechnen (z.B. Gesamtsummen bilden)
was mir noch aufgefallen ist:
du lässt teilweise deine Zahlen als Text schreiben.
[
Bild bitte so als Datei hochladen: Klick mich!
]
Damit kannst du nicht weiterrechnen (z.B. Gesamtsummen bilden)
12.02.2016, 13:42
Hi Ralf!
Kann man machen, aber auch anders: :21:
Spart Bildschirmtinte, ist aber nicht unbedingt Ernst gemeint. :19:
Gruß Ralf
Zitat:evtl. das "intErsteLeereZeile" auch noch in die With einschließen
Kann man machen, aber auch anders: :21:
Code:
With ActiveSheet.Rows(intErsteLeereZeile)
.Cells(1) = txtDatum
.Cells(2) = txtbenzin
'...
End With
Spart Bildschirmtinte, ist aber nicht unbedingt Ernst gemeint. :19:
Gruß Ralf
12.02.2016, 13:48
Hi Ralf,
aber das gefällt mir!
Außerdem: gefahrene Kilometer sind keine Währung!
Also so:
(12.02.2016, 13:42)RPP63 schrieb: [ -> ]Spart Bildschirmtinte, ist aber nicht unbedingt Ernst gemeint. :19:
aber das gefällt mir!
Außerdem: gefahrene Kilometer sind keine Währung!
Also so:
Private Sub cmdEingabe_Click() 'fügt angaben ins tabellenblatt ein Dim intErsteLeereZeile As Long intErsteLeereZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1 With ActiveSheet.Rows(intErsteLeereZeile) .Cells(1) = txtDatum .Cells(2) = txtbenzin * 1 .Cells(3) = CCur(txtPreis) .Cells(4) = txtKilometer * 1 .Cells(5) = txtbenzin / CCur(txtKilometer) * 100 .Cells(6) = CCur(txtPreis) / txtbenzin * txtbenzin / CCur(txtKilometer) * 100 / 100 .Cells(7) = CCur(txtPreis) / txtbenzin * 1 .Cells(8) = txtbenzin / CCur(txtKilometer) * 100 / 100 End With End Sub
12.02.2016, 13:53
Danke erstmal für die Hinweise,
das mit den als Text gespeichrten Zahlen macht natürlich Sinn...
werde es natürlich ändern
LG Micha
das mit den als Text gespeichrten Zahlen macht natürlich Sinn...
werde es natürlich ändern
LG Micha
12.02.2016, 13:55
Und an den TE:
Dies solltest Du Dir gar nicht erst angewöhnen.
Ich stelle später mal einen Code ein, wie ich ihn schreiben würde.
Gruß Ralf
- Du referenzierst auf das Userform mittels Me. Das ist i.O., aber überflüssig.
- Du schließt mit Unload frmbenzin, hier würde jetzt Me reichen Unload Me
- Du benutzt den default .Value, i.O. aber ebenfalls überflüssig.
- Du versuchst, bei der Übergabe den Text der txtBoxes mittels CCur() in ein Währungsformat umzuwandeln. Prinzipiell gut, bloß was machst Du, wenn mal kein umwandelbarer Text drin steht? Viel besser ist es, eine Prüfung ins jeweilige txtBox_Exit zu schreiben, ansonsten schmiert Dir Dein Code ab.
- Deine Division könnte zu einem DIV/0 führen, dies ist nicht sauber.
Dies solltest Du Dir gar nicht erst angewöhnen.
Ich stelle später mal einen Code ein, wie ich ihn schreiben würde.
Gruß Ralf
12.02.2016, 14:27
Zwischenstand, während ich schreibe:
Statt:
Bis später,
Ralf
Statt:
ActiveSheet.Cells(intErsteLeereZeile, 5).Value = Me.txtbenzin.Value / CCur(Me.txtKilometer.Value) * 100 ActiveSheet.Cells(intErsteLeereZeile, 6).Value = CCur(Me.txtPreis.Value) / Me.txtbenzin.Value * Me.txtbenzin.Value / CCur(Me.txtKilometer.Value) * 100 / 100geht durchaus auch:
.Cells(5) = txtbenzin / txtKilometer * 100 .Cells(6) = .Cells(3) / .Cells(5):19:
Bis später,
Ralf
12.02.2016, 14:32
Hallo,
und was ist das für eine Rechnung:
in Zahlen: 1,169*10*10/200*10/10 =1,69 *10^2 / 200 * 1 = 0,845
wieso Kilometer in Währung umwandeln?
und was ist das für eine Rechnung:
Code:
CCur(Me.txtPreis.Value) / Me.txtbenzin.Value * Me.txtbenzin.Value / CCur(Me.txtKilometer.Value) * 100 / 100
in Zahlen: 1,169*10*10/200*10/10 =1,69 *10^2 / 200 * 1 = 0,845
wieso Kilometer in Währung umwandeln?
Seiten: 1 2