{"id":55000695,"date":"2009-12-01T00:00:00","date_gmt":"2020-05-22T22:19:00","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=695"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Tilgen_mit_Access_und_Excel","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/","title":{"rendered":"Tilgen mit Access und Excel"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg04.met.vgwort.de\/na\/869a36059b904781aaff60f259b94d6c\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Wer ein Haus, ein Auto oder auch nur einen neuen Computer kauft, wird dies m&ouml;glicherweise &uuml;ber ein Darlehen finanzieren. Wer wissen will, wie lange ein Kredit unter verschiedenen Bedingungen l&auml;uft und wann welcher Betrag abgezahlt ist, kann eines der vielen Online-Portale zu diesem Thema befragen. Dem Access-Entwickler macht es aber nat&uuml;rlich viel mehr Spa&szlig;, dies mit Access zu erledigen &#8211; und dabei gleich noch Excel mit ins Boot zu holen.<\/b><\/p>\n<p>Grunds&auml;tzlich soll dieser Beitrag ein Beispiel f&uuml;r einen anderen Beitrag liefern &#8211; n&auml;mlich f&uuml;r <b>Excel automatisieren <\/b>(Shortlink 693). Dieser Beitrag erl&auml;utert die wichtigsten Techniken f&uuml;r das Erstellen und &Ouml;ffnen von Excel-Dokumenten sowie zum Lesen und Schreiben von Daten in den Tabellenbl&auml;ttern eines Excel-Dokuments.<\/p>\n<p>Nebenbei k&ouml;nnen Sie damit Tilgungspl&auml;ne erstellen und erfahren so beispielsweise, wie lange die R&uuml;ckzahlung eines Darlehens etwa f&uuml;r eine Immobilie dauern w&uuml;rde.<\/p>\n<p>Ausgangspunkt ist ein ganz einfaches Formular wie das in Bild 1. Es dient der Eingabe des Darlehensbetrags, des Zinssatzes, des Tilgungssatzes und gegebenenfalls der Angabe der j&auml;hrlichen Sondertilgungen.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2009_06\/TilgenMitAccessUndExcel-web-images\/pic001_opt.jpeg\" alt=\"pic001.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1: Formular zum Aufnehmen der Darlehensparameter<\/span><\/b><\/p>\n<p>Das Formular enth&auml;lt vier einfache Textfelder mit den Namen <b>txtDarlehen<\/b>, <b>txtZinssatz<\/b>, <b>txtTilgungssatz <\/b>und <b>txtSondertilgung<\/b>. Die Schaltfl&auml;che mit der Beschriftung <b>Tilgungsplan erstellen <\/b>erh&auml;lt den Namen <b>cmdErstellen <\/b>und wird mit einer Ereignisprozedur ausgestattet, die wie folgt aussieht:<\/p>\n<pre>Private Sub cmdErstellen_Click()\r\n    Call TilgungsplanErstellen( _\r\n    Me!txtZinssatz \/ 100, _\r\n    Me!txtDarlehen, _\r\n    Me!txtTilgungssatz \/ 100, _\r\n    Nz(Me!txtSondertilgung, 0))\r\n    End Sub<\/pre>\n<p>Damit verlassen wir dieses Formular zun&auml;chst und schauen uns an, wie das fertige Excel-Dokument sp&auml;ter aussehen soll (siehe Bild 2).<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2009_06\/TilgenMitAccessUndExcel-web-images\/pic002_opt.jpeg\" alt=\"pic002.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2: So soll der Tilgungsplan einmal aussehen.<\/span><\/b><\/p>\n<p>Im Kopf des Dokuments sollen die wichtigsten Informationen angezeigt werden. Darunter beginnt der Tilgungsplan, der sechs Spalten enth&auml;lt:<\/p>\n<ul>\n<li class=\"aufz-hlung\">die laufende Nummer des Monats<\/li>\n<li class=\"aufz-hlung\">Monat und Jahr<\/li>\n<li class=\"aufz-hlung\">H&ouml;he der Rate<\/li>\n<li class=\"aufz-hlung\">Zinsen im aktuellen Monat<\/li>\n<li class=\"aufz-hlung\">Tilgung im aktuellen Monat<\/li>\n<li class=\"aufz-hlung\">Sondertilgung im aktuellen Monat<\/li>\n<li class=\"aufz-hlung\">Restschuld nach diesem Monat<\/li>\n<\/ul>\n<p>Wie die einzelnen Zellen gef&uuml;llt werden, schauen wir uns weiter unten im Detail an. Vorerst erstellen wir erstmal eine nackte Excel-Datei, und zwar mit der Prozedur <b>TilgungsplanErstellen<\/b>. Diese wird, wie bereits erw&auml;hnt, &uuml;ber die Schaltfl&auml;che <b>cmdErstellen <\/b>unseres Formulars aufgerufen und ist in Listing 1 zu finden. Die Routine erwartet die in den vier Textfeldern des Formulars enthaltenen Werte als Parameter, wobei der letzte von der aufrufenden Anweisung als <b>0 <\/b>&uuml;bergeben wird, wenn das Textfeld mit der Sondertilgung leer ist.<\/p>\n<p class=\"kastentabelleheader\">Listing 1: Ger&uuml;st der Prozedur zum Erstellen von Tilgungspl&auml;nen<\/p>\n<pre>Public Sub TilgungsplanErstellen( _\r\ncurZinssatz As Currency, _\r\ncurDarlehen As Currency, _\r\ncurTilgungssatz As Currency, _\r\ncurSondertilgung As Currency)\r\nDim objExcel As Excel.Application\r\nDim objWorkbook As Excel.Workbook\r\nDim objSheet As Excel.Worksheet\r\nDim i As Integer\r\nDim intMonat As Integer\r\nDim intJahr As Integer\r\nDim strMonatJahr As String\r\nDim curRestschuld As Currency\r\nSet objExcel = New Excel.Application\r\nSet objWorkbook = objExcel.Workbooks.Add\r\nSet objSheet = objWorkbook.Worksheets(1)\r\nobjExcel.Visible = True\r\nWith objSheet\r\n''Hier wird das Tabellenblatt gef&uuml;llt\r\nEnd With\r\nobjWorkbook.Close\r\nobjExcel.Quit\r\nEnd Sub<\/pre>\n<p>Die Routine deklariert je ein <b>Excel.Application<\/b>-, <b>Excel.Workbook<\/b>&#8211; und <b>Excel.Worksheet<\/b>-Objekt und einige weitere Variablen, deren Zweck wir weiter unten erl&auml;utern. <b>objExcel <\/b>wird mit einer neuen Instanz von Excel gef&uuml;llt, <b>objWorkbook <\/b>erh&auml;lt einen Verweis auf eine neu angelegte Excel-Datei und <b>objSheet <\/b>f&uuml;llt die Prozedur mit dem ersten Tabellenblatt der neuen Excel-Datei.<\/p>\n<p>Nachdem die Excel-Instanz sichtbar gemacht wurde, folgt ein <b>With&#8230;End With<\/b>-Konstrukt, in dem sich alle Anweisungen zum F&uuml;llen des Tilgungsplans befinden. Diese stellen wir gleich im Anschluss vor.<\/p>\n<p>Die <b>Close<\/b>-Methode des <b>objWorkbook<\/b>-Objekts schlie&szlig;t das neu angelegte Excel-Dokument, allerdings nicht ohne den Benutzer zu fragen, ob und wo er dieses speichern m&ouml;chte, die <b>Quit<\/b>-Methode von <b>objExcel <\/b>beendet die Excel-Instanz. Hier lie&szlig;e sich auch eine andere Vorgehensweise realisieren, etwa indem man die Excel-Instanz mit dem Tilgungsplan einfach ge&ouml;ffnet l&auml;sst.<\/p>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Kopfdaten anlegen<\/p>\n<p>Wenn die Excel-Datei erzeugt wurde, soll zun&auml;chst das Tabellenblatt, das den Tilgungsplan aufnimmt, mit einem aussagekr&auml;ftigen Namen versehen werden. Das erledigt die folgende Anweisung:<\/p>\n<pre>.Name = &quot;Tilgungsplan&quot;<\/pre>\n<p>Danach f&uuml;llen wir den Kopfbereich der Excel-Tabelle. Dazu dienen die folgenden Anweisungen, wobei immer zuerst die linke Zelle mit der Bezeichnung des Werts gef&uuml;llt wird und dann die rechts daneben liegende Zelle mit dem eigentlichen Wert. Eine weitere Anweisung formatiert jeweils die Zelle mit dem Zahlenwert:<\/p>\n<pre>.Range(&quot;A1&quot;).Value = &quot;Darlehen:&quot;\r\n.Range(&quot;B1&quot;).Value = curDarlehen\r\n.Range(&quot;B1&quot;).NumberFormatLocal = &quot;#.##0,00 \"&not;&quot;\r\n.Range(&quot;A2&quot;).Value = &quot;Zinssatz:&quot;\r\n.Range(&quot;B2&quot;).Value = curZinssatz\r\n.Range(&quot;B2&quot;).NumberFormatLocal = &quot;0,00%&quot;\r\n.Range(&quot;A3&quot;).Value = &quot;Tilgungssatz:&quot;\r\n.Range(&quot;B3&quot;).Value = curTilgungssatz\r\n.Range(&quot;B3&quot;).NumberFormatLocal = &quot;0,00%&quot;<\/pre>\n<p>Wenn Sie einmal den Ausdruck f&uuml;r eine Formatierung ben&ouml;tigen, hilft folgender Trick:<\/p>\n<ul>\n<li class=\"aufz-hlung\">Excel &ouml;ffnen<\/li>\n<li class=\"aufz-hlung\">Feld &uuml;ber den entsprechenden Dialog wie gew&uuml;nscht formatieren und den Fokus auf diesem Feld belassen<\/li>\n<li class=\"aufz-hlung\">Mit <b>Alt + F11 <\/b>zum VBA-Editor wechseln und dort im Direktfenster die Anweisung <b>Debug.Print ActiveCell.NumberFormatLocal <\/b>absetzen. Der resultierende Ausdruck ist die lokale Variante, die englische erhalten Sie einfach mit <b>NumberFormat <\/b>statt <b>NumberFormatLocal<\/b>.<\/li>\n<\/ul>\n<p><b>Startzeitpunkt festlegen<\/b><\/p>\n<p>Der Einfachheit halber gehen wir davon aus, dass der Tilgungsplan beginnend mit dem folgenden Monat berechnet werden soll. Wenn Sie dies individuell einstellen m&ouml;chten, brauchen Sie nur zwei Textfelder zur Eingabe des Startmonats und -jahrs im Formular anzulegen und die Inhalte dieser Felder an die Prozedur <b>TilgungsplanErstellen<\/b> zu &uuml;bergeben.<\/p>\n<p>Dazu m&uuml;ssen Sie nat&uuml;rlich zwei weitere Parameter im Prozedurkopf definieren (am besten namens <b>intMonat<\/b> und <b>intJahr<\/b>) und diese beiden Variablen aus dem Deklarationsbereich der Prozedur entfernen. Im vorliegenden Fall verwenden wir jedoch der Einfachheit halber das aktuelle Datum, aus dem wir mit den Funktionen <b>Month <\/b>und <b>Year <\/b>die entsprechenden Zahlen ermitteln, zum Beispiel:<\/p>\n<pre>intMonat = Month(Date)\r\nintJahr = Year(Date)<\/pre>\n<p><b>Spalten&uuml;berschriften<\/b><\/p>\n<p>Danach folgen schon die Spalten&uuml;berschriften des eigentlichen Tilgungsplans:<\/p>\n<pre>.Cells(5, 1) = &quot;Lfd. Nr.:&quot;\r\n.Cells(5, 2) = &quot;Monat\/Jahr:&quot;\r\n.Cells(5, 3) = &quot;Rate:&quot;\r\n.Cells(5, 4) = &quot;Zinsen:&quot;\r\n.Cells(5, 5) = &quot;Tilgung:&quot;\r\n.Cells(5, 6) = &quot;Sondertilgung:&quot;\r\n.Cells(5, 7) = &quot;Restschuld:&quot;<\/pre>\n<p><b>Erste Zeile des Tilgungsplans<\/b><\/p>\n<p>Die erste Zeile des Tilgungsplans wird etwas anders gef&uuml;llt als die &uuml;brigen, weil sie ihre Informationen aus den im Tabellenkopf enthaltenen Zellen bezieht. Die erste Zelle erh&auml;lt einfach den Wert <b>1<\/b>:<\/p>\n<pre>.Cells(6, 1) = 1<\/pre>\n<p>Monat und Jahr werden in der zweiten Zelle zusammengefasst:<\/p>\n<pre>.Cells(6, 2) = intMonat &amp; &quot;\/&quot; &amp; intJahr<\/pre>\n<p>Die erste Berechnung erfolgt bei der Ermittlung der Rate, die sich aus der Summe von Zins- und Tilgungssatz multipliziert mit der Darlehenssumme geteilt durch zw&ouml;lf Monate ergibt. Die meisten Informationen stammen aus dem Tabellenkopf:<\/p>\n<pre>.Cells(6, 3) = (.Cells(2, 2) + .Cells(3, 2)) _\r\n* .Cells(1, 2) \/ 12<\/pre>\n<p>Nat&uuml;rlich wird auch diese Zeile im W&auml;hrungsformat dargestellt:<\/p>\n<pre>.Cells(6, 3).NumberFormatLocal = &quot;#.##0,00 \"&not;&quot;<\/pre>\n<p>Die Zinsen f&uuml;r den ersten Monat ergeben sich aus dem Zinssatz und der urspr&uuml;nglichen Darlehenssumme, die Tilgung ist die Differenz von Rate und Zinsen:<\/p>\n<pre>.Cells(6, 4) = curZinssatz * curDarlehen \/ 12\r\n.Cells(6, 4).NumberFormatLocal = &quot;#.##0,00 \"&not;&quot;\r\n.Cells(6, 5) = curTilgungssatz * curDarlehen \/ 12\r\n.Cells(6, 5).NumberFormatLocal = &quot;#.##0,00 \"&not;&quot;<\/pre>\n<p>Wurde eine Sondertilgung angegeben und schreiben wir den letzten Monat des Jahres, soll die Sondertilgungsrate in der f&uuml;nften Zelle dieser Zeile eingetragen werden (den Monat, in dem die Tilgung erfolgt, k&ouml;nnen Sie nat&uuml;rlich auch parametrisieren):<\/p>\n<pre>If curSondertilgung &gt; 0 And intMonat = 12 Then\r\n    .Cells(6, 6) = curSondertilgung\r\n    .Cells(6, 6).NumberFormatLocal = &quot;#.##0,00 \"&not;&quot;\r\nEnd If<\/pre>\n<p>Schlie&szlig;lich ermitteln wir aus dem Darlehensbetrag, der Tilgung und der Sondertilgung die nach diesem Monat verbleibende Restschuld und tragen diese in die siebte Zelle ein:<\/p>\n<pre>.Cells(6, 7) = .Cells(1, 2) - .Cells(6, 5) - .Cells(6, 6)\r\n.Cells(6, 7).NumberFormatLocal = &quot;#.##0,00 \"&not;&quot;<\/pre>\n<p>Au&szlig;erdem speichern wir die Restschuld in einer Variablen:<\/p>\n<pre>curRestschuld = curDarlehen<\/pre>\n<p><!--30percent--><\/p>\n<p>Danach geht es rund: Auf Basis der ersten Zeile werden alle weiteren Zeilen des Tilgungsplans berechnet und geschrieben. Dies geschieht so lange, wie der Wert von <b>curRestschuld <\/b>gr&ouml;&szlig;er <b>0<\/b> ist:<\/p>\n<pre>Do While curRestschuld &gt; 0<\/pre>\n<p>Als Erstes wird innerhalb der <b>Do While<\/b>-Schleife die Z&auml;hlervariable erh&ouml;ht:<\/p>\n<pre>    i = i + 1<\/pre>\n<p>Daraus ergibt sich nach Addition von <b>1 <\/b>(weil wir die erste Zeile schon geschrieben haben) gleich die laufende Nummer:<\/p>\n<pre>    .Cells(6 + i, 1).Value = i + 1<\/pre>\n<p>Dann berechnen wir den Monat und das Jahr. Normalerweise wird einfach <b>1 <\/b>zum Monat hinzuaddiert.<\/p>\n<p>Wenn <b>intMonat <\/b>jedoch schon den Wert <b>12 <\/b>hat, wird <b>intMonat <\/b>auf <b>1 <\/b>gesetzt und der Wert von <b>intJahr <\/b>um <b>1 <\/b>erh&ouml;ht:<\/p>\n<pre>    If intMonat = 12 Then\r\n        intMonat = 1\r\n        intJahr = intJahr + 1\r\n    Else\r\n        intMonat = intMonat + 1\r\n    End If<\/pre>\n<p>Das Ergebnis landet dann zusammengefasst und entsprechend formatiert in der zweiten Zelle einer jeden Zeile:<\/p>\n<pre>    strMonatJahr = intMonat &amp; &quot;\/&quot; &amp; intJahr\r\n    .Cells(6 + i, 2).Value = strMonatJahr\r\n    .Cells(6 + i, 2).NumberFormat = &quot;mmmm yyyy&quot;<\/pre>\n<p>Dann folgt die Rate. Diese wird einfach aus der dar&uuml;ber liegenden Zeile gewonnen:<\/p>\n<pre>    .Cells(6 + i, 3) = .Cells(5 + i, 3)\r\n    .Cells(6 + i, 3).NumberFormatLocal = &quot;#.##0,00 \"&not;&quot;<\/pre>\n<p>Die Zinsen berechnen sich aus der Restschuld des Vormonats und dem Zinssatz &#8211; wieder geteilt durch zw&ouml;lf:<\/p>\n<pre>    .Cells(6 + i, 4) = .Cells(5 + i, 7) _\r\n    * .Cells(2, 2) \/ 12\r\n    .Cells(6 + i, 4).NumberFormatLocal = &quot;#.##0,00 \"&not;&quot;<\/pre>\n<p>Die Tilgung ergibt sich, wie schon in der ersten Zeile, aus der Differenz von Rate und Zinsen. Naturgem&auml;&szlig; wird dieser Wert nach jeder Tilgung kleiner:<\/p>\n<pre>    .Cells(6 + i, 5).Value = .Cells(6 + i, 3) _\r\n    - .Cells(6 + i, 4)\r\n    .Cells(6 + i, 5).NumberFormatLocal = &quot;#.##0,00 \"&not;&quot;<\/pre>\n<p>Fehlt noch die Sondertilgung, die nur dann eingetragen wird, wenn ein Wert f&uuml;r die Sondertilgung &uuml;bergeben wurde und der Monat der zw&ouml;lfte des Jahres ist:<\/p>\n<pre>    If curSondertilgung &gt; 0 And intMonat = 12 Then\r\n        .Cells(6 + i, 6) = curSondertilgung\r\n        .Cells(6 + i, 6).NumberFormatLocal = _\r\n        &quot;#.##0,00 \"&not;&quot;\r\n    End If<\/pre>\n<p>Fehlt noch die Restschuld. Diese berechnen wir ganz einfach aus der Differenz der Restschuld des vorherigen Monats und der Summe der regul&auml;ren und der Sondertilgung. Da wir diesen Wert auch brauchen, um beim n&auml;chsten Schleifendurchlauf zu pr&uuml;fen, ob &uuml;berhaupt noch eine Restschuld vorhanden ist, speichern wir diesen in der Variablen <b>curRestschuld<\/b>:<\/p>\n<pre>    curRestschuld = .Cells(5 + i, 7) _\r\n    - .Cells(6 + i, 5).Value _\r\n    - .Cells(6 + i, 6).Value\r\n    .Cells(6 + i, 7).Value = curRestschuld\r\n    .Cells(6 + i, 7).NumberFormatLocal = &quot;#.##0,00 \"&not;&quot;\r\nLoop<\/pre>\n<p><b>Ergebnis und Optimierungsvorschl&auml;ge<\/b><\/p>\n<p>Wenn wir uns nun das Ergebnis ansehen, sieht dieses erstmal genau so aus wie gew&uuml;nscht. Allerdings scheint die Erstellung nicht gerade rasend schnell zu erfolgen, und zweitens ergibt sich ein noch viel gr&ouml;&szlig;eres Problem: Beim Versuch, etwa eine Sondertilgung zu entfernen oder hinzuzuf&uuml;gen oder gar die Darlehenssumme, den Zinssatz oder den Tilgungssatz zu &auml;ndern, tut sich im restlichen Tabellenblatt &uuml;berhaupt nichts. Normalerweise sollten sich die Werte aber anpassen &#8211; wir wollten doch auch ein wenig mit der Kalkulation des Tilgungsplans spielen! Da h&auml;tten wir auch gleich einen Access-Bericht mit dem Tilgungsplan erstellen k&ouml;nnen, in dem wir keine nachtr&auml;glichen Ver&auml;nderungen mehr vornehmen k&ouml;nnen.<\/p>\n<p>Woran hapert es also Nun: Das Tabellenblatt wurde komplett mit konkreten Zahlenwerten gef&uuml;llt und es kommt keinerlei Formel zum Einsatz. Dies w&auml;re aber n&ouml;tig, wenn wir nach der &auml;nderung bestimmter Werte gleich eine aktualisierte Fassung des Tilgungsplans sehen wollen.<\/p>\n<p>Also schauen wir uns an, wie wir den Tilgungsplan dynamisieren und ihn schneller ausgeben k&ouml;nnen.<\/p>\n<p>Das Grundger&uuml;st der Prozedur, die in diesem Fall <b>TilgungsplanErstellen_Schnell <\/b>hei&szlig;t, ist fast genau so aufgebaut wie das der zuvor vorgestellten Prozedur (s. Listing 2). <\/p>\n<p class=\"kastentabelleheader\">Listing 3: Diese Formeln liefern nur ein Ergebnis, wenn die Restschuld in der dar&uuml;ber liegenden Zeile nicht negativ ist.<\/p>\n<pre>''Laufende Nummerierung\r\n.Range(&quot;A7:A1000&quot;).FormulaR1C1 = &quot;=IF(OR(R[-1]C7&lt;0,R[-1]C7=&quot;&quot;&quot;&quot;),&quot;&quot;&quot;&quot;,R[-1]C+1)&quot;\r\n''Monat\r\n.Range(&quot;B7:B1000&quot;).FormulaR1C1 = _\r\n&quot;=IF(OR(R[-1]C7&lt;0,R[-1]C7=&quot;&quot;&quot;&quot;),&quot;&quot;&quot;&quot;,DATE(YEAR(R[-1]C),MONTH(R[-1]C)+1,DAY(R[-1]C)))&quot;\r\n''Rate\r\n.Range(&quot;C7:C1000&quot;).FormulaR1C1 = &quot;=IF(OR(R[-1]C7&lt;0,R[-1]C7=&quot;&quot;&quot;&quot;),&quot;&quot;&quot;&quot;,R[-1]C)&quot;\r\n''Zinsen\r\n.Range(&quot;D7:D1000&quot;).FormulaR1C1 = &quot;=IF(OR(R[-1]C7&lt;0,R[-1]C7=&quot;&quot;&quot;&quot;),&quot;&quot;&quot;&quot;,R[-1]C7 * R2C2 \/ 12)&quot;\r\n''Tilgung\r\n.Range(&quot;E7:E1000&quot;).FormulaR1C1 = &quot;=IF(OR(R[-1]C7&lt;0,R[-1]C7=&quot;&quot;&quot;&quot;),&quot;&quot;&quot;&quot;,RC[-2] - RC[-1])&quot;\r\n''Sondertilgung\r\n.Range(&quot;F7:F1000&quot;).FormulaR1C1 = &quot;=IF(OR(R[-1]C7&lt;0,R[-1]C7=&quot;&quot;&quot;&quot;),&quot;&quot;&quot;&quot;,IF(MONTH(RC[-4])=12,R4C2,0))&quot;\r\n''Restschuld\r\n.Range(&quot;G7:G1000&quot;).FormulaR1C1 = &quot;=IF(OR(R[-1]C7&lt;0,R[-1]C7=&quot;&quot;&quot;&quot;),&quot;&quot;&quot;&quot;,R[-1]C - RC[-2] - RC[-1])&quot;\r\n''Formatierungen\r\n.Range(&quot;B6:B1000&quot;).NumberFormat = &quot;mmmm yyyy&quot;\r\n.Range(&quot;C6:G1000&quot;).NumberFormatLocal = &quot;#.##0,00 \"&not;&quot;<\/pre>\n<p>Einer der wenigen Unterschiede ist die Deklaration eines Variant-Arrays namens <b>varTexte<\/b>, dessen Zweck gleich im Anschluss erl&auml;utert wird. Au&szlig;erdem brauchen wir die Variablen f&uuml;r <b>intMonat <\/b>und <b>intJahr <\/b>nicht mehr.<\/p>\n<p>In Listing 2 finden Sie wiederum eine <b>With&#8230;End With<\/b>-Konstruktion, welche alle nachfolgend vorgestellten Anweisungen enth&auml;lt. Gleich zu Beginn benennen wir wieder das Tabellenblatt:<\/p>\n<pre>.Name = &quot;Tilgungsplan&quot;<\/pre>\n<p><b>Kopfdaten aus Array f&uuml;llen<\/b><\/p>\n<p>Die Kopfdaten, die wir in der ersten Version noch zellenweise gef&uuml;llt haben, bedienen wir diesmal &uuml;ber ein Array. Dieses hat zwei Dimensionen und soll vier mal zwei Werte aufnehmen. Das F&uuml;llen des Arrays &uuml;bernehmen die folgenden Anweisungen:<\/p>\n<pre>varTexte(0, 0) = &quot;Darlehen:&quot;\r\nvarTexte(1, 0) = &quot;Zinssatz:&quot;\r\nvarTexte(2, 0) = &quot;Tilgungssatz:&quot;\r\nvarTexte(3, 0) = &quot;Sondertilgung:&quot;\r\nvarTexte(0, 1) = dblDarlehen\r\nvarTexte(1, 1) = dblZinssatz\r\nvarTexte(2, 1) = dblTilgungssatz\r\nvarTexte(3, 1) = dblSondertilgung<\/pre>\n<p>Ist diese Aufgabe erst erledigt, ist der Rest ein Einzeiler: <\/p>\n<pre>.Range(&quot;A1:B4&quot;).Value = varTexte()<\/pre>\n<p>Wir f&uuml;llen also die im Array enthaltenen Werte auf einen Schlag in einen Bereich des Tabellenblatts. Die Dimension des Arrays und die des angegebenen <b>Range<\/b>-Objekts m&uuml;ssen nat&uuml;rlich &uuml;bereinstimmen.<\/p>\n<p>Anschlie&szlig;end formatieren wir die vier mit Zahlenwerten gef&uuml;llten Zellen:<\/p>\n<pre>.Range(&quot;B1&quot;).NumberFormatLocal = &quot;#.##0,00 \"&not;&quot;\r\n.Range(&quot;B2&quot;).NumberFormatLocal = &quot;0,00%&quot;\r\n.Range(&quot;B3&quot;).NumberFormatLocal = &quot;0,00%&quot;\r\n.Range(&quot;B4&quot;).NumberFormatLocal = &quot;#.##0,00 \"&not;&quot;<\/pre>\n<p>Anschlie&szlig;end f&uuml;llen wir die Zellen mit den Spalten&uuml;berschriften des Tilgungsplans. Dies geschieht wiederum &uuml;ber ein Array, allerdings &uuml;ber eines, das wir in der gleichen Zeile erst erzeugen. Dazu verwenden wir die <b>Array<\/b>-Funktion von VBA. Diese f&uuml;gt die als Parameter angegebenen und durch Kommata getrennten Werte zu einem Datenfeld zusammen. Auch bei der Definition des <b>Range<\/b>-Objekts und somit des Bereichs, der mit dem Inhalt des Arrays gef&uuml;llt werden soll, gehen wir zur Abwechslung einen anderen Weg. Wir definieren die linke obere und die rechte untere Zelle mit der <b>Cells<\/b>-Anweisung und somit unter Verwendung absoluter numerischer Koordinaten:<\/p>\n<pre>.Range(Cells(5, 1), _\r\nCells(5, 7)).Value = Array(&quot;Lfd. Nr.:&quot;, _\r\n&quot;Monat\/Jahr:&quot;, &quot;Rate:&quot;, &quot;Zinsen:&quot;, _\r\n&quot;Tilgung:&quot;, &quot;Sondertilgung:&quot;, &quot;Restschuld:&quot;)<\/pre>\n<p>Anschlie&szlig;end k&uuml;mmern wir uns wieder um die erste Zeile des Tilgungsplans, die auch hier von den &uuml;brigen Zeilen abweicht, weil sie ihre Werte teilweise aus den im Kopfbereich der Tabelle enthaltenen Daten bezieht und nicht, wie die folgenden Zeilen, aus der jeweils dar&uuml;ber liegenden Zeile.<\/p>\n<p>Die laufende Nummer ist einfach:<\/p>\n<pre>.Cells(6, 1) = 1<\/pre>\n<p>Die Angabe des Monats und des Jahres erfolgt direkt auf Basis entsprechender VBA-Funktionen:<\/p>\n<pre>.Cells(6, 2) = _\r\nCStr(Month(Date) &amp; &quot;\/&quot; &amp; Year(Date))<\/pre>\n<p>Bei der Rate sto&szlig;en wir auf die erste von zahlreichen, noch folgenden Formeln. Diese weisen wir &uuml;ber die Eigenschaft <b>FormulaR1C1 <\/b>der Zelle zu. Eine Formel enth&auml;lt unter Excel meist Bez&uuml;ge zu anderen Feldern, die sich auf verschiedene Arten ausdr&uuml;cken lassen &#8211; zum Beispiel wie hier durch die <b>Z1S1<\/b>-Notation. Dabei steht <b>Z <\/b>f&uuml;r Zeile und <b>S <\/b>f&uuml;r Spalte. Die englische Variante bezieht sich auf <b>Rows <\/b>und <b>Columns <\/b>und hei&szlig;t deshalb <b>R1C1<\/b>-Notation, entsprechende Formeln gibt man daher f&uuml;r die Eigenschaft <b>FormulaR1C1 <\/b>ein.<\/p>\n<p>F&uuml;r die Tilgung in der ersten Zeile verwendet die Prozedur die folgende Formel: <\/p>\n<pre>.Cells(6, 3).FormulaR1C1 = _\r\n&quot;=(R2C2 + R3C2) * R1C2 \/ 12&quot;<\/pre>\n<p>Dies entspricht der Summe aus Zinssatz (Zeile 2, Spalte 2) und Tilgungssatz (Zeile 3, Spalte 2) multipliziert mit dem Darlehensbetrag (Zeile 1, Spalte 2) dividiert durch 12.<\/p>\n<p>Die Zinsen f&uuml;r den ersten Monat und die Tilgung werden so berechnet:<\/p>\n<pre>.Cells(6, 4).FormulaR1C1 = &quot;=R1C2 * R2C2 \/ 12&quot;\r\n.Cells(6, 5).FormulaR1C1 = &quot;=R1C2 * R3C2 \/ 12&quot;<\/pre>\n<p>Die Sondertilgung wird ebenfalls automatisch eingetragen. Daf&uuml;r sorgt die folgende Formel, die innerhalb einer <b>IF<\/b>-Bedingung abfragt, ob der Monat (vierte Zelle links relativ zur aktuellen Zelle) den Wert <b>12 <\/b>aufweist und somit dem Dezember entspricht. Ist dieser Ausdruck wahr, erh&auml;lt die Zelle den Wert des in Zeile 4, Spalte 2 angegebenen Sondertilgungssatzes, sonst <b>0<\/b>:<\/p>\n<pre>.Cells(6, 6).FormulaR1C1 = _\r\n&quot;=IF(MONTH(RC[-4])=12,R4C2,0)&quot;<\/pre>\n<p>Schlie&szlig;lich berechnet die folgende Formel basierend auf der im Kopf angegebenen Darlehenssumme und den links von der aktuellen Zelle zu findenden Tilgungsbetr&auml;gen die Restschuld:<\/p>\n<pre>.Cells(6, 7).FormulaR1C1 = _\r\n&quot;=R1C2 - RC[-2] - RC[-1]&quot;<\/pre>\n<p>Und nun wird es interessant: Wir k&uuml;mmern uns um die folgenden 1.000 Zeilen. Ja, Sie haben richtig gelesen: 1.000 Monate sollen ja wohl ausreichen, um einen Betrag zu tilgen. Warum durchlaufen wir nicht einfach wieder eine Schleife so lange, bis die Restschuld kleiner <b>0 <\/b>und das Darlehen somit inklusive Zinsen zur&uuml;ckgezahlt wurde<\/p>\n<p>Der Grund ist einfach: Weil wir dann wie im ersten L&ouml;sungsansatz wiederum eine Schleife brauchen, die jede Zeile einzeln schreibt &#8211; bis das Abbruchkriterium erf&uuml;llt ist. Das dauert aber sehr lange. Und es ist auch nicht n&ouml;tig: Mittlerweile wissen wir, dass wir die Zellen mit Formeln f&uuml;llen m&ouml;chten, die ihr Ergebnis jeweils aus der Restschuld der vorherigen Zeile und den Tilgungen der aktuellen Zeile berechnen.<\/p>\n<p>Wenn wir da mit Formeln arbeiten, welche die verwenden Zellen nicht absolut (also etwa mit <b>R1C1<\/b>), sondern relativ ermitteln (etwa <b>R[-1]C <\/b>oder <b>RC[-3]<\/b>), k&ouml;nnten die Formeln sogar in allen Zeilen je Spalte gleich lauten.<\/p>\n<p>F&uuml;r die Spalte mit der laufenden Nummer k&ouml;nnte dies, zun&auml;chst f&uuml;r eine Zelle, etwa so aussehen:<\/p>\n<pre>.Range(&quot;A7:A7&quot;).FormulaR1C1 = &quot;=R[-1]C + 1&quot;<\/pre>\n<p>Dies schreibt in die Zelle <b>A7 <\/b>die Formel <b>=R[-1]C + 1<\/b>, was nichts anderes bedeutet, als dass diese Zelle den Wert der dar&uuml;ber liegenden Zelle plus eins anzeigen soll. Nun brauchen wir dies aber nicht nur f&uuml;r eine Zelle, sondern am besten gleich f&uuml;r knapp 1.000 Zellen. Dazu brauchen Sie einfach nur den Range entsprechend zu formatieren:<\/p>\n<pre>.Range(&quot;A7:A1000&quot;).FormulaR1C1 = &quot;=R[-1]C + 1&quot;<\/pre>\n<p>Fertig &#8211; die erste Zeile w&auml;re geschafft. Das Gleiche erledigen wir nun f&uuml;r die folgenden Spalten. Den Monat und das Jahr f&uuml;r die aktuelle Zeile liefert diese Formel, die sich das Datum aus der Zelle der dar&uuml;ber liegenden Zeile holt, ebenso das Jahr, den um eins erh&ouml;hten Monat und den Tag und diese zu einem neuen Datum zusammensetzt:<\/p>\n<pre>.Range(&quot;B7:B1000&quot;).FormulaR1C1 = _\r\n&quot;=DATE(YEAR(R[-1]C),MONTH(R[-1]C)+1,DAY(R[-1]C))&quot;<\/pre>\n<p>Die Formatierung in der Form <b>mmmm yyyy <\/b>wird sp&auml;ter erledigt. Die Formel f&uuml;r die Rate ist wiederum einfach. Sie enth&auml;lt schlicht den Wert der dar&uuml;ber liegenden Zelle:<\/p>\n<pre>.Range(&quot;C7:C7&quot;).FormulaR1C1 = &quot;=R[-1]C&quot;<\/pre>\n<p>Die Zinsen errechnen sich aus der Restschuld der vorherigen Zeile (also <b>R[-1]C7<\/b>) und dem Zinssatz aus dem Tabellenkopf (<b>R2C2<\/b>, nicht zu verwechseln mit <b>R2D2<\/b>) durch 12:<\/p>\n<pre>.Range(&quot;D7:D7&quot;).FormulaR1C1 = _\r\n&quot;=R[-1]C7 * R2C2 \/ 12&quot;<\/pre>\n<p>Die Tilgung stammt komplett aus der aktuellen Zeile, und zwar aus der Differenz der beiden links neben der aktuellen Zelle liegenden Zellen:<\/p>\n<pre>.Range(&quot;E7:E7&quot;).FormulaR1C1 = &quot;=RC[-2] - RC[-1]&quot;<\/pre>\n<p>Fehlt noch die Sondertilgung, deren Wert viel einfacher als der der eher VBA-basierten ersten L&ouml;sung zu ermitteln ist &#8211; und zwar mit einer einfachen <b>IF<\/b>-Abfrage, die pr&uuml;ft, ob das Datum in der Zelle vier Positionen neben der aktuellen Zelle den Monat <b>12 <\/b>enth&auml;lt. Ist dies der Fall, schreibt die Formel den im Kopf (<b>R4C2<\/b>) angegebenen Sondertilgungsbetrag in das Feld, sonst den Wert <b>0<\/b>:<\/p>\n<pre>.Range(&quot;F7:F7&quot;).FormulaR1C1 = _\r\n&quot;=IF(MONTH(RC[-4])=12,R4C2,0)&quot;<\/pre>\n<p>Schlie&szlig;lich ermittelt die n&auml;chste Formel die neue Restschuld:<\/p>\n<pre>.Range(&quot;G7:G7&quot;).FormulaR1C1 = _\r\n&quot;=R[-1]C - RC[-2] - RC[-1]&quot;<\/pre>\n<p>Lassen wir die Prozedur in der aktuellen Fassung durchlaufen, erhalten wir in rasender Geschwindigkeit die Excel-Tabelle aus Bild 3.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2009_06\/TilgenMitAccessUndExcel-web-images\/pic003_opt.jpeg\" alt=\"pic003.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3: Nach Abzahlung des Darlehens wird lustig weitergetilgt.<\/span><\/b><\/p>\n<p>Wir legen dort besonderes Augenmerk auf den Bereich, in dem die Restschuld das Vorzeichen wechselt, und stellen fest, dass nach dem Monat der vollst&auml;ndigen R&uuml;ckzahlung des Darlehens noch viele Zeilen folgen &#8211; genau genommen bis zur tausendsten Zeile der Tabelle.<\/p>\n<p>Das soll nat&uuml;rlich nicht so sein, ist aber im aktuellen Zustand das Opfer, das wir f&uuml;r den Zugewinn an Geschwindigkeit bringen mussten: Da wir w&auml;hrend des &#8222;blinden&#8220; F&uuml;llens der Tabellenzeilen keine Pr&uuml;fung vornehmen, wann die Restschuld negativ wird, k&ouml;nnen wir an dieser Stelle auch nicht abbrechen.<\/p>\n<p>Es gibt jedoch eine L&ouml;sung, die eng mit den in dieser Variante verwendeten Formeln zusammenh&auml;ngt. Sie haben ja bereits die <b>IF<\/b>-Funktion kennengelernt, mit der Sie einen von zwei Werten in Abh&auml;ngigkeit vom Ergebnis der Bedingung ausgeben k&ouml;nnen. Warum also nicht pr&uuml;fen, ob die Restschuld in der vorherigen Zeile nicht bereits negativ ist, und in diesem Fall einfach keinen Wert statt der mit den obigen Formeln ermittelten Werte ausgeben<\/p>\n<p>Genau dies erledigen die Versionen unserer Formeln f&uuml;r die sieben Spalten aus Listing 3. Sie pr&uuml;fen allerdings nicht nur, ob der Wert der Spalte mit der Restschuld in der dar&uuml;ber liegenden Zeile negativ ist, sondern auch, ob dort &uuml;berhaupt ein Wert angezeigt wird.<\/p>\n<p>Sonst erhalten wir hinter der ersten negativen Restschuld n&auml;mlich eine leere Zeile, und dann eine Reihe von Zellen mit dem Inhalt <b>#Wert!<\/b> &#8211; die Zelle mit der Restschuld der dar&uuml;ber liegenden Zeile w&auml;re dann n&auml;mlich leer, und hier hat Excel dann offensichtlich Schwierigkeiten zu entscheiden, ob dies nun ein positiver oder negativer Wert ist.<\/p>\n<p>Also erweitern wir die Bedingung so, dass diese pr&uuml;ft, ob die entsprechende Zelle einen negativen oder gar keinen Wert anzeigt (siehe Bild 4).<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2009_06\/TilgenMitAccessUndExcel-web-images\/pic004_opt.jpeg\" alt=\"pic004.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4: Hier endet die Tilgungsberechnung an der richtigen Stelle. <\/span><\/b><\/p>\n<p>Fehlt nur noch die Formatierung der Zellen, die aber mit den letzten beiden Zeilen aus Listing 3 schnell erledigt ist &#8211; immerhin brauchen wir ja nur zwei <b>Range<\/b>-Objekten die Formatierung zuzuweisen.<\/p>\n<p><b>Zusammenfassung und Ausblick<\/b><\/p>\n<p>Die einfache Tilgung ist erledigt &#8211; Sie k&ouml;nnen die vier Faktoren Darlehenssumme, Zins- und Tilgungssatz sowie j&auml;hrliche Sondertilgungen angeben und per Mausklick einen Tilgungsplan erzeugen.<\/p>\n<p>Au&szlig;erdem k&ouml;nnen Sie in der resultierenden Excel-Tabelle Hand anlegen: Sie k&ouml;nnen dort die vier eingegebenen Informationen anpassen oder auch beliebige Sondertilgungen in den gesamten Tilgungsplan einbauen.<\/p>\n<p>Mit ein wenig Geschick k&ouml;nnen Sie &auml;nderungen vornehmen und Varianten einbauen.<\/p>\n<p>Vorschl&auml;ge gibt es genug: Sie k&ouml;nnen beispielsweise Finanzierungen bestehend aus mehreren Bausteinen und unterschiedlichen Parametern in mehreren Tabellenbl&auml;ttern eintragen und in einem weiteren die Gesamtbelastung je Monat ausgeben lassen.<\/p>\n<p>Oder Sie bauen weitere, im Formular der Anwendung verf&uuml;gbare Parameter ein, mit denen Sie etwa eine tilgungsfreie Anlaufzeit definieren oder festlegen, in welchen Intervallen die Raten gezahlt werden m&uuml;ssen (bei Banken normalerweise monatlich, bei KfW-Krediten jedes Quartal).<\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<p class=\"kastentabelleheader\">Listing 2: Ger&uuml;st der Prozedur zum Erstellen von Tilgungspl&auml;nen, schnelle Version<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<pre>Public Sub TilgungsplanErstellen_Schnell( _\r\ndblZinssatz As Double, _\r\ndblDarlehen As Double, _\r\ndblTilgungssatz As Double, _\r\ndblSondertilgung As Double)\r\nDim objExcel As Excel.Application\r\nDim objWorkbook As Excel.Workbook\r\nDim objSheet As Excel.Worksheet\r\nDim varTexte(3, 1) As Variant\r\nSet objExcel = New Excel.Application\r\nSet objWorkbook = objExcel.Workbooks.Add\r\nSet objSheet = objWorkbook.Worksheets(1)\r\nobjExcel.Visible = True\r\nWith objSheet\r\n''Hier wird das Tabellenblatt gef&uuml;llt.\r\nEnd With\r\nobjWorkbook.Close\r\nobjExcel.Quit\r\nEnd Sub<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>Tilgen.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/{F5459B13-A24E-4391-A358-7249EE729276}\/aiu_695.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wer ein Haus, ein Auto oder auch nur einen neuen Computer kauft, wird dies m&ouml;glicherweise &uuml;ber ein Darlehen finanzieren. Wer wissen will, wie lange ein Kredit unter verschiedenen Bedingungen l&auml;uft und wann welcher Betrag abgezahlt ist, kann eines der vielen Online-Portale zu diesem Thema befragen. Dem Access-Entwickler macht es aber nat&uuml;rlich viel mehr Spa&szlig;, dies mit Access zu erledigen &#8211; und dabei gleich noch Excel mit ins Boot zu holen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662009,66062009,44000026,44000027],"tags":[],"class_list":["post-55000695","post","type-post","status-publish","format-standard","hentry","category-662009","category-66062009","category-Interaktiv","category-Loesungen"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Tilgen mit Access und Excel - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tilgen mit Access und Excel\" \/>\n<meta property=\"og:description\" content=\"Wer ein Haus, ein Auto oder auch nur einen neuen Computer kauft, wird dies m&ouml;glicherweise &uuml;ber ein Darlehen finanzieren. Wer wissen will, wie lange ein Kredit unter verschiedenen Bedingungen l&auml;uft und wann welcher Betrag abgezahlt ist, kann eines der vielen Online-Portale zu diesem Thema befragen. Dem Access-Entwickler macht es aber nat&uuml;rlich viel mehr Spa&szlig;, dies mit Access zu erledigen - und dabei gleich noch Excel mit ins Boot zu holen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T22:19:00+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg04.met.vgwort.de\/na\/869a36059b904781aaff60f259b94d6c\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"21\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tilgen_mit_Access_und_Excel\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tilgen_mit_Access_und_Excel\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Tilgen mit Access und Excel\",\"datePublished\":\"2020-05-22T22:19:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tilgen_mit_Access_und_Excel\\\/\"},\"wordCount\":3171,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tilgen_mit_Access_und_Excel\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/869a36059b904781aaff60f259b94d6c\",\"articleSection\":[\"2009\",\"6\\\/2009\",\"Interaktiv\",\"L\u00f6sungen\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Tilgen_mit_Access_und_Excel\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tilgen_mit_Access_und_Excel\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tilgen_mit_Access_und_Excel\\\/\",\"name\":\"Tilgen mit Access und Excel - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tilgen_mit_Access_und_Excel\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tilgen_mit_Access_und_Excel\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/869a36059b904781aaff60f259b94d6c\",\"datePublished\":\"2020-05-22T22:19:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tilgen_mit_Access_und_Excel\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Tilgen_mit_Access_und_Excel\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tilgen_mit_Access_und_Excel\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/869a36059b904781aaff60f259b94d6c\",\"contentUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/869a36059b904781aaff60f259b94d6c\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tilgen_mit_Access_und_Excel\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tilgen mit Access und Excel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Tilgen mit Access und Excel - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/","og_locale":"de_DE","og_type":"article","og_title":"Tilgen mit Access und Excel","og_description":"Wer ein Haus, ein Auto oder auch nur einen neuen Computer kauft, wird dies m&ouml;glicherweise &uuml;ber ein Darlehen finanzieren. Wer wissen will, wie lange ein Kredit unter verschiedenen Bedingungen l&auml;uft und wann welcher Betrag abgezahlt ist, kann eines der vielen Online-Portale zu diesem Thema befragen. Dem Access-Entwickler macht es aber nat&uuml;rlich viel mehr Spa&szlig;, dies mit Access zu erledigen - und dabei gleich noch Excel mit ins Boot zu holen.","og_url":"https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T22:19:00+00:00","og_image":[{"url":"http:\/\/vg04.met.vgwort.de\/na\/869a36059b904781aaff60f259b94d6c","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"21\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Tilgen mit Access und Excel","datePublished":"2020-05-22T22:19:00+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/"},"wordCount":3171,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/#primaryimage"},"thumbnailUrl":"http:\/\/vg04.met.vgwort.de\/na\/869a36059b904781aaff60f259b94d6c","articleSection":["2009","6\/2009","Interaktiv","L\u00f6sungen"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/","url":"https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/","name":"Tilgen mit Access und Excel - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/#primaryimage"},"thumbnailUrl":"http:\/\/vg04.met.vgwort.de\/na\/869a36059b904781aaff60f259b94d6c","datePublished":"2020-05-22T22:19:00+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/#primaryimage","url":"http:\/\/vg04.met.vgwort.de\/na\/869a36059b904781aaff60f259b94d6c","contentUrl":"http:\/\/vg04.met.vgwort.de\/na\/869a36059b904781aaff60f259b94d6c"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Tilgen_mit_Access_und_Excel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Tilgen mit Access und Excel"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000695","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000695"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000695\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000695"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000695"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000695"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}