12.02.2016, 14:09
Hallo,
hab mich mal an ein kleines Makro getraut, gibt es hier noch etwas zu verbessern?
hab mich mal an ein kleines Makro getraut, gibt es hier noch etwas zu verbessern?
Verbesserunsvorschläge
|
12.02.2016, 14:09
Hallo,
hab mich mal an ein kleines Makro getraut, gibt es hier noch etwas zu verbessern?
12.02.2016, 14:21
(Dieser Beitrag wurde zuletzt bearbeitet: 12.02.2016, 14:34 von WillWissen.)
Hi,
diesen Teil Zitat:intErsteLeereZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1 kannst du so verkürzen: Zitat:intErsteLeereZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Hi Günter,
evtl. das "intErsteLeereZeile" auch noch in die With einschließen. Code: With ActiveSheet Und "Option Explicit" am Anfang jedes Moduls (Tabellen oder Formulare oder allgemeines Modul) einfügen
12.02.2016, 14: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)
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
12.02.2016, 14:42
Hi Ralf!
Zitat:evtl. das "intErsteLeereZeile" auch noch in die With einschließen Kann man machen, aber auch anders: :21: Code: With ActiveSheet.Rows(intErsteLeereZeile) Spart Bildschirmtinte, ist aber nicht unbedingt Ernst gemeint. :19: Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Hi Ralf,
(12.02.2016, 14: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, 14: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
12.02.2016, 14: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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Zwischenstand, während ich schreibe:
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
12.02.2016, 15:32
Hallo,
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?
Gruß
Edgar Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen. |
|