Hi jwd,
Ich erhalte die Daten über eine ODBC-Schnittstelle als Abfrage
nach Access; dort habe ich ich über die Funktion „Summe“ pro
Konto (es sind 5 Stk) pro Tag je einen Wert als Saldo aus Soll
und Haben - also eine Liste mit den 3 Spalten (Datum, Konto,
Betrag)und maximal 5 Zeilen pro Tag (sofern jedes Konto an dem
Tag auch eine Bewegung hatte).
Es muss keineswegs eine Excel-Lösung sein, nur weiß ich in
Access hier nicht weiter …
tjanu, in Access weiß ich weniger als du, da tust du sehr weise daran Marion zu lauschen 
Endziel ist, dass man in Excel 1!! Datei öffnet, die mit einer
Access-Abfrage verknüpft ist, „!“ klickt und im Diagramm je 1
Kurve (als kumulierter Wert) pro Konto fortgeführt wird.
Gut, lassen wir erstmal das Diagramm weg, das ist dann auch machbar.
Angenommen, du hast ein Blatt „Abfrage“ das so aussieht:
Tabelle:
[Mappe2]!Abfrage
│ A │ B │ C │
──┼─────────┼───────┼──────────┤
1 │ Datum │ Konto │ bewegung │
2 │ 01. Jan │ 1 │ 34 │
3 │ 01. Jan │ 2 │ -4 │
4 │ 01. Jan │ 3 │ 0 │
5 │ 01. Jan │ 4 │ 0 │
6 │ 01. Jan │ 5 │ 10 │
──┴─────────┴───────┴──────────┘
Und die Daten kommen via Query von Access reingeschwebt.
Weiterhin hast du pro Konto ein Blatt, nennen wir sie Mal die Blätter Konto1,Konto2,Konto3 usw.
und die sehen alle so aus:
Tabelle:
[Mappe2]!Konto2
│ A │ B │ C │
──┼────────┼──────────┼─────────┤
1 │ Datum │ Bewegung │ Summe │
2 │ 1.1.08 │ Übertrag │ 1234,80 │
──┴────────┴──────────┴─────────┘
dann mußt du nur noch auf einem beliebigen Blatt über Ansicht–Symbolleisten eine Befehlsschaltfläche einbauen, Rechtsklick auf diese Befehlssschaltfläche und dieser das nachfolgende Makro zuweisen.
Dann sieht nach Klick auf diese Befehlsschaltfläche das Konto2 so aus:
Tabelle:
[Mappe2]!Konto2
│ A │ B │ C │
──┼──────────┼──────────┼─────────┤
1 │ Datum │ Bewegung │ Summe │
2 │ 39448,00 │ Übertrag │ 1234,80 │
3 │ 39448,00 │ -4,00 │ 1230,80 │
──┴──────────┴──────────┴─────────┘
Tabellendarstellung erreicht mit dem Code in FAQ:2363
Wäre das ein Ansatz?
Gruß
Reinhard
Alt+F11, Einfügen–Modul, Code reinkopieren, Editor schließen.
Option Explicit
'
Sub Aktualisieren()
Dim Z, ZK, wsA
Set wsA = Worksheets("Abfrage")
With wsA
.QueryTables(1).Refresh BackgroundQuery:=False
For Z = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
With Worksheets("Konto" & .Cells(Z, 2))
ZK = .Cells(Rows.Count, 1).End(xlUp).Row + 1
If wsA.Cells(Z, 3) 0 Then
.Cells(ZK, 1) = wsA.Cells(Z, 1)
.Cells(ZK, 2) = wsA.Cells(Z, 3)
.Cells(ZK, 3) = .Cells(ZK - 1, 3) + .Cells(ZK, 2)
End If
End With
Next Z
End With
End Sub
viele Grüße
jwd
:Hallo jwd,
mittels „Externe Daten / Abfrage erstellen“ habe ich eine
Abfrage auf eine Access-Tabelle erstellt. Funktioniert auch
soweit.
Für jeden Tag wird ein Datensatz an Bewegungsdaten (Saldo aus
Kontenbewegungen) abgefragt und übertragen.
Woher und wie kommen die Daten in die access-Tabelle?
Aus SAP? Mit Hilfe eines Downloads und anschließendem Import
in Access?
Oder werden die Daten direkt über eine programmierte
Schnittstelle in Access geladen? Ich meine,
Kontenbewegungsdaten enstehen ja nicht in Access?
Normalerweise würd ich hier ansetzen. Und wenn du diese
Access-Abfrage gemacht hat, mach eine neue, die dir das
liefert, was du brauchst.
Der einfachste Weg ist die direkte Abfrage der Bewegungsdaten
als Saldenabfrage in dem Buchungssystem oder, wenn das nicht
möglich ist (weil du nicht weißt wie es geht oder weil du
keine Zugangsberechtigung hast oder …), das Laden aller
Einzelposten der betreffenden Konten in Access und dann eine
entsprechende Abfrage in Access. Werden in dieser Abfrage die
Soll-Posten je Tag summiert, und die Habenposten je Tag
summiert oder auch gleich saldiert (ich kenne die genaue
Aufgabe nicht), hast du schon ein super Grundlage für deine
kumlierende Ausgabe. Dafür würde ich dann einen Bericht in
Access erstellen. So hast du zuverlässig jederzeit sofort
deine fertige gewünschte Liste, die du natürlich auch in Excel
ausgeben kannst. (Ist eine typische Datenbankanwendung und mit
Access als Anwenderorientierte DB auch schnell eingerichtet.
In der Exceltabelle habe ich am Spaltenende (nach eingen
Leerzeilen) eine Summenfunktion.
Frage:
Nun möchte ich nicht nur die jeweils aktuelle Summe haben,
sondern auch die kumulierten Werte eines jeden Vortages.
Dies bekomme ich jedoch nicht gepeilt, da bei der
Aktualisierung der xls-Tabelle, anschließend Formel-Chaos
angesagt ist. Die Formeln der kumulierten Spalte werden
unbrauchbar.
Hat jemand einen Lösungs-Ansatz ?
Wenn es unbedingt in Excel gelöst werden soll, dann würde ich
folgenden Weg vorschlagen:
eine Excel Datei lädt täglich die Daten aus der Access-DB, das
kann man über ein Makro, also auf Knopfdruck machen. Diese
Datei benutzt du täglich, die Daten werden also immer
überschrieben. Die Daten stehen dann immer in bestimmten
Zellen in der Excel-Datei.
Eine weitere xls sammelt die Tagessalden, das heißt jeden Tag
wird auch mit Hilfe eines Makro die erste Tabelle geöffnet,
die Daten werden kopiert und eingefügt, es wird somit eine
weitere Zeile gefüllt. In dieser Excel-Datei sind deine
Formeln für das Ermitteln der Werte.
PS
Ich habe schon beide Wege erprobt. Meine Erfahrung sagt,
Access ist der schnellere einfachere Weg, mit Access ist man
auf der sicheren Seite.
Gruß
Marion