2.4k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Forum,
wie kann ich prüfen, ob sich der Inhalt einer bestimmten Zelle indirekt
durch das Ändern einer anderen Zelle geändert hat?

Beispiel
A1 enthält Von-Datum
A2 enthält Bis-Datum
A3 enthält Anzahl Tage zwischen A1 - A2

Wenn das Datum in A1 geändert wurde, möchte ich prüfen, ob der Wert
in A3 sich geändert hat!

Geht das?

8 Antworten

0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

wahrscheinlich ist es nicht das was du meinst.
Sehe bei den Einstellungsoptionen nach ob die Berechnungen auf "Automatisch" stehen, dann wird die Zelle A3 direkt verändert.

Gruß

Helmut
0 Punkte
Beantwortet von
Hallo Helmut,

danke für die Antwort.
Zellinhalt A3 wird ja verändert, aber VBA erkennt die Änderung durch die Abfrage
If Not Application.Intersect(Target, Range("A3:A3")) Is Nothing Then
nicht.
Wahrscheinlich ist der Grund, dass die Änderung nicht direkt in A3 eingegeben wurde, sondern aufgrund der Änderung in A1 indirekt erfolgte.

hanswerner
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

das es um eine VBA abfrage sich handelt ging aus der Anfrage nicht hervor.

Warum fragst du nicht die Änderung in A1 ab?

Gruß

Helmut
0 Punkte
Beantwortet von
Das Problem ist etwas komplexer, ich hatte es nur vereinfacht dargestellt!
Die Änderungen, die sich auf A3 auswirken, können von mehreren Zellen ausgelöst werden. Es wäre einfacher wenn ich Zelle A3 abfrage!

hanswerner
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all :-)

ich geh mal vom Change ereigniss aus :-)

ein ereigniss kann durch ein formel produziertes Ergebnis keinen zellwechsel erkennen ^^

hier muesste dein kommplettes makro entsprechend angepasst werden

wenn dich traust,poste es mal *hihi*

gruss nighty
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

wir könnten eine globale variable bei oeffnung der Datei mit dem geforderten wert deiner zelle erstellen,diese kannst du dann in deinem makro bzw Ereigniss abfragen

in ein allgemeines modul gehört die Bestimmung der variable

Global DeineVar As Long

und dieses alt+f11/projektexplorer/DeineArbeitsmappe
bei diesem Beispiel wird die zelle a1 vom 1 worksheet gesichert

Private Sub Workbook_Open()
DeineVar = Worksheets(1).Cells(1, 1)
End Sub

nach erfolgreicher abfrage deiner var eventuell neuen wert übernehmen


gruss nighty
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

das functions ereigniss laesst einen rechner recht schnell in die knie gehen,daher sollte es nicht genutzt werden bzw nur mit sehr guten vb Kenntnissen,darum obige alternative

gruss nighty
0 Punkte
Beantwortet von
Danke für Eure Hilfe,
ich habe mir das Ganze nochmals durch den Kop gehen lassen.
Bei meinen beschränkten VBA-Kenntissen wird ein Umbau der Tabelle der einfachere Weg. sein.

hanswerner
...