Datum nach geänderten Spalte
#1
Hallo Spezialisten, ich habe eine Art Inventurliste erstellt, in der es für jedes Regal eine Liste gibt. Dazu gibt es eine Tabelle namens LISTE, in der die geasamten Beständ gelistet wird. In Spalte BC stehen die Bestände. Ich möchte jetzt, dass in Spalte BQ das Datum eingetragen, wenn sich etwas an den Beständen in BC ändert. Dazu habe ich diesen Code getestet:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ÄnderungsZelle As Range
' Definieren Sie die Zelle, die Sie überwachen möchten
Set ÄnderungsZelle = Me.Range("BC:BC") ' Bereich, in dem die Änderungen überwacht werden sollen

' Prüfen, ob die geänderte Zelle im definierten Bereich liegt
If Not Intersect(Target, ÄnderungsZelle) Is Nothing Then
' Speichern Sie das aktuelle Datum in der entsprechenden Zelle neben der geänderten Zelle
Target.Offset(55, 15).Value = Now
End If
End Sub
Leider funktioniert dieser Code nicht, ich weiß nicht, warum?
Nur zur Sicherheit, der Wert in Spalte BC wird nicht händisch eingegeben, sondern durch eine Formel geändert.
Sieht jemand den Fehler?

Nochmals vielen Dank

Gruß

Karlheinz
Antworten Top
#2
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  'Prüfen, ob die geänderte Zelle im definierten Bereich liegt
  Set Target = Intersect(Target, Range("BC:BC"))
  If Target Is Nothing Then Exit Sub
 
  'Speichern Sie das aktuelle Datum in der entsprechenden Zelle
  Set Target = Intersect(Target.EntireRow, Range("BQ:BQ"))
  Target = Date
End Sub
Antworten Top
#3
Moin!
Zitat:Nur zur Sicherheit, der Wert in Spalte BC wird nicht händisch eingegeben, sondern durch eine Formel geändert.

Eine Änderung eines Formelergebnisses löst kein Change-Event aus.
Daher musst Du die Zellen überwachen, die das Ergebnis beeinflussen.
Wenn Du nicht klarkommst, solltest Du die Datei zeigen.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
Hi

Wenn du Formeln auf eine Wertänderung überwachen willst, musst du so vorgehen:

1. Kopiere die Formeln und füge sie an anderer Stelle als Wert ein.
Das ist deine Sicherungskopie der Altwerte

2. Verwende das Calculate-Event. Dieses spricht an, wenn eine Formel im Tabellenblatt neu berechnet wird. 
In diesem musst du jetzt in einer Schleife über die Zellen mit den Formeln laufen und dein Zellwert mit dem entsprechenden Wert in der Kopie vergleichen. Ist er gleich, machst du nichts, weicht er ab, trägst du das Datum ein und überschreibst den Wert in der Sicherungskopie mit dem neuen Wert.


Gruß Daniel
Antworten Top
#5
Ich hatte doch einen Text dazu getan... ist irgendwie abhanden gekommen. Nochmal in Kürze:

Also, das die Formel das Problem ist wurde ja nun schon gesagt. Es gibt noch ein weiteres:

Wenn ein DAU vor dem Rechner sitzt und die Spalte einfach mal via ENTF leer macht, dann hat so ein Code zur Folge das die andere Spalte komplett mit einen Datum gefüllt wird.

Also sollte man mind. den Bereich auf den laut Blatt benutzen Bereich begrenzen. Und wenn die Zelle leer wird, soll dann das Datum weg?

Andreas.
Antworten Top
#6
Hallo Helfer,
zuerst mal vielen Dank für eure Beiträge. Scheinbar bin ich im Erklären und beschreiben nicht besonders erfolgreich, deshalb habe ich, wie RPP63 vorgeschlagen, eine MUSTER-Datei bereit gestellt, ich hoffe, ich habe das richtig gemacht und ihr könnt sie sehen. Vielleicht klappt es jetzt besser.


Angehängte Dateien
.xlsm   Mappe2.xlsm (Größe: 145,58 KB / Downloads: 8)

Nochmals vielen Dank

Gruß

Karlheinz
Antworten Top
#7
Hallo Karlheinz,

das hilft schon mal eine Menge, gerade um auch zu verstehen was das eigentlich soll.

Nun, Du kannst jetzt dem Vorschlag von Daniel folgen und Dir was zurecht basteln um den alten mit dem neuen Stand zu vergleichen, da halte ich mich raus.

Sinnvoller wäre es jedoch das ganze Konzept zu überarbeiten, denn die ganzen Formeln mit dem enormen Aufwand sind komplett überflüssig.

AW:BF ist ja "nur" dafür da zu schauen ob irgendwo etwas doppelt liegt und was ist wenn Artikel 123456 in einem anderen Regal nochmal liegt? Das findest Du niemals!

Und den kompletten Bestand des Lagers... völliger Irrsinn das alles mit Formeln so zu machen.

Ganz einfache Lösung: Je Regal EINE Tabelle die in einer Spalte den Boden hat, damit man danach filtern kann. Die Tabelle bekommt den Namen des Regales.
So kann man mit Power Query sehr einfach alle Tabellen zusammenfassen und das komplette Lager in eine komplette Tabelle überführen.
   

Der Vorteil ist das Du die Daten nach belieben sortieren kannst, ganze Zeilen einfügen oder löschen kannst, ohne irgendwas kaputt zu machen!

Welche Auswertungen man dann damit wie machen will... das wäre dann der nächste Schritt. Doppelte Artikel im gesamten Lager zu finden ist sehr einfach, ebenso wie den Gesamtbestand von allen Artikeln (mit Preis wenn der irgendwo anders vorhanden ist) ist super einfach. Auch irgendeinen Artikel irgendwo im Lager zu finden ist ebenso super einfach.

Wenn Du Interesse hast, dann schick mir eine Mail.

Andreas.
Antworten Top
#8
Hallo Karl Heinz,

vielleicht ist es so sinnvoller. Ich hab mal eine Tabelle für Alles als formatierte Tabelle angelegt. Das Inventurjahr habe ich noch hinzugefügt, falls mal jemand noch statistische Ausgaben haben will.

So lässt es sich problemlos bearbeiten und auswerten. Vor allem wird eine Gegenprüfung ob ein Artikel übersehen wurde total einfach.

.xlsm   Mappe2.xlsm (Größe: 153,36 KB / Downloads: 3)

Gruß Uwe
Antworten Top
#9
Hallo Andreas,
es tut mir Leid, wenn du diesen Ausschnitt von meiner Tabelle als "Irrsinn" hälst. Wenn ich es besser könnte, würde ich es bestimm umsetzen.
Vielen Dank für deinen Beitrag.

Hallo Uwe, vielen Dank für deinen Vorschlag. Tatsächlich hatte ich so in dieser Art schon angefangen, bin aber dann doch zu meiner jetzigen Version gewechselt.
Leider wurde aber mein eigentliches Problem nicht gelöst. Trotzdem, vielen Dank.

Viele Grüße 
Karlheinz

Nochmals vielen Dank

Gruß

Karlheinz
Antworten Top
#10
Ich muss mal kurz dazwischengrätschen, Karlheinz!
Selbstverständlich ist es Irrsinn (im Wortsinn!), Excel mit überflüssigen Formeln zu quälen, wenn es bei vernünftiger (im Sinn von datenbankkonformer) Datenhaltung sehr viel leichter ginge.

Sind aber nur meine two cents und ich bin schon wieder weg.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


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