Excel - Aktualisierung --> Zirkelbezug

Hallo,

ich habe folgendes Excel-Problem:

Aus einer Quelle (SAP) bekomme ich täglich per Server-Download Kennzahlen.
Beispiel:
in Lasche A:
Zelle A1: steht der aktuelle Fakturierungstag des Monats
Zelle B1 :der Auftragsbestandswert.
Diese werden tagesaktuell jeweils von einem Server in der Frühe überschrieben, so dass die Zellen immer gleich bleiben, die Werte immer tagesaktuell sind. Eine Historienabbildung ist nicht möglich.

Ich möchte nun allerdings ebenfalls eine historische Darstellung in einer zweiten Lasche.
Beispiel:
In Lasche B:
Zelle A1: Fakturierungstag (Vorvortag), Zelle B1: Wert
Zelle A2: Fakturierungstag (Vortag), Zelle: B2 Wert
Zelle A3: Fakturierungstag (akt. Tag), Zelle: B3 Wert

Momentan ist mir unklar, wie ich diese Funktionalität in Excel abbilden kann. Ich habe es mit einer WENN Formel und einer Hilfstabelle versucht - es ergibt sich nach momentaner Logik aber immer ein Zirkelbezug.
In Lasche B:
Hilfsspalte B ist gefüllt mit Tagen.
Zelle A1 : Wenn (akt Fakturierungstag aus Lasche A) = (Tag aus Hilfsspalte B) ; (Wert aus vom akt Fakturierungstag aus Lasche A) ; Zelle A1

Es steht zwar der richtige Wert im Feld, er bringt aber immer eine Fehlermeldung… Hat jemand eine andere Idee???

Ich weiß nicht, ob das Problem so klar formuliert ist… Helfe gerne noch mal nach :wink:

Danke schon mal für die Hilfe und VG!

Andreas

Hi Andreas,

Aus einer Quelle (SAP) bekomme ich täglich per Server-Download
Kennzahlen.
in Lasche A:
Zelle A1: steht der aktuelle Fakturierungstag des Monats
Zelle B1 :der Auftragsbestandswert.
Diese werden tagesaktuell jeweils von einem Server in der
Frühe überschrieben, so dass die Zellen immer gleich bleiben,
die Werte immer tagesaktuell sind. Eine Historienabbildung ist
nicht möglich.

meinst du mit Lasche ein Tabellenblatt!? *annehm*

Wie läuft dieses Server-Download ab? Ich habe kein SAP. SAP öffnet die Exceldatei, ändert die beiden zellen und schließt die Datei wieder?

Probier mal den nachfolgenden Code, bei manuellen Änderungen in Blatt1 A1, B1 wird in Tabelle2 die Historie mitnotiert, ist das in der Richtung wie du das möchtest?

Und funktioniert der Code auch wenn SAP was ändert?

Alt+F11, Doppelklick auf „Tabelle1“, Code reinkopieren, Editor schliessen.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Target, Range(„A1:B1“)) Is Nothing Then Exit Sub
If Range(„A1“) = „“ Or Range(„B1“) = „“ Then Exit Sub
Worksheets(„Tabelle2“).Range(„A1“).EntireRow.Insert
Range(„A1:B1“).Copy Destination:=Worksheets(„Tabelle2“).Range(„A1“)
End Sub

Ich weiß nicht, ob das Problem so klar formuliert ist…

Ich auch nicht :smile:

Helfe gerne noch mal nach :wink:

Schau’n wir mal…

Gruß
Reinhard

Hi Reinhard,

vielen Dank für Deine Antwort. Zu Deinen Fragen:

  1. Mit Lasche ist Tabellenblatt gemeint… Sorry :wink:

  2. Es läuft genau so wie beschrieben. SAP
    öffnet die Exceldatei (welche allerdings in SAP gespeichert ist), ändert die beiden zellen (aktualisiert) und speichert die Datei auf ein Gruppenlaufwerk (die alte Datei wird ersetzt).

  3. Der Code sollte prinzipiell funktionieren, wenn SAP die Datei ändert, da ich die Datei mit allen Excel-Funktionalitäten ins SAP hochlade und SAP dann die aktuellste Version zur oben genannten Aktualisierung benutzt.

  4. An sich ist das Mitnotieren der richtige Ansatz. Genau das möchte ich. Ich habe den Code probiert - verstehe diesen aber nicht so ganz da ich in Visual Basic nicht sehr fit bin. Die WENN Formel bleibt bestehen und ich kopiere den Code ins Tabellenblatt zwei. Richtig?

  5. Wenn ich den Code allerdings einfüge, dann funktioniert es leider nicht… Wo könnte der Fehler liegen?

VG

Andreas

  1. An sich ist das Mitnotieren der richtige Ansatz. Genau das
    möchte ich. Ich habe den Code probiert - verstehe diesen aber
    nicht so ganz da ich in Visual Basic nicht sehr fit bin. Die
    WENN Formel bleibt bestehen und ich kopiere den Code ins
    Tabellenblatt zwei. Richtig?
Hi Andreas,
in Blatt2 brauchst du keine Wenn-Formel mehr.

Alt+F11, Doppelklick auf "Tabelle **1**", Code reinkopieren, Editor schliessen.
 ^

Gruß
Reinhard