Excelfunktionen VBA (veraltet)

Documentação •
Neste artigo


Benutzerdefinierte Excelfunktionen erlauben, auf einfachste Weise in Echtzeit Werte aus Banana Buchhaltung zu übernehmen.
Sie aktualisieren Ihre Buchhaltung und auch die Daten Ihrer Exceldatei werden sofort aktualisiert. Auf dem Mac funktioniert das leider nicht.

Die aktuellsten technischen Informationen finden Sie auf der Seite in englischer Sprache.

Beispiel Kosten geteilt pro Kunde

Mit der Funktion ExcelSync werden Formeln verwendet, welche die aktualisierten Salden direkt aus Banana Buchhaltung übernehmen.                                    

Die Excel-Tabelle wird gemäss den letzten, in die Buchhaltung eingegebenen Daten, aktualisiert.

Benutzerdefinierte Excelfunktionen

Benutzerdefinierte Funktionen (UDF - user-defined functions) sind kleine Visual-Basic-Programme (oder Makros) die Excel erweitern und ermöglichen, in den Zellen Formeln einzufügen.

Dank den benutzerdefinierten Funktionen (UDF) werden Sie in Excel Formeln schreiben und bestimmte Daten direkt aus Banana Buchhaltung übernehmen können.

  • Es ist nicht mehr nötig, Daten in Excel zu übertragen (oder zu importieren, zu kopieren und einzufügen).
  • Wird die Buchhaltung geändert, wird das Excel-Spreadsheet mit den neuen Werten gefüllt.
  • Benutzerfreundliche Formeln, mit denen Sie Werte pro Periode berechnen und leistungsstarke Tabellen zur Auswertung, Präsentation von Daten oder Erstellung von Diagrammen erstellen können.

