Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Kassenbuch Excel Tabelle mit Macros vereinfachen

Forumthread: Kassenbuch Excel Tabelle mit Macros vereinfachen

Kassenbuch Excel Tabelle mit Macros vereinfachen
10.01.2026 12:58:07
André
https://www.herber.de/bbs/user/179992.xlsb

Hallo mal wieder,

Ich wünsche euch noch ein gesundes neues Jahr 2026.
Vor geraumer Zeit habe ich bereits einmal Hilfe von euch für mein Kassenbuch bekommen.
Jetzt wird mir die Spalte mit den Einnahmen doch etwas zu lang.

Momentan muss ich 12x auf Bier Klicken, wenn wir an dem Tag 12 Bier verkauft haben.
Bei der Spende und dem Pfand kann ich einfach den Betrag eintragen, dass passt mir soweit.

Nun würde ich gerne, wenn ich auf Bier klicke, dass sich ein Feld öffnet, in dem ich dann die Anzahl, in dem Falle 12 eingeben kann und in der Spalte erscheint dann nach dem
letzten Eintrag automatisch Bier und in der nächsten Spalte der Wert von den 12 Bier.

Ich danke euch schonmal im Voraus und wünsche euch ein Schönes Wochenende
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kassenbuch Excel Tabelle mit Macros vereinfachen
10.01.2026 13:50:54
JoWE
Hallo,
eine Möglichkeit siehe Code:
Option Explicit

Public Sub Main()
Dim dblBetrag As Double
Dim lngTMP As Long
lngTMP = Cells(Rows.Count, 1).End(xlUp).Row + 1
With Cells(lngTMP, 1)
Select Case ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text
Case "Spende", "Pfand"
dblBetrag = Application.InputBox("Betrag eingeben...", "Betrag!", 2, , , , , 1)
.Offset(, 3).Value = dblBetrag
Case Else
.Offset(, 3).Formula2 = "=IF(C" & lngTMP & ">"""",VLOOKUP(C" & lngTMP & ",Daten!B:C,2,FALSE),"""")"
End Select
.Offset(, 2).Value = ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text
.Formula2 = "=IF(C" & lngTMP & ">"""",A" & lngTMP - 1 & "+1,"""")"
.Offset(, 1).Value = Date
If ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text = "Bier" Then
.Offset(, 3).Value = Application.InputBox("Anzahl Bier eingeben...", "Anzahl!", 2, , , , , 1) * 2
Else
.Offset(, 3).Value = .Offset(, 3).Value
End If
End With
End Sub

Gruß
Jochen
Anzeige
AW: Kassenbuch Excel Tabelle mit Macros vereinfachen
10.01.2026 21:17:08
Piet
Hallo Andre

ich habe mal ein bisschen gespielt, bin gespannt ob es dir gefällt.
Mir war die InputBox zu aufwändig, das geht auch über Zelleneingabe.
Gib Links neben dem Button die Zahl ein, den Rest macht das Makro.
Voraussetzung ist, das die Buttons nicht die Zelle darüber berühren dürfen!
https://www.herber.de/bbs/user/179999.xlsb

mfg Piet
Anzeige
AW: Kassenbuch Excel Tabelle mit Macros vereinfachen
10.01.2026 22:40:35
daniel
für "Spende" hast du doch schon eine Inputbox.
die kannst du doch genauso für die Menge verwenden und die Menge dann in die Formel einbauen.

Public Sub Main()

Dim dblBetrag As Double
Dim lngTMP As Long
lngTMP = Cells(Rows.Count, 1).End(xlUp).Row + 1
With Cells(lngTMP, 1)
Select Case ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text
Case "Spende", "Pfand"
dblBetrag = Application.InputBox("Betrag eingeben...", "Betrag!", 2, , , , , 1)
.Offset(, 3).Value = dblBetrag
Case Else
dblBetrag = Application.InputBox("Menge eingeben...", "Menge!", 1, , , , , 1)
.Offset(, 3).Formula2R1C1 = "=IF(RC3>""""," & dblBetrag & "*VLOOKUP(RC3,Daten!C2:C3,2,FALSE),"""")"
End Select
.Offset(, 2).Value = ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text
.Formula2R1C1 = "=IF(RC3>"""",R[-1]C1+1,"""")"
.Offset(, 1).Value = Date
.Offset(, 3).Value = .Offset(, 3).Value
End With
End Sub


geändert habe ich jetzt nur die beiden Zeilen im ELSE-Case, so dass du die Menge eingeben kannst und diese wird dann als Faktor in die Formel übernommen.

Achtung, die Formeln ab ich von A1-Adressen auf R1C1-Adressen umgestellt.
Das macht es etwas einfacher in VBA, weil man die Zeilennummer nicht anpassen muss .

Gruß Daniel
Anzeige
AW: Kassenbuch Excel Tabelle mit Macros vereinfachen
11.01.2026 11:29:07
JoWE
Hallo Daniel,
wie würdest Du in diesem Fall mögliche Fehleingaben in den Inputboxen (leer, Buchstaben, Sonderzeichen) oder Abbruch abfangen?
Gruß
Jochen
AW: Kassenbuch Excel Tabelle mit Macros vereinfachen
11.01.2026 13:06:53
André
Hallo Ihr lieben Menschen,

ich danke euch von ganze, Herzen für eure Hilfe.
Jetzt kann ich im Verein das ordentlich machen :)

Vielen vielen Dank an alle und habt einen tollen sonnigen Sonntag.

LG

André

Anzeige
AW: Kassenbuch Excel Tabelle mit Macros vereinfachen
11.01.2026 20:08:28
Daniel
Hi

Um die Fehleingaben wie Buchstaben kümmert sich die Inputbox.
Da hier die Excelspezifische und nicht die Allgemeine Inputbox verwendet wird, kannst du vorgeben, welcher Datentyp eingegeben werden soll und die Inputbox selbst lässt dich die Eingabe wiederholen, wenn du was falsches eingibst.
Da musst du dich dann nicht drum kümmern.

Den Abbruchfall kann ich dir Grad auch nicht sagen, da müsste erst selber nochmal prüfen, was dann genau passiert.
Vermutlich bleibt die Aufnehmende Variable bei ihren Ausgangswert (0) und das kann man mit einer einfachen IF-Abfrage prüfen.

If dbLBetrag = 0 then Exit sub

Gruß Daniel
Anzeige
AW: Kassenbuch Excel Tabelle mit Macros vereinfachen
10.01.2026 14:14:31
André
Hallo Jochen,

Danke dir erstmal für den Code.

Könntest du mir diesen noch einfügen und mir die Datei zur Verfügung stellen?
Ich kenn mich mit Makros so gar ne aus und bevor ich etwas falsch mache, ... :)

Ich danke dir sehr
AW: Kassenbuch Excel Tabelle mit Macros vereinfachen
10.01.2026 14:39:53
JoWE
kein Problem. bitte sehr:
https://www.herber.de/bbs/user/179994.xlsb
Gruß
Jochen
Anzeige
AW: nochmal, aber korrigiert...
10.01.2026 17:26:40
André
Hallo Jochen,

Danke dir nochmal, genau so hab ich mir das vorgestellt.
ein was habe ich noch, bei den anderen Getränken (also außer bei Pfand und Spende, dort habe ich es schon), soll es genauso sein.
Könntest du dies bei diesen genauso adaptieren?

danke dir nochmals sehr.

LG

André

Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18