Bitte um Hilfe bei Formel /Makro
#1
Hallo zusammen.
Ich bin absoluter Excel Neuling und habe für meine Arbeit eine neue Excel Datei erstellt , welches unser altes Kassensystem ersetzen soll(ebenfalls Excel)

Ich habe soweit auch glaube ich alle Funktionen , bis auf eine zusammen.

Wenn Anfang des Tages der Anfangsbestand oben in den Feldern eingetragen wird, soll es bei Anfangsbestand stehen.
Zum Schichtwechsel , oder Schichtende, soll ebenfalls der Bestand von dem morgen gespeichert sein, und genau da ist mein problem.
Sobald sich oben die Anzahl der Münzen und Scheine ändert, ändert sich auch der Anfangsbestand, und das soll so nicht sein.

Ich möchte gerne , wenn ich unten auf Kasse zurücksetzen klicke , dass der Aktuelle Kassenbestand dann der Anfangsbestand wird, Die Einnahmen zurück gesetzt werden (was ja schon Funktioniert)

 
Als Beispiel:
Beispiel: Anfangsbestand 0€
Einnahmen 250 €
wenn ich die Kasse zurück setze soll nun in I14 und C26 die 250 rein kommen und abgespeichert werden.
Nächsten Tag hab ich zum Beispiel 532,16 Einnahmen
Dann sollte der Anfangsbestand bei 250€ in I14 und C26 stehen
Die Differenz in I15 (gerne auch farblich" zu viel in der Kasse =grün / zu wenig =rot)
Der neue Kassenbestand in I16 stehen
in I16 sollte dann nach Änderung der Anzahl der Scheine usw. 782,16 stehen.
Setze ich jetzt wieder zurück, soll im Anfangsbestand 782,16 stehen usw.


Ich verzweifel da als Neuling dran :(

Ich hoffe hier findet sich jemand der mir das entweder erledigen oder erklären kann, denn ich steige da nicht hinter .

Vielen dank für Eure Aufmerksamkeit und mühen!
Grüße Sascha


Angehängte Dateien
.xlsm   Tageskasse neu.xlsm (Größe: 23,44 KB / Downloads: 7)
Antworten Top
#2
würde das evtl damit gehen?



Könnte mir das jemand so schreiben oder erklären wie das abläuft?



Code:
Dim xRg As Range
Dim xChangeRg As Range
Dim xDependRg As Range
Dim xDic As New Dictionary
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim I As Long
    Dim xCell As Range
    Dim xDCell As Range
    Dim xHeader As String
    Dim xCommText As String
    On Error Resume Next
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    xHeader = "Previous value :"
    x = xDic.Keys
    For I = 0 To UBound(xDic.Keys)
        Set xCell = Range(xDic.Keys(I))
        Set xDCell = Cells(xCell.Row, 7)
        xDCell.Value = ""
        xDCell.Value = xDic.Items(I)
    Next
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim I, J As Long
    Dim xRgArea As Range
    On Error GoTo Label1
    If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    Set xDependRg = Target.Dependents
    If xDependRg Is Nothing Then GoTo Label1
    If Not xDependRg Is Nothing Then
        Set xDependRg = Intersect(xDependRg, Range("C:C"))
    End If
Label1:
    Set xRg = Intersect(Target, Range("C:C"))
    If (Not xRg Is Nothing) And (Not xDependRg Is Nothing) Then
        Set xChangeRg = Union(xRg, xDependRg)
    ElseIf (xRg Is Nothing) And (Not xDependRg Is Nothing) Then
        Set xChangeRg = xDependRg
    ElseIf (Not xRg Is Nothing) And (xDependRg Is Nothing) Then
        Set xChangeRg = xRg
    Else
        Application.EnableEvents = True
        Exit Sub
    End If
    xDic.RemoveAll
    For I = 1 To xChangeRg.Areas.Count
        Set xRgArea = xChangeRg.Areas(I)
        For J = 1 To xRgArea.Count
            xDic.Add xRgArea(J).Address, xRgArea(J).Formula
        Next
    Next
    Set xChangeRg = Nothing
    Set xRg = Nothing
    Set xDependRg = Nothing
    Application.EnableEvents = True
End Sub

Ich hoffe auf rückmeldung
Grüße
[-] Folgende(r) 1 Nutzer sagt Danke an Fear1984 für diesen Beitrag:
  • Rudi'S
Antworten Top
#3
Hallo,

was soll das denn sein? Excel ist eine Tabellenkalkulation, so kann allenfalls eine Datenauswertung aussehen, aber keine Datenhaltung, bzw. -erfassung.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#4
Habe mich die Nacht nochmal ran gesetzt und jetzt funktioniert alles so wie es soll. 

Vielen Dank trotzdem 

Grüße
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste