Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1044to1048
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro über Formel aufrufen

Makro über Formel aufrufen
31.01.2009 09:44:49
Michael
Hallo!
Gibt es eine Möglichkeit ein Makro über eine Formel aufzurufen. Vergleicht man in Celle a; b mit c und c ist größer gibt er mir 1 aus. Wenn nun 1 in zelle A1 erscheint (ohne enter nur über die Formel) soll ein Makro ausgeführt werden.
Danke
Michael

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro über Formel aufrufen
31.01.2009 09:53:23
Tino
Hallo,
geht über das Calculate Ereignis.
Beispiel:
Kommt als Code ins entsprechende Tabellenblatt, achte aber auf die richtige Referenzierung,
sonst kann es unerwünschte Folgen haben.

Private Sub Worksheet_Calculate()
If ThisWorkbook.Sheets("Tabelle1").Range("A1") = 1 Then
'mach was
End If
End Sub


Gruß Tino

AW: Makro über Formel aufrufen
31.01.2009 09:55:00
Reinhard

Hi Michael,
in's Modul des Blattes z.B. Tabelle1:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Cells.Count  1 Then Exit Sub
If Intersect(Target, Range("B:C")) Is Nothing Then Exit Sub
If Range("A" & Target.Row) = 1 Then Call MeinMakro
End Sub


Gruß
Reinhard

Anzeige
AW: Makro über Formel aufrufen
31.01.2009 10:38:26
Michael
Hallo Reinhard!
Danke! Ich selbst habe mich dumm und dämlich daran versucht. Manchmal ist es ganz einfach! Thank's!
INTERSECT? Wenn ich das richtig verstehe muss er zwei range Werte finden, ist dem nicht so, exit. Geht das dann auch mit cells?
Gruß Michael
AW: Makro über Formel aufrufen
31.01.2009 12:20:00
Reinhard
Hallo Michael,
ich verstehe dich grad nicht.
Nochmal falls das jmd. schon sagte, Die Ergebnisänderung einer Excelformel löst NICHT das Change-Ereignis aus.
(Das Calculate-Ereignis ist ein andrers Ereignis)
Aus diesem Grnd überprüfe ich nicht Spalte A auf Zellwertänderung sondern Spalten B und C.
Sind die Werte in B und C auch Ergebnisse einer Formel so über prüfe ich dann die Zellen die in den Formeln vorkommen.
Andersrum gesagt, NUR manuelle Änderungen eines Zellwertes lösen das Change-Ereignis und somit den Code dazu aus.
In

Private Sub Worksheet_Change(ByVal Target As Excel.Range)


ist ja Target entweder eine Zelle oder ein Zellenbereich.
mit Count zähle ich die Zellen und wenn's nicht nur eine Zelle ist kommt Exit.
Intersect vergleicht Zellbereiche auf übereinstimmende Zelladressen.
Das Ergebnis von Intersect ist also eine Zelle oder ein Zellbereich der in (hier) beiden Zellbereichen enthalten ist.
Bei keiner Übereinstimmung ist Das Ergebnis "Nothing" ("Nothing" ist nicht Null oder Leer!)
Jetzt könnte es ja sein, durch Kopieren und Einfügen o.ä. änderst du durch Strg+V (was einer manuellen Eingabe entspricht) gleichzeig die Werte in C1:D100.
Da du in Ax stehen hast: =Bx+Cx so interessieren dich ja nur die Änderungen in der C-Spalte, die D-Spalte ist dir ja egal.
Es fällt auch die Überprüfung auf nur eine geänderte Zelle weg.
Also macht man das so


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Zelle as Range
Set Target=Intersect(Target, Range("B:C"))            ' in meinem beispiel ist danach target=C1: _
C100
If Target is nothing Then Exit Sub
For each Zelle in Target
If Range("A" & Zelle.Row) = 1 Then Call MeinMakro
Next Zelle
End Sub


Gruß
Reinhard

Anzeige
AW: Makro über Formel aufrufen
02.02.2009 10:31:00
Michael
Danke! So kommt man immer ein Stück voran! ;-)
AW: Makro über Formel aufrufen
02.02.2009 10:33:00
Michael
Danke
AW: Makro über Formel aufrufen
31.01.2009 09:55:00
Hajo_Zi
Hallo Michael,
ich lese es so das Du nicht das Makro über die Formel auslösen willst sonder über das Ergebnis. Das wäre das

Option Explicit
Dim BoAnzeige As Boolean
Private Sub Worksheet_Calculate()
If Range("A1") = 1 Then
If BoAnzeige = False Then MsgBox "Ja"
BoAnzeige = True
Else
BoAnzeige = False
End If
End Sub



AW: Makro über Formel aufrufen
31.01.2009 10:59:00
Michael
Hallo! Danke! Ich versuch es mal mit vba!
Ich hatte es mal selbst mit worksheet_change porbiert. Eine Pleite. Worin liegt der Unterschied zwischen change und calculate? Bei change klappt es nicht, wenn ich die gleiche Formel einsetzte? Mal angenommen ich bau dort noch eine Schleife ein bis a letzter Wert, was müsste ich beachten?
Danke Gruß Michael
Anzeige
AW: Makro über Formel aufrufen
31.01.2009 11:04:00
Hajo_Zi
Hallo Michael,
wie Du schon festgestellt hast reagiert Cjhange nur auf Eingaben. Calculate wird bei jeder Berechnung ausgeführt.
Ich bin leider nicht der Formelmensch, mir ist nicht klar wie Du in einer Formel eine Schleife einbaust?
Gruß Hajo
AW: Makro über Formel aufrufen
31.01.2009 11:10:06
Michael
Hi!
Die Formel ist nur auf dem Arbeitsblatt! Der Rest folgt über das Makro!
Danke! Ich komm immer ein Scheibchen voran.
Gruß Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige