Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
588to592
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
588to592
588to592
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA: Ereignis bei ?nderung eines Zelleninhaltes.

AW: VBA: Ereignis bei ?nderung eines Zelleninhaltes.
23.03.2005 17:58:01
Bert
Wenn dir eine garantiert frei Zelle zur Verf?gung steht, schreib da eine Formel rein
z.B. Anzahl2(AN11:AP200) und nutze das Calculate-Ereignis.
Bert

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Aber nur wenn keine weiteren Formel auf der ...
23.03.2005 18:07:11
Dominic
sheet gibt, weil dann immer wieder der Code laufen wird.
Gru?
Dominic
AW: Aber nur wenn keine weiteren Formel auf der ..
23.03.2005 18:25:59
Horst
Hallo Dominic,
vielen Dank f?r Deinen Hinweis und das Beispiel zur Empfehlung von Bert.
Da ich aber Dauer-VBA-Anf?nger bin, wei? ich leider nicht, wie ich "Tabelle2" erzeugen kann ohne gleichzeitig ein neues Tabellenblatt in Excel anzulegen (so wie in Deinem Beispiel).
Wenn ich das richtig verstehe, dann muss der Code f?r die Logik, welche durch das Ereignis ausgel?st wird, in diesem separaten Blatt sein. Ist das richtig ?
Kannst Du mir da noch etwas detaillierter weiterhelfen ? Vielen Dank im Voraus.
Gru?,
Horst
Anzeige
AW: Aber nur wenn keine weiteren Formel auf der ..
24.03.2005 09:38:44
Dominic
Bin wieder da.
Das neue Tabellenblatt erstellst Du wie normal, aber danach kannst Du diese ?ber Format Blatt ausblenden. Vorher erstellst Du aber noch irgendwo eine Summenformel f?r den gegebenen Bereich. Und der Code wird dann ?ber das Ergebnis des neuen Tabellenblattes gesteuert.
Eine andere L?sung kann sein wenn Du den Ereignis Selection_Change benutzt. Wenn Du in einer der Zellen was eingibst und danach Enter dr?ckst, wird eine andere Zelle selektiert (entweder der untere, obere, rechte, linke Zelle). Anbei habe ich ein Beispiel daf?r:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim a As Long
Dim b As Long
b = 40
a = 11
If Application.MoveAfterReturnDirection = xlToRight Then
b = b + 1
ElseIf Application.MoveAfterReturnDirection = xlUp Then
a = a - 1
ElseIf Application.MoveAfterReturnDirection = xlToLeft Then
b = b - 1
ElseIf Application.MoveAfterReturnDirection = xlDown Then
a = a + 1
End If
If Target.Row >= a And Target.Row <= (a + 190) And Target.Column >= b And Target.Column <= (b + 3) Then
MsgBox "Code hierhin!"
End If
End Sub

Gru?
Dominic
Anzeige
AW: Aber nur wenn keine weiteren Formel auf der ..
24.03.2005 10:31:15
Horst
Hallo Dominic,
sch?n, dass Du noch an meine R?ckfrage gedacht hast.
Ich werde Deinen Vorschlag heute Nachmitteg ausprobieren. Jetzt komme ich wahrscheinlich nicht dazu (Arbeit und so ...).
Ich f?rchte nur, mein Problem l?sst sich auch damit nicht ganz l?sen, da die ?nderungen nicht durch manuelle Eingabe und die Enter-Taste in die Zellen kommen, sondern ?ber eine DDE-Schnittstelle mit einem Java-Applet vom Internet. In den Zellen selbst steht nur eine Formel d.h. ein API Code (Beispiel: =>meine User-Id|tik!Id7?req?COMP_IND_NASDAQ).
Wenn dann der numerische Wert eingef?gt wird, sehe ich den zwar, aber Target erkennt nicht die ?nderung. Vielleicht gibt es aber auch eine andere L?sung bei der ich die Position der gerade ge?nderten Zelle zur Verf?gung gestellt bekomme. Die Position ist genau das, was ich ben?tige.
Ich werde aber noch mal damit rumexperimentieren, vielleicht klappt's doch irgendwie. Ich gebe dann ein Feedback.
Gru?,
Horst
Anzeige
Private Sub Worksheet_Calculate()
23.03.2005 18:29:56
ransi


      
hallo horst
wenn es dir nur darum geht zu erfahren  ob  
in dem bereich  irgendwas  geändert wurde,
versuchs mal so:
Option Explicit
Dim Total_Focus As Range
Private Sub Worksheet_Calculate()
On Error Resume Next
If Total_Focus.Value = Range("an11:ap200").Value Then MsgBox "Zelle(n) im Bereich geändert. "
Set Total_Focus = Range("an11:ap200")
End Sub
ransi 


Anzeige
AW: Private Sub Worksheet_Calculate()
23.03.2005 18:42:27
Horst
Guten Abend Ransi,
es geht mir zwar darum, zu erfahren ob irgendwas ge?ndert wurde, aber dieses Ereignis soll dann eine andere Funktionalit?t ausl?sen. K?nnte ich meinen Code daf?r dann eifach an die Stelle Deines "MsgBox ... " setzen ? Dann w?re mir doch geholfen. Ich werde es einfach mal ausprobieren. Doch das dauert bei mir ein Weilchen - bin halt noch nicht so schnell im Umgang mit dieser f?r mich neuen Welt.
Gru?,
Horst
AW: Private Sub Worksheet_Calculate()
23.03.2005 18:47:48
ransi
hallo horst
versuch macht kluch...
probier doch einfach mal...
ransi
AW: Private Sub Worksheet_Calculate()
Horst
... na klar, wie immer, bei so viel Hilfe.
Doch zuvor habe ich mir Dein "SyntaxHi" runtergeladen. Darf ich das installieren ? Ist das Freeware ? Mir haben Deine sch?nen farbigen Zeilen gefallen. Bei mir ist immer alles grau. Liegt wohl daran, dass ich VBA-Anf?nger bin - hab ich gedacht.
Bis sp?ter,
Horst
Anzeige
AW: Private Sub Worksheet_Calculate()
23.03.2005 19:05:03
ransi
hallo horst
aus der hilfe im syntaxhighlighter :
--------------------------------------------------------------------------------
Das Programm wird in unregelm??igen Abst?nden weiter entwickelt und verbessert. Mit der aktuellen Version 3.0 wurde eine ganze Reihe von Verbesserungen eingef?hrt. So gibt es jetzt z.B. keine zus?tzliche DLL mehr, und die Parser-Engine wurde direkt in die ausf?hrbare Datei einkompiliert. Dar?ber hinaus wurden einige sehr n?tzliche Funktionen implementiert, die mit der urspr?nglichen Aufgabe des Programms nur noch wenig zu tun haben. Und da der Funktionsumfang zugenommen hat, gibt es nun auch erstmalig eine Hilfedatei ;-)
Bis Version 1.5 (bzw. 1.6) wurde das Projekt parallel als ausf?hrbare Datei (exe) und als COM-AddIn (f?r VB6, VBA, VS6) erstellt. Die Entwicklung des COM-AddIns wurde jedoch eingestellt, da sich praktisch niemand daf?r interessiert hat.
Das Programm ist Freeware. F?r alle meine Freeware-Programme gilt, da? deren Benutzung kostenfrei ist. Sie k?nnen diese Programme an Freunde, Kollegen und Bekannte weitergeben, solange die Software nicht ver?ndert wird. Wenn Sie planen, diese Programme zur ?ffentlichen Nutzbarmachung auf einen Server (z.B. Internet) zu ?bertragen, oder auf einem Datentr?ger (z.B. CD) weiterzugeben, so bedarf dies der vorherigen Zustimmung des Autors.
Beachten Sie bitte, da? die Anwendung des Programms auf eigene Gefahr erfolgt, und jede Art von Haftung ist ausgeschlossen.
Zudem haben Sie f?r dieses Programm keinerlei Anspruch auf Support.

--------------------------------------------------------------------------------
Copyright ? 2004 Thomas Risi"
ransi
Anzeige
AW: Private Sub Worksheet_Calculate()
23.03.2005 22:33:02
Horst
Hallo Ransi,
nach langem Probieren bin ich jetzt zu der Erkenntnis gekommen, dass Dein Konstrukt zwar funktioniert was den zu ?berwachenden Bereich betrifft, aber ich hatte vorher mit der Anweisung
"Private Sub Worksheet_Change(ByVal Target As Range)"
in "Target" die genaue Position der Ver?nderung. Das geht offensichtich mit "Worksheet_Calculate()" nicht mehr.
Meine Frage ist nun: Gibt es einen anderen Weg als ?ber "Target" an die genaue Position der Ver?nderung zu kommen ? Solltest Du eine Idee haben, so lass sie mich bitte wissen.
Gru?,
Horst
AW: VBA: Ereignis bei ?nderung eines Zelleninhaltes.
23.03.2005 17:58:01
Bert
Wenn dir eine garantiert frei Zelle zur Verf?gung steht, schreib da eine Formel rein
z.B. Anzahl2(AN11:AP200) und nutze das Calculate-Ereignis.
Bert
Anzeige
Aber nur wenn keine weiteren Formel auf der ...
23.03.2005 18:07:11
Dominic
sheet gibt, weil dann immer wieder der Code laufen wird.
Gru?
Dominic
AW: Aber nur wenn keine weiteren Formel auf der ..
23.03.2005 18:25:59
Horst
Hallo Dominic,
vielen Dank f?r Deinen Hinweis und das Beispiel zur Empfehlung von Bert.
Da ich aber Dauer-VBA-Anf?nger bin, wei? ich leider nicht, wie ich "Tabelle2" erzeugen kann ohne gleichzeitig ein neues Tabellenblatt in Excel anzulegen (so wie in Deinem Beispiel).
Wenn ich das richtig verstehe, dann muss der Code f?r die Logik, welche durch das Ereignis ausgel?st wird, in diesem separaten Blatt sein. Ist das richtig ?
Kannst Du mir da noch etwas detaillierter weiterhelfen ? Vielen Dank im Voraus.
Gru?,
Horst
Anzeige
AW: Aber nur wenn keine weiteren Formel auf der ..
24.03.2005 09:38:44
Dominic
Bin wieder da.
Das neue Tabellenblatt erstellst Du wie normal, aber danach kannst Du diese ?ber Format Blatt ausblenden. Vorher erstellst Du aber noch irgendwo eine Summenformel f?r den gegebenen Bereich. Und der Code wird dann ?ber das Ergebnis des neuen Tabellenblattes gesteuert.
Eine andere L?sung kann sein wenn Du den Ereignis Selection_Change benutzt. Wenn Du in einer der Zellen was eingibst und danach Enter dr?ckst, wird eine andere Zelle selektiert (entweder der untere, obere, rechte, linke Zelle). Anbei habe ich ein Beispiel daf?r:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim a As Long
Dim b As Long
b = 40
a = 11
If Application.MoveAfterReturnDirection = xlToRight Then
b = b + 1
ElseIf Application.MoveAfterReturnDirection = xlUp Then
a = a - 1
ElseIf Application.MoveAfterReturnDirection = xlToLeft Then
b = b - 1
ElseIf Application.MoveAfterReturnDirection = xlDown Then
a = a + 1
End If
If Target.Row >= a And Target.Row <= (a + 190) And Target.Column >= b And Target.Column <= (b + 3) Then
MsgBox "Code hierhin!"
End If
End Sub

Gru?
Dominic
Anzeige
AW: Aber nur wenn keine weiteren Formel auf der ..
24.03.2005 10:31:15
Horst
Hallo Dominic,
sch?n, dass Du noch an meine R?ckfrage gedacht hast.
Ich werde Deinen Vorschlag heute Nachmitteg ausprobieren. Jetzt komme ich wahrscheinlich nicht dazu (Arbeit und so ...).
Ich f?rchte nur, mein Problem l?sst sich auch damit nicht ganz l?sen, da die ?nderungen nicht durch manuelle Eingabe und die Enter-Taste in die Zellen kommen, sondern ?ber eine DDE-Schnittstelle mit einem Java-Applet vom Internet. In den Zellen selbst steht nur eine Formel d.h. ein API Code (Beispiel: =>meine User-Id|tik!Id7?req?COMP_IND_NASDAQ).
Wenn dann der numerische Wert eingef?gt wird, sehe ich den zwar, aber Target erkennt nicht die ?nderung. Vielleicht gibt es aber auch eine andere L?sung bei der ich die Position der gerade ge?nderten Zelle zur Verf?gung gestellt bekomme. Die Position ist genau das, was ich ben?tige.
Ich werde aber noch mal damit rumexperimentieren, vielleicht klappt's doch irgendwie. Ich gebe dann ein Feedback.
Gru?,
Horst
Private Sub Worksheet_Calculate()
23.03.2005 18:29:56
ransi


      
hallo horst
wenn es dir nur darum geht zu erfahren  ob  
in dem bereich  irgendwas  geändert wurde,
versuchs mal so:
Option Explicit
Dim Total_Focus As Range
Private Sub Worksheet_Calculate()
On Error Resume Next
If Total_Focus.Value = Range("an11:ap200").Value Then MsgBox "Zelle(n) im Bereich geändert. "
Set Total_Focus = Range("an11:ap200")
End Sub
ransi 


AW: Private Sub Worksheet_Calculate()
23.03.2005 18:42:27
Horst
Guten Abend Ransi,
es geht mir zwar darum, zu erfahren ob irgendwas ge?ndert wurde, aber dieses Ereignis soll dann eine andere Funktionalit?t ausl?sen. K?nnte ich meinen Code daf?r dann eifach an die Stelle Deines "MsgBox ... " setzen ? Dann w?re mir doch geholfen. Ich werde es einfach mal ausprobieren. Doch das dauert bei mir ein Weilchen - bin halt noch nicht so schnell im Umgang mit dieser f?r mich neuen Welt.
Gru?,
Horst
AW: Private Sub Worksheet_Calculate()
23.03.2005 18:47:48
ransi
hallo horst
versuch macht kluch...
probier doch einfach mal...
ransi
AW: Private Sub Worksheet_Calculate()
Horst
... na klar, wie immer, bei so viel Hilfe.
Doch zuvor habe ich mir Dein "SyntaxHi" runtergeladen. Darf ich das installieren ? Ist das Freeware ? Mir haben Deine sch?nen farbigen Zeilen gefallen. Bei mir ist immer alles grau. Liegt wohl daran, dass ich VBA-Anf?nger bin - hab ich gedacht.
Bis sp?ter,
Horst
AW: Private Sub Worksheet_Calculate()
23.03.2005 19:05:03
ransi
hallo horst
aus der hilfe im syntaxhighlighter :
--------------------------------------------------------------------------------
Das Programm wird in unregelm??igen Abst?nden weiter entwickelt und verbessert. Mit der aktuellen Version 3.0 wurde eine ganze Reihe von Verbesserungen eingef?hrt. So gibt es jetzt z.B. keine zus?tzliche DLL mehr, und die Parser-Engine wurde direkt in die ausf?hrbare Datei einkompiliert. Dar?ber hinaus wurden einige sehr n?tzliche Funktionen implementiert, die mit der urspr?nglichen Aufgabe des Programms nur noch wenig zu tun haben. Und da der Funktionsumfang zugenommen hat, gibt es nun auch erstmalig eine Hilfedatei ;-)
Bis Version 1.5 (bzw. 1.6) wurde das Projekt parallel als ausf?hrbare Datei (exe) und als COM-AddIn (f?r VB6, VBA, VS6) erstellt. Die Entwicklung des COM-AddIns wurde jedoch eingestellt, da sich praktisch niemand daf?r interessiert hat.
Das Programm ist Freeware. F?r alle meine Freeware-Programme gilt, da? deren Benutzung kostenfrei ist. Sie k?nnen diese Programme an Freunde, Kollegen und Bekannte weitergeben, solange die Software nicht ver?ndert wird. Wenn Sie planen, diese Programme zur ?ffentlichen Nutzbarmachung auf einen Server (z.B. Internet) zu ?bertragen, oder auf einem Datentr?ger (z.B. CD) weiterzugeben, so bedarf dies der vorherigen Zustimmung des Autors.
Beachten Sie bitte, da? die Anwendung des Programms auf eigene Gefahr erfolgt, und jede Art von Haftung ist ausgeschlossen.
Zudem haben Sie f?r dieses Programm keinerlei Anspruch auf Support.

--------------------------------------------------------------------------------
Copyright ? 2004 Thomas Risi"
ransi
AW: Private Sub Worksheet_Calculate()
23.03.2005 22:33:02
Horst
Hallo Ransi,
nach langem Probieren bin ich jetzt zu der Erkenntnis gekommen, dass Dein Konstrukt zwar funktioniert was den zu ?berwachenden Bereich betrifft, aber ich hatte vorher mit der Anweisung
"Private Sub Worksheet_Change(ByVal Target As Range)"
in "Target" die genaue Position der Ver?nderung. Das geht offensichtich mit "Worksheet_Calculate()" nicht mehr.
Meine Frage ist nun: Gibt es einen anderen Weg als ?ber "Target" an die genaue Position der Ver?nderung zu kommen ? Solltest Du eine Idee haben, so lass sie mich bitte wissen.
Gru?,
Horst

28 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige