online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Tomschi vom 30.12.2019, 10:29 Options

VBA - Formel, Zelländerung, Makrostart

Hi!

Ich habe das gleichen Problem wie unter http://www.supportnet.de/threads/1603899 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
http://www.netupload.de/detail.php?img=be9fdcf2d665b6213824ce45d0f3...
abgelegt.

Vielen Dank für die Unterstützung.

Tom


Antwort schreiben

Antwort 1 von fedjo vom 30.12.2019, 11:01 Options

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

Gruß
fedjo

Zellinhalt in A3

Antwort 2 von Beverly vom 30.12.2019, 11:02 Options

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 vom 30.12.2019, 11:24 Options

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 vom 30.12.2019, 11:25 Options

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 vom 30.12.2019, 12:47 Options

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 vom 30.12.2019, 13:17 Options

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 vom 01.01.2020, 10:53 Options

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 vom 01.01.2020, 11:15 Options

Hi Tom,

ja, beide Codes in die entsprechende Tabelle.

Auch dir alles Gute für das Neue Jahr.

Bis später,
Karin

Ähnliche Themen

Lange FMatrix Formel per VBA berechnen lassen
achim71  24.02.2007 - 123 Hits - 2 Antworten

VBA: Formel mit Textvariable
Oli00  21.06.2007 - 95 Hits - 1 Antwort

VBA Datentyp - 2 Nachkommastellen
Catze  22.08.2007 - 32 Hits - 2 Antworten

Eingabe auf Formel anwenden
Fighter_XP  08.09.2007 - 41 Hits - 1 Antwort

Formel per VBA in Zelle schreiben
Kauz  17.04.2008 - 82 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026