Betrag gestaffelt nach Jahren genau aufteilen
#11
Hallo Liesl,

warum gefällt dir meine VBA-Fkt. nicht? (s.Mappe)

Gruß Sigi


Angehängte Dateien
.xlsm   Förderbetrag.xlsm (Größe: 20,45 KB / Downloads: 7)
Antworten Top
#12
Da es für die Firma ist würde ich gerne Macros vermeiden. Mit Macros lässtsich. auf Grund von internen Einstellungen, die Datei nicht verschicken.

Vlt. kennt jemand eine "macrofreie" Lösung.

Falls nicht, wird es sicher deines Smile Danke Blush

Kannst du mir den "Marcotext / VBText" hier rein stellen?  Huh
Antworten Top
#13
Hi,

Warum benutzt Du nicht meine  Formel, vor allem, damit man den Fehler nachvollziehen kann? Deine Formel funktioniert ja sowieso nicht.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#14
Wie gesagt, das habe ich, sie funktioniert leider nicht.
Antworten Top
#15
Hallo Liesl,

hier der VBA-Code:

Function FoerdermittelProJahr(Foerderbetrag As Double, VonMMJJJJ As Date, BisMMJJJJ As Date, Jahr As Long) As Double
Dim M1 As Long, M2 As Long, J1 As Long, J2 As Long, M As Long, J As Long, n As Long, al As Long
    Application.Volatile
    J1 = Year(VonMMJJJJ): M1 = Month(VonMMJJJJ): J2 = Year(BisMMJJJJ): M2 = Month(BisMMJJJJ): J = J1: M = M1
    If VonMMJJJJ <= BisMMJJJJ Then
        Do
            If J = Jahr Then
                al = al + 1: n = n + 1: M = M + 1
                If M > 12 Then
                    J = J + 1: M = 1
                End If
            Else
                al = al + 1: M = M + 1
                If M > 12 Then
                    J = J + 1: M = 1
                End If
            End If
        Loop While (J * 100 + M <= J2 * 100 + M2)
    Else
        n = 0
    End If
    FoerdermittelProJahr = Foerderbetrag * n / al
End Function



Gruß Sigi
Antworten Top
#16
Hallo nochmal

ABCDEFGHIJKLMNOP
1FörderbeginnFörderendeFördersumme2007200820092010201120122013201420152016201720182019
201.03.201228.02.201755.000,00 €000009166,6711000,0011000,0011000,0011000,001833,3300
301.01.201431.12.201810.000,00 €00000002000,002000,002000,002000,002000,000
401.09.200730.08.201920.000,00 €555,561666,671666,671666,671666,671666,671666,671666,671666,671666,671666,671666,671111,11
501.02.201531.01.2017120.000,00 €0000000055000,0060000,005000,0000
6

ZelleFormel
D2=WENNFEHLER((DATEDIF(MAX($A2;(MONATSENDE(D$1;-12)+1));MIN(D$1;$B2);"YM")+1)*$C2/(DATEDIF($A2;$B2;"M")+1);"0")


LG UweD
[-] Folgende(r) 2 Nutzer sagen Danke an UweD für diesen Beitrag:
  • LieslWeppon, Rudi'S
Antworten Top
#17
Hi,



wäre mit meiner Formel genauso einfach abzustellen gewesen:





Code:
=WENN((JAHR($A2)>JAHR(D$1))+(JAHR($B2)<JAHR(D$1));0;DATEDIF(MAX($A2;MONATSENDE(D$1+1;-13)-1);MIN($B2;D$1+1);"M")*$C$2/DATEDIF($A$2-1;$B$2+1;"M"))
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#18
Danke UweD


leider hat sich jetzt raus gestellt das deine Formel es nicht berechnet wenn die Laufzeit an einem beliebigen Tag im Monat beginnt:
  20

Lieber Bosko,

nein leider nicht, deine Formel berechnet das Jahr 2017 nicht richtig.

Hallo SIgi

ich habe jetzt die VBA eingefügt aber es kommt immer nur #NAME?
  • hab kontrolliert ob richti geschrieben
  • die } sind auch da
noch ne idee an was es liegen kann?
Antworten Top
#19
Hi,

dann zeige das an einem Beispiel, und zwar an einem Muster, was alle möglichen Kombinationen abbildet! Bisher waren alle Daten auf 1. oder Monatsende ausgelegt!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#20
Hallo Liesl,

der VBA-Code muss in ein normales Modul kopiert werden:

im MENÜ: - Entwicklertools - Visual Basic
dort: VBA-Projekt markieren - rechte Maustaste - einfügen - Modul - dort den VBA-Code reinkopieren

anschließend: zurück zu Excel - (im Projektmenü) - Excel-Symbol anklicken

dann: über den Funktionsassistenten (fx) - Kategorie auswählen "benutzerdefiniert" - "FoerdermittelProJahr" markieren - ok
weiter dem Assistenten (wie in Excelformel) folgen

Gruß Sigi
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste