ich bin momentan dabei ein eigenständiges Reisekostenabrechnungstool zu entwerfen, um auch einmal eigenständig ein bisschen VBA-Kenntnisse mir anzueignen.
Leider hat es bei mir an einer Stelle gewaltig, alleine komme ich nicht weiter und im Netz finde ich auch nicht wirklich etwas brauchbares.
Vorab mein gewünschtes Ziel mit der Makro:
Mein Abrechnungstool besteht aus 2 Worksheets ("Input screen" und "Overview").
In den Input screen werden Information über die Reise (wie Stunden, Abfahrt,Ankunft,Ab-&Anreisedatum, welche Fortbewegungsmöglichkeiten) eingetragen, um dadurch zu ermitteln wie hoch die Kosten für Tagespauschale(wird per Formel automatisch ermittelt), Fortbewegungsmittel (PKW,Zug,Flug) und Hotelübernachtung (mit/ohne Nachweis) sind.
Diese Berechnungen stehen soweit.
Nun möchte ich mithilfe von zwei Buttons mein Tool ausbauen:
1.Button= setzt alle ausgefüllten Zellen im Input screen auf 0. (Dadurch neue Eingabe einer anderen Reise möglich). ->Bereits erfolgreich umgesetzt.
2.Button= Übernimmt gewissen Zellen und trägt diese in mein zweites Worksheet Overview. Dort sollen alle bisherigen Reise aufgelistet werden.
Und genau hier offenbart sich mir ein nicht-lösbares-Problem:
Die eingeben Infos sollten in Overview aufgelistet werden. Folgende Annahme:
In A4 bzw. Zeile 3 steht bereits eine Reise nach Berlin.
Nun soll die nächste eingegeben Reise sich logischerweise drunter ansiedeln (If/ then). Jedoch bekomme ich es nicht über die VBA Programmierung hin, dass die neue Reise, welche ich über die Inputmaske eingeben, eine Zeile später angesiedelt wird.
Leider wird somit immer wieder meine alte Reise in der Zeile 4 durch die neue Reise ersetzt
Zur Veranschaulichung hier mein Code:
Option Explicit
Sub ZellenTransfer()
'Zelleninhalte aus Input screen kopieren und in Overview auflisten
ThisWorkbook.Worksheets("Input screen").Select
Range("C5,D5,E5,F5,G5,K5,L5,M5,N5,O5,R5,S5,T5").Select
Selection.Copy Destination:=Worksheets("Overview").Range("A4")
If ThisWorkbook.Worksheets("Overview").Range("A4").Offset(1, 0) "" Then
Worksheets("Overview").Range("A4").End(xlDown).Select
End If
End Sub
Da ich nach etlichen Stunden mir leider nicht mehr zu helfen weiß, wäre ich über Hilfe äußerst dankbar.