Beispiel ansehen

  1. Excel-Spreadsheet mit Beispielsdateien herunterladen.
  2. Inhalt entpacken.
  3. Banana Buchhaltung starten.
  4. Das erste Mal Webserver aktivieren.
    (über Menü WerkzeugeBasiseinstellungen → Option Webserver starten aktivieren.
  5. Banana-Dateien company_2014.ac2 und company_2015.ac2 öffnen.
  6. Datei BananaSync.xlsm öffnen und das Makro aktivieren.
    Falls das Makro automatisch von Excel deaktiviert wird, müssen Sie Ihre Makro-Sicherheitseinstellungen ändern.
    Befolgen Sie gegebenenfalls die Anweisungen Registerkarte Entwicklertools im Menüband anzeigen
  7. Berechnen Sie das Excel-Blatt mit dem Makro "Recalculate" (Strg+R) neu.

So erstellen Sie Ihr eigenes Arbeitsblatt

  • Speichern Sie die Datei BananaSync.xlsm mit einem anderen Namen.
  • Öffnen Sie Ihre Banana Buchhaltungsdateien
  • In der Exceldatei ersetzen Sie den Namen (Zellen in Gelb) mit dem Namen Ihrer Buchhaltungsdatei.
  • Ändern Sie das Arbeitsblatt nach Ihren Bedürfnissen.
  • Mit der Schaltfläche Recalculate oder der Tastenkombination Ctrl+R berechnen Sie die Daten neu.

Funktionen anwenden

Parameter Dateiname

Wird Banana oder der Banana-Webserver nicht ausgeführt, braucht Excel etwas Zeit, um auf den  HTTP-Request zu antworten.

Um dieses Problem zu umgehen:

  • Die meisten Funktionen benutzen den Parameter Dateinamen.
    Bei leerem Dateinamen erfolgt keine http-Request.
  • Anstatt den Dateinamen zu übernehmen, verwenden Sie einen Verweis auf die Zelle, die die Formel =BFileName("myfile.ac2") enthält.
  • Wenn Banana nicht geöffnet ist, wird der BFileName in einem Leerstring resultieren, und es wird keine weitere Query gestartet.

Parameter Periode

Viele Funktionen benutzen den fakultativen Parameter Periode. Das kann sein:

  • Ein Leerstring. Anfangs- und Enddatum der Buchführung werden benutzt.
  • Ein Anfangs- und Enddatum in Form von yyyy-mm-dd/yyyy-mm-dd (z.B. “2015-01-01/2015-01-31”)
    Um einen Zeitraum zwischen zwei Exceldaten zu erstellen, verwenden Sie die Funktion BCreatePeriod.
  • Eine Abkürzung (M1, M2, Q1, Q2, Y1), die Monat, Quartal oder Jahr der Buchführung angibt.

Sie können die Funktion BCreatePeriod verwenden, um eine Periodenkette auf Basis des Datums von zwei Zellen zu erstellen.

Beschreibung der Funktionen

  • BAccountDescription(account[, column])
    Übernimmt die Beschreibung des genannten Kontos oder der Gruppe.
    Mit dem Parameter Column können Sie angeben, dass eine andere Spalte anstelle der Spalte Beschreibung übernommen werden soll.
    Beispiele:
    =BAccountDescription('1000')
    =BAccountDescription('1000', 'Gr1')
    =BAccountDescription('Summ.in=10')
    =BAccountDescription('1000', 'FiscalNumber')
  • BAmount(fileName, account, [,period ])
    Den auf Basis der BKlasse genormten Betrag abrufen..
  • BBalance(fileName account [, period])
    Für das angegebene Konto den Saldo per Ende der Periode aufrufen. 
    Das Ergebnis BBalance ist die Summe von BOpening + BTotal.
    Zum Übernehmen der buchhalterischen Daten in den Konten der Bilanz (Aktiva, Passiva).
    • Das Konto kann eine Kontonummer oder eine String mit mehreren Konten sein, getrennt durch das Zeichen "|".

      Es können normale Konten, Kostenstellen oder Segmente angeben werden.
    • Es können auch Wildcards (Platzhalter) und  'Summ.in=' gefolgt von der Buchhaltungsgruppe verwendet werden.
      Weitere Informationen finden Sie in der Beschreibung der Javascript-Funktion für currentBalance (Englisch).
    • Beispiele:
      “1000” “1000|1001” “10*|20*”  “Summ.in=10” “Summ.in=10|Summ.in=20” “Summ.in=1*”
      ".P1" ";C01|,C02",":S1|:S2"
      "1000:S1"
  • BBalanceGet(fileName, account, cmd, valueName [,period ])
    Mit dieser Funktion kann einfach auf alle übrigen von REST API zur Verfügung gestellten Daten wie 'Saldo' und 'Budget''  zugegriffen werden.
    Beispiele:
    =BAmount( FName, “1000”, “balance”, “currencyamount”)
    =BAmount( FName, “1000”, “balance”, “count”)
    =BAmount( FName, “1000”, “balance”, “debit”)
    =BAmount( FName, “1000”, “budget”, “debit”)
  • BBudgetAmount(fileName account [, period])
    Wie BAmount, verwendet jedoch Saldodaten anstelle von Buchhaltungsdaten
  • BBudgetBalance(fileName account [, period])
    Wie BBalance, verwendet aber Budgetdaten anstelle von Buchhaltungsdaten.
  • BBudgetInterest(filename, account, interestRate [, period])
    Wie BInterest, verwendet jedoch Budgetdaten anstelle von Buchhaltungsdaten
  • BBudgetOpening(fileName account [, period])
    Gleich wie BOpening, verwendet jedoch Budgetdaten anstelle der Buchhaltungsdaten.
  • BBudgetTotal(fileName account [, period])
    Gleich wie BTotal, verwendet  jedoch Budgetdaten anstelle der Buchhaltungsdaten.
  • BCellValue(fileName, table, rowColumn, column)
    Übernimmt den Inhalt einer Zelle der Tabelle.
    Beispiele:
    =BCellValue(FName, “Accounts”, 2, “Description”)
    =BCellValue(FName, “Accounts”, “Account=1000”, “Description”)
    =BCellValue(FName, “Accounts”, “Group=10”, “Description”)
  • BCreatePeriod( startDate, endDate)
    Nimmt die Daten von zwei Zellen und erstellt eine Periodenstring
    =BCreatePeriod(D4, D5)
  • BDate(isoDate)
    Konvertiert Iso-Daten in Excel-Daten.
  • BFileName(fileName [, disable connection])
    Übernimmt den FileName oder ein Leerstring, wenn keine Verbindung zum Webserver besteht oder wenn die Datei nicht korrekt ist.
    Wenn der Wert von disableConnection nicht ausgewählt wird, gibt diese Funktion einen Leerstring.
    Verwenden Sie die Zellen, die das Ergebnis dieser Funktion enthalten, als Parameter für den Dateinamen, wenn Sie die anderen Funktionen verwenden. Ist Banana nicht offen, wird nur ein Anruf gemacht und Excel wartet nicht für eine lange Zeit.
  • BFunctionsVersion()
    Übernimmt die Version der Funktion im Datumsformat.
  • BInfo(fileName, sectionXml, idXml)
    Informationen betreffend Dateieigenschaften abrufen.
    Beispiele:
    =BInfo( FName, “Base”, “HeaderLeft”)
    =BInfo( FName, “Base”, “DateLastSaved”)
    =BInfo( FName, “AccountingDataBase”, “OpeningDate”)
    =BInfo( FName, “AccountingDataBase”, “BasicCurrency”)
  • BInterest(filename, account, interestRate [, period])
    Den Zins für dieses Konto für die definierte Zeitspanne berechnen.
    • das Konto kann ein beliebiges Konto sein, wie in BBalance angegeben
    • die Berechnung von interestRate als Prozentsatz
      • > 0 Zinsen auf Sollbeträgen berechnen
      • < 0 Zinsen auf Habenbeträgen berechnen
  • BOpening(filename, account [period])
    Saldo für Saldo zu Beginn der Periode für angegebenes Konto abrufen.
  • BQuery(fileName, query)
    Das Ergebnis einer frei definierten Abfrage zurücksenden.
    Beispiele:
    =BQuery(FName;"startperiod?M1”)
    =BQuery(FName;"startperiod?M1”)
  • BTotal(filename, account [,period])
    Übernimmt die Bewegung der Periode.
    Sollte verwendet werden, um die Daten für die Erfolgsrechnungskonten (Aufwand und Ertrag) abzurufen.
  • BVatBalance(filename, vatCode, vatValue [, period])
    Übernimmt einen Wert in Bezug auf einen definierten MwSt-Code (=Mehrwertsteuerbetrag) (oder mehrere MwSt-Codes).
    'vatValue' kann 'taxable', 'amount', 'notdeductible' oder 'posted' sein.
    Beispiele:
    =BVatBalance( FName, “V10”, “taxable”)
    =BVatBalance( FName, “V10|V20”, “posted”)

Neu berechnen

Die automatische Neuberechnung aktualisiert die Daten der Buchhaltungsdatei nicht.
Für aktualisierte Daten wählen Sie das Makro RecalculateAll(), welches die Application.CalculateFullRebuild-Methode aufruft.

Die Musterdateien enthalten eine Schaltfläche Recalculate, welche das Makro RecalculateAll aufruft.

Hostname von Banana und Anschluss

Web-Server-Daten werden von 'localhost:8081' abgerufen.

Es kann ein anderer Host angegeben werden, indem ein anderer Wert in die Zelle mit Namen 'BananaHostName' eingegeben wird.

Funktionen ändern oder eigene hinzufügen

Funktionen sind im Visual-Basis-Modul 'Banana' definiert.
Wir können dieses Modul aktualisieren und neue Funktionen hinzufügen.

Eigene Funktionen sind vorzugsweise in Ihrem Modul hinzuzufügen.

Für den Zugriff zu den Funktionen Makro des Visual-Basic aktivieren Sie die Makros.

Um die Funktionen anzuzeigen und zu bearbeiten, muss man die Registerkarte Entwicklertools im Menüband  anzeigen.

Historie der Versionen

  • 2014-07-24 erste Veröffentlichung
  • 2015-02-28 Aktualisierung neue Version mit neuen Funktionen
  • 2015-05-12 Aufruf zum Webserver erfordert v1
  • 2015-05-12 Entwickung auf GitHub verschoben
  • 2015-05-25 Geänderte BAmount-Funktion für die Verwendung von BClass
  • 2015-10-04 B Date-Funktion hinzugefügt

Help us improve the documentation

We welcome feedback on how to improve this page.

Tell us what theme needs a better explanation or how to clarify a topic.

Share this article: Twitter | Facebook | LinkedIn | Email