Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

VBA - Formel, Zelländerung, Makrostart





Frage

Hi! Ich habe das gleichen Problem wie unter [url]https://supportnet.de/threads/1603899[/url] beschrieben. Leider komme ich mit dem Lösungsansatz von Beverly alias Karin nicht ganz klar. Wenn sich der über eine Wenn-Formel definierte Zellinhalt in Spalte A3 ändert, soll das Makro starten. Ich habe dazu eine Musterdatei unter [url]http://www.netupload.de/detail.php?img=be9fdcf2d665b6213824ce45d0f3feaa.xls[/url] abgelegt. Vielen Dank für die Unterstützung. Tom

Antwort 1 von fedjo

Hallo Tom,
habe deine Datei wie gewünscht angepasst.

Gruß
fedjo

Zellinhalt in A3

Antwort 2 von Beverly

Hi Tom,

da du das UserForm nur dann aufrufen willst, wenn sich der Wert in A3 von "gerade" in "ungerade" oder umgekehrt ändert, muss zuerst festgestellt werden, welcher Wert in A3 steht. Das erfolgt mit dem Worksheet_SelectionChange Ereignis. Dann muss verglichen werden, ob die Eingabe in A1 eine Änderung in A3 auslöst - das erfolgt im Worksheet_Change Ereignis.

Option Explicit
Dim strWert As String

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then If Range("A3") <> strWert Then UserForm1.Show
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$A$1" Then strWert = Range("A3")
End Sub


Bis später,
Karin

Antwort 3 von fedjo

Hallo Tom,
habe den Code geändert.
In das Codefenster von Tabelle1 einfügen.

Gruß
fedjo

Private Sub Worksheet_Calculate()
Static za3 As Variant
If za3 <> Range("A3").Value Then
za3 = Range("A3").Value
UserForm1.Show
End If
End Sub

Antwort 4 von Tomschi

Halli Hallo!

DANKE, dass Ihr mich bei meinem "Projekt" so unterstützt!

Das Problem liegt darin, dass nicht nur die Zelle A1 eine Änderung der Formel in Zelle A3 auslösen kann.
In der echten Datei gibt es ca. 10 Möglichkeiten, die die Formel von WAHR auf FALSCH und umgekehrt setzt.

@fedjo:
Die Datei ist toll, allerdings wird bei erstmaliger Cursorpositionierung auf die Zelle A1 ebenfalls das Makro und somit das UserForm aufgerufen. Dies ist aber nicht gewünscht.

Muss jetzt leider weg.
Melde mich dann wieder.

Schönen Sonntag.

Tom

Antwort 5 von Marie

na dann setz doch einfach in
Private Sub Workbook_Open()
den Cursor auf eine Zelle, die nicht das Makro auslösen kann, mit
Sheets("Tabelle1").Range("E15").Select


Gruß Marie

Antwort 6 von Beverly

Hi Tom,

das war aber aus deiner Beispieldatei nicht ersichtlich, da sich die Formel nur auf A1 bezieht.
Ändere den Code wie folgt:

Option Explicit
Dim strWert As String
Dim raBereich As Range

Private Sub Worksheet_Change(ByVal Target As Range)
    Set raBereich = Range("A1,A10,B20,C30")
    If Not Intersect(Target, raBereich) Is Nothing Then If Range("A3") <> strWert Then UserForm1.Show
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Set raBereich = Range("A1,A10,B20,C30")
    If Not Intersect(Target, raBereich) Is Nothing Then strWert = Range("A3")
End Sub

Den Bereich der Zellen musst du an deine Bedingungen anpassen.

Bis später,
Karin

Antwort 7 von Tomschi

Halli Hallo!

Danke für die Infos!
Werde in den naechsten Tagen (hoffentlich noch vor meinem Urlaub) die Codes mal austesten.

In der Zwischenzeit hat sich eine weitere Frage für mich ergeben:
Leider wird in der Echtdatei die "Änderungszelle" auch von anderen Blättern beeinflusst.
Wenn ich dort etwas ändere erscheint jedes Mal das Userform.
Ich habe mir bis dato so beholfen, dass ich unter
Private Sub Worksheet_SelectionChange() --> ohne (ByVal Target As Range)
auf das aktive Blatt abfrage und nur bei Übereinstimmung
UserForm1.Show aufrufe.
Vielleicht liegt es ja gerade an --> ohne (ByVal Target As Range)

@Beverly:
Soll ich beide Codes in das entsprechende Tabellenblatt kopieren?

Ciao

Tom

P.S.: Hoffe, Ihr hattet einen guten Start ins Jahr 2008!

Antwort 8 von Beverly

Hi Tom,

ja, beide Codes in die entsprechende Tabelle.

Auch dir alles Gute für das Neue Jahr.

Bis später,
Karin

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: