Kategorien
Allgemein

Belegmanager pro: automatische Belegnummer (Kurzbefehl-Tutorial)

Vor gut anderthalb Jahren habe ich mein Tutorial zum Belegmanager-Kurzbefehl vorgestellt. In den Folgevideos habe ich dann noch zusätzliche Funktionen nachgerüstet, etwa um die Adresse des Geschäfts zu erfassen oder mehrseitige Belege zu scannen.

Bis heute ist es mein beliebtestes Projekt bei YouTube. Und es gab zusätzliche Fähigkeiten, die Ihr Euch für die Quittungserfassung gewünscht habt. Einer der häufigsten Wünsche: Eine laufende Belegnummer. Dafür muss der Kurzbefehl herausfinden können, was er im letzten Durchlauf für eine Zahl verwendet hat.

Damit das gelingt, fange ich nochmal ganz von vorn an, verzichte auf die Aktionen der Tabellenkalkulation Numbers und wechsle auf das Klartextformat CSV.

Youtube-Video: Belegmanager pro (öffnet in neuem Fenster)

Ich führe das wieder am iPad vor mit drahtloser Tastatur und Trackpad, dann könnt Ihr am besten erkennen, was ich gerade mache. Am iPhone gelingt das genauso – und seit macOS 12, Monterey, auch am Mac. Da sieht’s halt nur etwas anders aus.

Ich starte in der Bibliothek-Ansicht und füge mit dem Plus einen neuen Kurzbefehl hinzu. Als erstes kläre ich mal die Formalitäten: Name, Farbe, Icon. Ich nenne ihn Belegmanager pro.

Zuerst baue ich die beiden Kernfunktionen des Belegmanagers auf: Erstens will ich ein Bild von meiner Quittung aufnehmen und speichern. Zweitens: Der Kurzbefehl soll mich beim Ausführen nach Beschreibung, Kategorie und Preis fragen. Diese Infos schreibt er dann zusammen mit dem Datum in eine Tabelle und verwendet sie gleichzeitig, um dem Belegfoto einen passenden Namen zu geben.

Wie das mit Apples Tabellenkalkulation „Numbers“ funktioniert, habe ich bereits in einem Video beschrieben – das taucht jetzt oben rechts auf. Nun will ich die Resultate aber in einer Text-Datei unterbringen. Das Bild zu sichern ist für mich nichts Neues, darum fange ich mit dem Sammeln der Infos für die Tabelle an.

Daten sammeln

Für die Tabelle soll der Kurzbefehl weiterhin Beschreibung, Preis und Kategorie abfragen. Ich erleichtere mir den Start, indem ich die ersten beiden „Nach Eingabe fragen“ Aktionen aus dem bestehenden Belegmanager kopiere.

Dafür wechsle ich zurück in die Übersicht, tippe lange auf den Belegmanager und wähle „Fenster anzeigen“. Dann erscheint er rechts im Bildschirm. Links tippe ich nun das Bearbeiten-Icon im Belegmanager pro an, so dass ich beide Kurzbefehle nebeneinander habe. Jetzt rechts ziemlich weit nach unten scrollen – und dann die Aktion von rechts nach links rüberziehen. Unter iOS 15 kann es manchmal etwas fummelig sein, den richtigen Ablageort zu finden. Erst wenn oben rechts an der Aktion das grüne Plus erscheint, kann ich sie loslassen und sie wird kopiert.

Für die Kategorie nutze ich die beiden Aktionen „Liste“ und „Aus Liste auswählen“. Neu kommt dann noch die Belegnummer dazu – für die erste Quittung lege ich einen Startwert fest mit der Aktion „Zahl“. Die Antworten fasse ich – wie beim alten Belegmanager – in einem zweiten Listenobjekt zusammen. Das Datum steht am Anfang, dafür gibt es eine Standardvariable. Ich muss nur das Format einstellen.

Diesmal lasse ich die Uhrzeit mit drin. Die einzelnen Listenobjekte verknüpfe ich nun über magische Variablen mit den einzelnen Dateneingaben und der Belegnummer. Sie bekommen dabei von mir individuelle Namen. Bei Preis und Beschreibung muss ich das übrigens nicht – beim Kopieren aus dem alten Belegmanager kamen die Variablennamen mit rüber.

Nun muss ich die einzelnen Listenelemente in eine Zeile zusammenfügen – und sie durch ein Zeichen trennen, das nicht im Text vorkommt. Das kann die Aktion „Text kombinieren“. Als Trennsymbol verwende ich das Semikolon. Denn obwohl CSV für Comma-separated Values steht, also durch Komma getrennte Werte, funktioniert das auch bestens mit Semikolon oder Tabulator.

Meine beste Freundin beim Gestalten neuer Kurzbefehle, die Übersicht-Aktion, soll mir dann beim ersten Testlauf das Resultat anzeigen. Und für den bin ich jetzt auch bereit. Okay, die Fragen kommen rein, ich gebe erst Text, dann eine Zahl ein und wähle schließlich aus einer Liste aus – und als Resultat gibt es eine Zeile Text mit Datum, Uhrzeit, der Platzhalter-Belegnummer und den Werten, fein säuberlich durch Semikola getrennt.

Tabelle anlegen

Die nächste Herausforderung ist die Text-Datei, in der die Werte landen sollen. Dafür lege ich einen zweiten Kurzbefehl an, der sie mir erzeugt und gleich mit Spaltentiteln füllt.

Also zurück in die Kurzbefehl-Sammlung, neuer Kurzbefehl, dieser heißt jetzt „Neue Beleg-Tabelle“. In einer Text-Aktion entsteht jetzt die erste Zeile der Tabelle – wieder mittels Semikola getrennt. Daraus wird dann eine Textdatei. Dann noch die Aktion „Datei sichern“. Für den Dateinamen verwende ich das Wort „aktuell“. Um die Dateiendung kümmert sich die Aktion selbst, ob Ihr es wollt oder nicht – auch wenn Ihr ein .csv an den Namen anhängt, macht sie eine .txt-Datei daraus.

Der Kurzbefehl muss heute nur ein einziges Mal laufen. Zum Zugucken wische ich mal die Dateien-App rein. Dann starte ich ihn – und zack, weg ist die Kurzbefehle-App. Aber nicht der Auftrag: Der Kurzbefehl funktioniert und erzeugt im Ordner Shortcuts die Datei namens aktuell.txt mit den Spaltentiteln.

Damit bin ich für auch schon fertig mit diesem Kurzbefehl. Jetzt geht’s wieder weiter mit dem „Belegmanager pro“.

Zeile sichern

Als Nächstes suche ich die Aktion „An Textdatei anfügen“ in der Kategorie „Dokumente“. In der Beschreibung zu der Aktion steht übrigens, wenn die Zieldatei nicht existiere, würde die Aktion sie neu anlegen. Das hat bei mir in iOS 15.1 leider nie geklappt. Darum das Ganze mit dem separaten Kurzbefehl – aber so kommen dann auch gleich die Spaltentitel dazu. Diese Aktion erwartet zwei Eingaben: zuerst den Zielordner, und als zweites den anzuhängenden Text. Das seltsame Format ist wohl einer missratenen Übersetzung geschuldet, ich habe das erst nach einigem Herumprobieren gerafft. Aber so geht’s!

Darunter legt Ihr noch fest, wie die zu ergänzende Datei heißt („aktuell.txt“ – und hier müsst Ihr die Endung unbedingt reinschreiben), und ob eine neue Zeile angelegt werden soll (ja!). Ich ziehe wieder die Dateien-App herein, um dann den Kurzbefehl auszuführen, damit ich das Ergebnis live mitverfolgen kann.

Beleg umbenennen und sichern

Nun geht es an die Dateiverwaltung. Um nicht jedes Mal beim Ausprobieren einen Beleg fotografieren zu müssen, habe ich mir ein PDF namens „Beispielrechnung“ in den Ordner „Shortcuts“ gelegt. So lange ich noch am Basteln bin, verwende ich die Aktion „Datei“ am Anfang des Kurzbefehls, um dieses PDF zu importieren und sie dann mittels „Variable konfigurieren“ als Quittung zu verwenden. Das geht schneller und ist später dann ganz einfach ersetzt.

Jetzt muss ich einen Zielort für die Quittungen festlegen. Bisher habe ich den Ordner „Shortcuts/Belege“ verwendet. Ich bleibe erstmal dabei.

Fürs Ablegen der Datei kommt die Aktion „Datei sichern“ zum Einsatz. In der Standardansicht hat sie nur ein Eingabefeld. Dieses Feld verhält sich unterschiedlich, je nachdem, wie ich es berühre: Kurzes Tippen öffnet die Dateien-Auswahl, langes Tippen öffnet das Kontext-Menü. Darin könnt Ihr „Magische Variable“ auswählen und dann die Quittungsdatei weiter oben im Kurzbefehl aussuchen.

Tippt danach noch auf das Aufklappsymbol, um der Datei einen Ort und einen Namen zu geben. Automatisch wird der Ordner „Kurzbefehle“ als Ziel ausgewählt, hier fehlt aber noch der Unterordner „Belege“ sowie der Dateiname. Den gebe ich hier gleich mal ein: Belege, Schrägstrich (damit lege ich den Unterordner fest), dann Datum, Unterstrich, Kategorie, Unterstrich, Beschreibung. Das ergibt dann den Dateinamen – Ihr müsst den nicht so lang machen wie ich und könnt Euch auch die Unterstriche sparen. Ganz wie’s Euch passt. Um die Endung kümmert sich der Kurzbefehl übrigens selbst.

So, jetzt kann ich das Ganze ausprobieren. Ich schaue mir das Resultat direkt in der Dateien-App an.

Belegnummer hochzählen

Bisher kann der Kurzbefehl nichts Neues im Vergleich zum alten. Aber gleich! Als nächstes zähle ich die Belegnummer hoch. Dafür muss ich den Inhalt der Datei einlesen, die neueste Belegnummer herausfiltern und um eins erhöht für den nächsten Beleg verwenden. Okay, schnallt Euch an, das wird

Erstmal importiere ich die CSV-Datei mit der Datei-Aktion. Für die zuletzt verwendete Belegnummer brauche ich die letzte Zeile. Dafür nutze ich die Aktion „Text aufteilen“. Das ist quasi das Gegenstück zu der „Text-Kombinieren“-Aktion. Sie wandelt den durchgehenden Text um in eine Liste. Ich zeige Euch das mal kurz, wieder mit der Aktion „Übersicht.“ Unten rechts zeigt mir das Symbol, dass ich mehrere Einträge habe, und ich kann zwischen den einzelnen Elementen hin- und herwischen. Ich will nur die letzte, also nehme ich die Aktion „Objekt aus Liste abrufen“ und wähle das letzte Objekt im Aufklappmenü.

Mit fünf aufeinanderfolgenden Aktionen kann ich einen definierten Tabellenwert aus einer CSV-Datei auslesen.

Wenn ich jetzt die Überblick-Aktion dahinterhänge und einen Probelauf starte, bekomme ich als Resultat keine Liste, sondern nur die eine, letzte Zeile.

Ihr sind die einzelnen Werte mit Semikola getrennt. Mit ihr wiederhole ich die Prozedur. In der Aktion „Text aufteilen“ wähle ich diesmal das Semikolon als Erkennungsmerkmal. Die Belegnummer ist in der zweiten Tabellenspalte , also wähle ich in der Aktion „Objekt aus Liste auswählen“ diesmal „Objekt an Index“ und gebe 2 ein.

Das Resultat kann ich dann mit der Berechnen-Aktion um einen hochzählen. Das verknüpfe ich nun als Wert in der Liste, die in die Tabelle gehen, lösche die Zahl-Aktion und voilá – der Kurzbefehl kann laufende Nummern!

Fürs Arbeiten mit echten Belegen schalte die Anzeige im Share-Sheet ein. Mit einer Wenn-Aktion bringe ich den Kurzbefehl dazu, dass er ein Foto macht, wenn es keinen Inhalt überreicht bekommt, und es dann als Quittung-Variable definiert. Dazu hatte ich schon mal ein ausführliches Tutorial gedreht.

Update: Bessere Startbedingungen

Im Nachhinein habe ich den Kurzbefehl noch einmal nachbearbeitet – Im Video seht Ihr die Anfänge im Zeitraffer. Die Probleme, die ich dabei löse, beziehen sich auf den ersten Start. Denn im Resultat läuft der Kurzbefehl, weil die CSV-Datei namens „aktuell.txt“ bereits im Ordner „Shortcuts“ auf der iCloud existiert, und weil dort sowohl Spaltentitel als auch der erste Eintrag mit Belegnummer vorhanden ist.

Damit der Kurzbefehl auch beim Herunterladen und ersten Ausprobieren funktioniert, habe ich zwei Wenn-Aktionen hinzugefügt. Die erste überprüft, ob die Datei „aktuell.txt“ existiert. Falls die importierte Datei „keinen Wert hat“, gibt es sie nicht, also erzeugt der Kurzbefehl sie, speichert sie und nutzt sie als Ziel für die Datensicherung. Falls die Datei schon da ist, geht es direkt mit ihr weiter.

Die Aktionen zum Anlegen der CSV-Dateien passen prima in den Kurzbefehl – die Wenn-Aktion erkennt, dass die Ziel-Datei nicht existiert.

Für den ersten Tabelleneintrag zählt der Kurzbefehl nach dem Aufteilen der Datei in einzelne Zeilen durch. Wenn er weniger als zwei Zeilen entdeckt (also nur die Spaltentitel), fragt er nach einer Zahl, mit der er loslegen soll.

Wenn es sich um die erste Eintragung handelt, fragt der Belegmanager pro nach einer Startnummer. Sonst zählt er die letzte Zahl hoch.

Wichtig ist, die jeweiligen Variablen (erstens die Datei, zweitens die Belegnummer) sauber zu verknüpfen. Besonders bei der Belegnummer müsst Ihr aufpassen, sie wird sowohl in der Tabelle als auch im Dateinamen verwendet. Dafür könnt Ihr innerhalb der Wenn-Aktion mit Hilfe von „Variable konfigurieren“ eine eigene benannte Variable festlegen. Oder Ihr verwendet die magische Variable „Wenn-Ergebnis“, denn was in einem der beiden Wenn-Blöcke als Letztes als Variable entsteht, könnt Ihr direkt weiterverwenden (und umbenennen wie jede andere magische Variable).

Das Wenn-Ergebnis habe ich in Tabelle und Dateiname als magische Variable eingebunden.

Kurzbefehl zum Herunterladen

Belegmanager pro 1.0

Erste Veröffentlichung. Benötigt zwingend die Datei „aktuell.txt“ im Shortcuts-Ordner, darin die Spaltentitel und einen ersten Eintrag – so wie die Version am Ende des Video-Tutorials.

04.11.2021

Legt beim ersten Durchlauf selbstständig eine CSV-Datei an, fragt beim ersten Eintrag nach der Start-Belegnummer.

11.11.2021

Mac-Seminare unterstützen

Von Immo Junghärtchen

Seit 1996 bin ich Mac-Anwender mit Begeisterung. Während meines Studiums habe ich mich um die Apple-Computer meiner Freundinnen und Freunde gekümmert und als Promoter im damaligen iTeam für iMacs, iBooks und die ersten iPods geworben. Bei Gravis sammelte ich Erfahrungen im Apple-zentrierten Einzelhandel, in Selbstständigkeit gab ich Kurse für Mac-Neulinge. Über sechs Jahre arbeitete ich als Redakteur für die Zeitschrift "Mac & i" und arbeite jetzt als freier Redakteur, unter anderem für Heise Online und die c't.

8 Antworten auf „Belegmanager pro: automatische Belegnummer (Kurzbefehl-Tutorial)“

Hallo,
Finde den „Belegmanager pro“ genial, benutze ihn erfolgreich. Besten Dank. Ich versuchte einen Befehl einzubauen um die Fotobelege zu überspringen, ist mir bis jetzt leider nicht gelungen. Bin sicher Du hast ein Lösungsvorschlag dafür.

Freut mich sehr, dass meine Kurzbefehl-Vorlage Dich weiterbringt! Es gibt mehrere Möglichkeiten, die Aufnahme zu überspringen. Am einfachsten ist wahrscheinlich die „Aus Menü auswählen“-Aktion, die recht weit ans Ende ziehst.
In der „Aus Menü auswählen“-Aktion legst Du zwei oder mehr Auswahlmöglichkeiten fest, die dann jeweils einen eigenen eingerückten Aktionsblock zugewiesen bekommen. Hier wählst Du „Foto“ oder „Kein Foto“ als die beiden einzigen Möglichkeiten. Danach ziehst Du die ganzen Aktionen zum Bild aufnehmen und Sichern in den Bereich „Foto“ ziehen. Den Bereich „Kein Foto“ kannst Du dann leer lassen.

Vorneweg möchte ich dir ein Riesenkompliment für deinen Belegmanager machen – er wird mir das Sammeln und Auflisten meiner Quittungen enorm erleichtern!!
Herzlichen Dank auch, dass du das Tutorial frei zugänglich gemacht hast!!

Grade bin ich dabei herauszufinden, wie man ein vergangenes Datum einstellen könnte (falls man liegengebliebene Belege nachträglich hinzufügen möchte!). Ich aber etwas tricky…oder?

Ich würde dir gerne einen kleinen Betrag zukommen lassen, finde aber nirgends eine Zahlungsfunktion?!?

Beste Grüße und gespannt auf weitere Belegmanager-Finessen
*v

Hallo Vladi, gute Idee! Das mit dem Datum bekommst Du mit drei zusätzlichen Aktionen hin – „Nach Eingabe fragen“, „Datum“ und „Aus Menü auswählen“. Die letzte nimmst Du, um zwischen „heute“ und „anderes Datum“ wählen zu lassen. In den jeweiligen Bereich innerhalb der Menü-Aktion ziehst Du „Datum“ (für heute) und „Nach Eingabe fragen“ (bei anderem Datum). Bei der letzten stellst Du dann den Eingabetyp auf Datum. Dann musst Du nur noch dafür sorgen, dass das Resultat der Menüaktion für die neue Zeile im Textdokument verwendet wird. Dafür löschst Du in der Liste die Variable „aktuelles Datum“, tippst auf „Variable auswählen“, und wählst dann „Menüergebnis“. Dann sollte es bereits funktionieren.

Danke für das Lob! Falls Du PayPal verwendest, kannst Du mir über Ko-Fi eine kleine Unterstützung schicken.

Hallo, vielen Dank für den Vorschlag zur Erweiterung. Auch ich bin großer Fan von deinem Tool !
Ich habe soeben versucht die Abfrage für das Kaufdatum einzutragen wie oben beschrieben, jedoch wird mir jetzt auch die aktuelle Uhrzeit mit abgespeichert, obwohl ich bei „Nach Eingabe fragen“ nur Datum ausgewählt habe ohne Uhrzeit. Ist das ein Bug oder hättest Du eine Idee woran es liegen könnte?
BG

Hallo Robert, ich habe da so eine Vermutung. Deaktiviere die Uhrzeit auch beim Abfragen der Variablen, also beim Zusammenstellen der Daten für die Tabelle. Klingt komisch, ist aber so. Das sollte dann in etwa so aussehen – der wichtige Teil ist grün umrandet:
Belegmanager Pro ohne Uhrzeit

Ich danke auch sehr für das Bereitstellen und gebe sterne ⭐️⭐️⭐️⭐️⭐️
Ich habe eine Frage mit einem Problem, das vielleicht nicht lösbar ist.
Als Kleinunternehmer wollte ich mir einen Beleg Composer basteln. Sieht soweit gut aus. Aber: Durch den Numbers Kurzbefehl in Datei Unten/Oben einfügen wird Adressfeld und Co nicht korrekt ausgefüllt. Ich habe dann versucht, die Eingabedaten des Kurzbefehls Liste in ein Zweites Numbers Blatt eintragen zulassen (das funktioniert soweit) und diese Zellen ins Blatt 1 (das ist der Beleg) zu verlinken/verknüpfen. Also der Beleg auf Blatt 1 zieht die Eintragungen aus Blatt 2, welches die Daten des Kurzbefehls bekommt. Numbers bleibt aber mit der auserwählten Zelle nicht treu. Kommen durch die Kurzbefehleingabe neue Zeilen, verrutscht die Verknüpfung. Egal, ob ich $ setzte oder nicht. Tabelle 2::$A$2 z.B. behält nur Funktionen der Zelle, nicht aber die Position der Zelle. Z.B. Soll der Beleg die Anrede in Blatt 1 von Blatt 2 anzeigen. Kommt in Blatt 2 ein neuer Eintrag mit neuen Numberszeilen, wird der neue Eintrag nicht mehr verknüpft in Blatt 1 angezeigt.
Gibt es eine Möglichkeit, dass die Zellenverknüpfung trotz hinzukommender Zellen den neuen Wert der neuen Zellen, die ja durch den Eintrag „oben“ die selbe Position bekommen (A2 z.B. bleibt mit neuem Wert) gleich bleibt und dessen neuen Wert in der Verknüpfung anzeigt? 😅
Das ist wirklich zum Haare raufen.
Vielleicht gibt es auch eine andere Methode, auf die ich nicht komme.

Vielen Dank und Grüße

Hallo! Hui, da komme ich kaum hinterher. Vielleicht wäre es doch einfacher, das ursprüngliche Problem zu lösen? Ich würde erst einmal alles daran setzen, die Werte sauber in die Tabelle zu bekommen, anstatt mit separaten Tabellen und Formelkonstrukten noch mehr Komplexität hinzuzufügen. Worin besteht denn das Problem beim Zusammenstellen der Tabellenwerte?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

WordPress Cookie Plugin von Real Cookie Banner