829 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen

ich habe eingeschränkte VBA-Erfahrungen und versuche gerade folgendes: es gibt eine Tabelle, in der in Spalte 1 verschiedene Kontonummern stehen, die wiederholt vorkommen, und in Spalte 2 steht die Buchungsnummer der Belastung und in Spalte 3 der belastete Betrag (es gibt keine Gutschriften, die gegengerechnet werden müssten).

Über eine Eingabebox kann der Benutzer eingeben, zu welcher Kontonummer in einer MsgBox die Belastungen gelistet werden. Die MsgBox soll zeilenweise die Buchungsnummer und den Betrag ausweisen. In der letzten Zeile der MsgBox soll die Summe der Belastungen stehen. Im Idealfall zeigt der Titel der Messagebox die Kontonummer an und superideal wäre, wenn man die MsgBox ausdrucken könnte.

Da ich keine Expertin bin, habe ich den Code soweit aufgestellt, dass er die Kontonummer abfragt und die zugehörigen Belastungen auf das zweite Tabellenblatt schreibt (ich bin behelfsmäßig so vorgegangen, weil ich gedacht habe, dass ich es leichter hinkriege, die dortigen Inhalte dann in der MsgBox anzeigen zu lassen statt irgendwie mit versteckten "Zwischenvariablen" zu arbeiten - es soll nicht elegant sein, aber funktionieren).
Dieses zweite Tabellenblatt, was nun als Quelle für die MsgBox genutzt werden kann und nicht mehr gefiltert werden muss, hat folgendes Format:
Zeile 1, Spalte 1: "Buchungsnummer"
Zeile 1, Spalte 2: "Betrag"
Zeile 2 bis n: zeigt die entsprechenden Buchungen
Zeile n+1, Spalte 1: "Summe"
Zeile n+1, Spalte 2: Gesamtbetrag der Buchungen

Mein konkretes Problem ist nun, dass die Anzahl der Buchungen immer unterschiedlich ist und in Einzelfällen die Zahl 50 erreicht. Wie kann man das mit einer Schleife lösen?
Mein Verständnis ist, dass man vorbereitend zunächst Variablen definieren muss (Analog zu den Buchungsnummern in Spalte 1) und dann diesen Variablen die zugehörigen Werte (die Beträge aus Spalte 2) zuweisen muss.
Die 'Schreibanweisung' für die MsgBox muss im Nachgang dann so flexibel sein, dass sie ebenfalls die unterschiediche Anzahl der Buchungen berücksichtigt. (Soetwas wie "MsgBox "Ziehung 1: " & Variable2 & vbLf & _ "Ziehung 3: " & Variable3 & vbLf & ....." geht nicht. Zudem ändert sich ja auch die Position für den Gesamtbetrag)

Tja, und dann wäre ja noch das Ding mit Titelzeile und dem Drucken....
Wenn man weiß, wie's geht, vermutlich ein kurzer Code, weil sicherlich mit einer Schleife lösbar...
wer kann helfen?

Besten Dank vorab
VG
Sabine

2 Antworten

0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Sabine,
so ganz verstehe ich deine Erklärung nicht,
vielleicht kannst du ja eine Musterdatei upladen und den Link ins Forum stellen.

Es gibt bestimmt auch noch andere Möglichkeiten als eine MsgBox.

Gruß
fedjo
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Sabine,
hab mal ein Muster erstellt, vielleicht hilft es dir weiter.

Gruß
fedjo
...