Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Code für Datumsberechnung / weitere Verwendung

VBA Code für Datumsberechnung / weitere Verwendung
19.12.2012 13:27:04
Jens
Moin,
bin im Bereich VBA recht unbedarft und möchte mich in Form von "Learning by Doing" herantasten.
Bin dabei eine Berechnung zu entwickeln und mit dem "Standardwerk" auch schon ganz zufrieden. Jetzt möchte ich aber "mehr", heisst Verfeinerung ist angesagt und da bin ich leider mit meinem Latein am Ende.
Forensuche macht wenig Sinn - kann das gefundene einfach nicht umsetzen.
Problem:
Ich möchte folgendes Erreichen:
Es soll ein Datum eingegeben werden - bspw. 15.12.2012 - eine Dauer - bswp. 6 Monate - eine prozentuale Förderung - bswp. 20 % - und ein Förderbetrag.
Auf Grundlage des Datum und der Dauer möge er dann für jeden Monat, auch Teilmonat (15.12.-31.12.2012), die Zeilen untereinander füllen. In diesem Beispiel müsste die letzte Zeile lauten: 01.06. - 14.06.2012)
Ist so etwas möglich? Ich denke schon, aber auch recht einfach verständlich?
Danke.
Jens

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code für Datumsberechnung / weitere Verwendung
19.12.2012 14:55:50
Jens
Hallo Günther,
vielen Dank erstmal. So hatte ich es mir vorgestellt.
Nun geht der Spaß aber weiter, ich hänge mal mein "Standardwerk" als Anlage ran. Wenn ich so, wie in der Datei beschrieben die Tabelle füllen könnte ist es schon gut, bloss wie bekomme ich es hin, diesen Code in meinen zu implentieren?
Bitte mal ansehen, ob ich auf einem guten Weg bin.
https://www.herber.de/bbs/user/83076.xlsm

Anzeige
AW: VBA Code für Datumsberechnung / weitere Verwendung
20.12.2012 09:46:12
guentherh
Hallo Jens,
wenn ich das richtig sehe, gibt es ein Eingabeformular, und das Füllen einer Gesamtzeile.
ich kann noch nicht erkennen, wie die weiteren Daten generiert und plaziert werden sollen.
Folgende zwei Unterschiede zur ursprünglichen Aufgabenstellung meine ich erkannt zu haben:
- Zeitraum wird nicht mehr durch Datum und Laufzeit, sondern durch Start- und Enddatum eingegeben(wesentlich)
- Ausgabe der Zeitscheibe erfolgt nicht als Text sondern in zwei Zellen als Datum (unwesentlich - sogar einfacher)
Erklärungen zum Einbau des Codes:

Sub GH_MonateFüllen()
'/*** EingabeFelder
Dim FStart As Range
Dim FDauer As Range
Dim FAktDatum As Range
Dim FFoerderung As Range
'     EingabeFelder ***/
'/*** Variablen für Eingabewerte
Dim WStart As Date
Dim WDauer As Double
Dim WFoerderung As Double
'     Variablen für Eingabewerte ***/
Dim Teilmonat
Dim dattext
Dim i
'/*** Initialisieren EingabeFelder, kann wegfallen
Set FStart = Range("B1")
Set FDauer = Range("E1")
Set FFoerderung = Range("H1")
'    Initialisieren EingabeFelder ***/
'/*** aktueller Ausgabeplatz , erforderlich, ermittelst Du über "erste freie Zeile"
Set FAktDatum = Range("B4") '***/
' *** Belegung der Eingabewerte, hier durch Deine Eingabewerte ersetzen
'     durch Enddatumseingabe würde sich die Berechnung der Zeitpunkte verändern
'     insbesondere Tagesgenauigkeit erfordert komplexere Vorgehensweise
'     Wenn Du aus Start- und Enddatum die Dauer in ganzen Monaten auf WDauer legst,
'     kann die Berechnung unverändert übernommen werden.
WStart = FStart
WDauer = FDauer
WFoerderung = FFoerderung
'/*** Berechnung
If Day(WStart) > 1 Then ' Unterscheidung ob am 1. des Monats gestartet wird
Teilmonat = True
End If
If WDauer >= 1 Then  ' Laufzeiten müssen mind 1 Monat sein!!
dattext = Format(WStart, "dd.mm.yyyy") & " - " & Format(DateSerial(Year(WStart), Month( _
WStart) + 1, 1) - 1, "dd.mm.yyyy")
'bei der Ermittlung des Ende-Tages wird vom 1. des Folgemonats einen Tag zurückgegangen
FAktDatum = dattext
Set FAktDatum = FAktDatum.Offset(1, 0)
i = 1
While i 

beste Güße,
Günther

Anzeige
AW: VBA Code für Datumsberechnung / weitere Verwendung
20.12.2012 12:47:03
Jens
Moin,
korrekt - es gibt ein Userform, mit dem ich die entsprechenden Daten abfrage, um sie dann in die Tabelle schreiben zu lassen. Deine Erläuterungen sind super, ich probiere gerade sie zu verstehen :-)
Gibt es eigentlich eine Systematik, wie man sich an VBA herantasten kann? So vom "einfachen" zum "schweren"?
Danke, Gruss
JENS

AW: VBA Code für Datumsberechnung / weitere Verwendung
20.12.2012 13:28:14
guentherh
Kommt darauf an, ob Du bereits Programmiererfahrung, hast oder nicht.
Ich meine man sollte mindestens einen Einführungskurs in Programmierung gehabt haben, um Sachen wie globale/lokale Variablen, Adressen, Werte, Datentypen, Schleifen u.a. zu kennen.
bzgl. Excel bin ich Autodidakt, und arbeite vorwiegend mit Hilfe des Makrorekorders und der Hilfe.
Den Rekorder nehme ich nur her, um die betroffenen Objekte zu finden.
Ich versuche übrigens keine Sachen zu verwenden, die in die Kategorie "schwer" fallen, da entweder ich oder ein Nachfolger die Programme pflegen muss.
beste Grüße,
Günther

Anzeige
AW: VBA Code für Datumsberechnung / weitere Verwendung
20.12.2012 16:01:41
Jens
OK, Excel-Kenntnisse sind recht gut, Programmiererfahrung kann ich eher nicht vorweisen. Die genannten Begriffe kommen mir irgendwie bekannt vor :-)
Muss aber noch mehr davon wissen.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige