da ich mit meinen Anfängerkenntnissen in VBA gerade am Ende bin, hoffe ich, dass
mir bei meinem unten stehenden Problem evtl. jemand weiter helfen kann.
In meinem Tabellenblatt (Tabelle 1), kann ich über ein einen Button ein Formular (frmAnlegen)
öffnen.
In diesem Formular habe ich die Möglichkeit ein Startdatum (txtStart), ein Enddatum (txtEnde)
und ein Stundenvolumen (txtStart) einzugeben. Klicke ich anschließend auf cmdAnlegen werden
meine eingegebenen Daten mit folgenden Code in das Tabellenblatt (Tabelle 1) geschrieben:
Private Sub cmdAnlegen_Click()
'Formular schließen
frmAnlegen.Hide
'Befüllung aktives Tabellenblatt
With ActiveSheet
Dim LastRow As Long
LastRow = Range("A65536").End(xlUp).Row
.Range("A" & LastRow + 1) = Me.txtStart
.Range("B" & LastRow + 1) = Me.txtEnde
.Range("C" & LastRow + 1) = DateDiff("m", CDate(txtStart), CDate(txtEnde)) 'Anzahl Monate
.Range("D" & LastRow + 1) = Me.txtStunden
.Range("E" & LastRow + 1) = Me.txtStunden / .Range("C" & LastRow + 1) 'Stunden pro Monat
End With
'Formular leeren
Me.txtStart = ""
Me.txtEnde = ""
Me.txtStunden = ""
End Sub
Jetzt gibt es ab Spalte F WENN-Formeln, die errechnen, wie viele Stunden auf welches Quartalfallen und die Zelle wird mit der entsprechenden Stundenanzahl befüllt.
Beispiel WENN-Formel für Quartal 1 2007:
=WENN(C9 E9*WENN(UND((A9)=DATUM(2007;3;1));3;
WENN(ODER(UND((A9)=DATUM(2007;2;1);(B9)>=DATUM(2007;3;1));
UND((A9) WENN(UND((A9) E9*WENN(UND((A9)=DATUM(2007;3;1));3;
WENN(ODER(UND((A9)=DATUM(2007;2;1);(B9)>=DATUM(2007;3;1));
UND((A9) Nun suche ich verzweifelt eine Möglichkeit diese langen WENN-Formeln in den VBA-Code mit aufzunehmen.
Sollte mein Problem durch diesen Beitrag nicht verständlich sein, habe ich auch
noch eine Beispieldatei angehängt.
Die Datei https://www.herber.de/bbs/user/21.xls wurde aus Datenschutzgründen gelöscht
Bin für jede Hilfe sehr dankbar!
Viele Grüße,
Günter