Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1364to1368
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

Worksheet_calculate

Worksheet_calculate
26.06.2014 08:36:15
Cäptn
Guten Morgen zusammen,
ich möchte das Ereignis Worksheet_change nur bei Änderung einer bestimmten Zelle (A1) ausführen lassen. Wie funktioniert das? Standardmäßig führt ja jede Kalkulation im Worksheet zum Auslösen des Ereignisses.
Danke Euch,
C. Nuss

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_calculate
26.06.2014 08:37:16
Cäptn
sorry, ich meine Worksheet_calculate!. Im text habe ich mich vertan.

AW: Worksheet_calculate
26.06.2014 09:07:17
Robin
Hey Nuss,
vielleicht hilft dir das ja schon weiter, ist zwar jetzt nur "Change", aber dennoch sollte es seinen Zweck erfüllen.
(Bei Zelländerung/Zelleingabe in Zell "A1")
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
MsgBox "TaDa"
End If
End Sub
MfG Robin

AW: Worksheet_calculate
26.06.2014 09:08:19
Cäptn
danke! aber leider nein. _change reagiert ja nicht auf formeländerung. hätte ich erwähnen sollen: in zelle A1 steht eine formel!

Anzeige
AW: Worksheet_calculate
26.06.2014 09:13:56
Daniel
Hi
Du musst dir den alten Wert von A1 in einer statischen Variable merken und im calculate-event prüfen, ob diese Zelle geändert wurde und nur dann das Makro ausführen:
Private Sub Calculate()
Static WertAlt as String
If Range("A1").text  WertAlt then
hier der Code
WertAlt = Range("A1").text
End if
End Sub

Code ist nicht getestet, bitte nicht kopieren, sondern versuchen, das Prinzip zu verstehen und selber programmieren.
Gruß Daniel

AW: Worksheet_calculate
26.06.2014 09:16:06
Robin
Okidoki Nuss,
kein Problem, dann hätte ich diese alternative für dich schnell geschrieben.
Private Sub Worksheet_Calculate()
Dim rngC As Range
For Each rngC In Range("A1")
On Error GoTo Ende
If rngC = "!" Or rngC = "" Then Exit Sub
Next
MsgBox "TaDa"
Exit Sub
Ende:
MsgBox "Bitte nur Zahlen"
End Sub
Vielleichts ist es das, was du suchst.

Anzeige
AW: Worksheet_calculate
26.06.2014 09:21:51
Cäptn
schau ich mir auch mal an! dankeschön!!!

AW: Worksheet_calculate
26.06.2014 09:21:20
Cäptn
danke! ist verstanden und so werde ich es umsetzen.

AW: Worksheet_calculate
26.06.2014 09:27:37
Hajo_Zi
VBA Editor DieseArbeitsmappe
starte den VBA Editor (Alt+F11), Bild sollte zweigeteilt sein ansonsten Strg+R, Doppelklick auf Deine Datei, Doppelklick auf DieseArbeitsmappe, Code ins rechte Fenster kopieren, VBA Editor schließen.
Das Makro wird automatisch gestartet.
Der Code wirkt in der gesamten Datei.
VBA Editor Modul
starte den VBA Editor (Alt+F11), Bild sollte zweigeteilt sein ansonsten Strg+R, gehe auf Deine Datei, rechte Maustaste, Einfügen Modul, Code ins rechte Fenster kopieren, VBA Editor schließen.
Register Ansicht, Befehlsgruppe Makros, auf Makro klicken, Makros anzeigen, Makro auswählen und ausführen.
VBA Editor Tabelle
starte den VBA Editor (Alt+F11), Bild sollte zweigeteilt sein ansonsten Strg+R, Doppelklick auf Deine Datei, Doppelklick auf Deine Tabelle, Code ins rechte Fenster kopieren, VBA Editor schließen.
Das Makro wird automatisch gestartet.
Der Code wirkt nur in dieser Tabelle.
unter DieseArbeitsmappe
Option Explicit                                     ' Variablendefinition erforderlich
Private Sub Workbook_Open()
'* H. Ziplies                                  *
'* 16.01.10                                    *
'* erstellt von HajoZiplies@web.de             *
'* http://Hajo-Excel.de/
'* und von Karin, http://Excel-Inn.de
'* Beverly_Forums@web.de                       *
' Array mit Adressen und eingetragen Werte füllen
' da Bilder schon eingefügt wurden müssen die
' nicht eingefügt werden
StArray = Array(Array("", "", "", "", "", ""), _
Array("A10", "A20", "A30", "A40", "A50", "A60"))
With Worksheets("Tabelle1")
For Loi = 0 To UBound(StArray(0), 1)
If Range(StArray(1)(Loi))  "" Then
' Zellinhalt auf Variable
StArray(0)(Loi) = Range(StArray(1)(Loi))
End If
Next Loi
End With
End Sub
unter der Tabelle
Option Explicit                                     ' Variablendefinition erforderlich
Private Sub Worksheet_Calculate()
'* H. Ziplies                                  *
'* 24.01.10                                    *
'* erstellt von HajoZiplies@web.de             *
'* http://Hajo-Excel.de/
Dim StBild As String                            ' Variable für Bildname
Application.ScreenUpdating = False              ' Bildschimaktualisierung aus
With Worksheets("Tabelle1")
For Loi = 0 To UBound(StArray(0), 1)        ' Schleife über überwachte Zellen
If Range(StArray(1)(Loi))  "" _
And Range(StArray(1)(Loi))  StArray(0)(Loi) Then
' Zelle geändert
MsgBox 1
StArray(0)(Loi) = Range(StArray(1)(Loi))
End If
Next Loi
End With
Application.ScreenUpdating = True               ' Bildschimaktualisierung ein
End Sub
in einem Modul
Option Explicit                                     ' Variablendefinition erforderlich
Public StArray                                      ' Variable für überwachte Zelladressen
Public Loi As Long                                  ' Schleifenvariable

Anzeige
AW: Worksheet_calculate
26.06.2014 10:53:59
Cäptn
dankeschön!

22 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige