Anzeige
Archiv - Navigation
1040to1044
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

Function automatisch wie ?

Function automatisch wie ?
25.01.2009 15:07:00
Johann
Hallo Forum,
wie stelle ich es an , dass folgende Function automatisch in dem betreffenden Tabellblatt ausgeführt wird.
Im Moment sieht es so aus, das das gewünschte Ergebnis erst aktuell ist wenn die entsprechende
Zelle angewählt ist und die Zelleingabe erneut bestätigt wird. Zelleingabe in diesem Bsp. ist = ferientage()
Ziel ist es, wenn die entsprechende Farbe für die auszuwertenden Zellen vorhanden ist das Gesamtergebnis in der entsprechenden Zelle anzuzeigen .
Als Procedur klappt das alles gut, aber bei der Automatik haperts...
__________
Function ferientage() As Integer Dim Spalte As Integer, reihe As Integer For Spalte = 2 To 36 Step 3 For reihe = 4 To 34 If Cells(reihe, Spalte).Interior.ColorIndex = 50 Then ferientage = ferientage + 1 End If Next Next End Function


___________
Für Antworten bedanke ich mich bereits jetzt :)

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Function automatisch wie ?
25.01.2009 15:13:18
Hajo_Zi
Hallo Johann,
ergäze die Zeile
Application.Volatile

AW: Function automatisch wie ?
25.01.2009 15:19:26
Johann
Hallo danke für die schnelle Anwort, aber ich hatte das auch schon versucht, da sah die Function so aus

Function ferientage() As Integer
Dim Spalte As Integer, reihe As Integer
Application.Volatile
For Spalte = 2 To 36 Step 3
For reihe = 4 To 34
If Cells(reihe, Spalte).Interior.ColorIndex = 50 Then
ferientage = ferientage + 1
End If
Next
Next
End Function


_________________
hat aber keine Änderung gebracht

Anzeige
AW: Function automatisch wie ?
25.01.2009 15:22:53
Uwe
Hi,
das wollte ich auch gerade vorschlagen.
Allerdings wird die Neuberechnung nur durch z.B. eine Eingabe in eine x-beliebige Zelle ausgelöst, aber NICHT durch das Formatieren einer Zelle.
Ich weiß dass das Setzen einer Farbe in Excel kein Ereignis auslöst. Ist es daher überhaupt möglich die Funktion dabei upzudaten? (Meine Antwort wäre: Nein)
Gruß
Uwe
(:o)
AW: Function automatisch wie ?
25.01.2009 15:31:00
Johann
Hallo, die Frage wäre jetzt, ist es möglich solch ein imaginäres Ereignis in die Function einzubauen ?
Ein solches Ereignis wäre Now * 0
25.01.2009 15:37:00
Backowe
Hi Johann,
VBA-Code:
Function ferientage() As Integer
  Dim Spalte%, Reihe%
  Application.Volatile
  For Spalte = 2 To 36 Step 3
    For Reihe = 4 To 34
      If (Now * 0) + Cells(Reihe, Spalte).Interior.ColorIndex = 50 Then
        ferientage = ferientage + 1
      End If
    Next
  Next
End Function
Gruß Jürgen
AW: Ein solches Ereignis wäre Now * 0
Johann

Hallo Jürgen,
das kann's auch nicht sein. Ergebnis wird so immer 0
Kann ich nicht nachvollziehen!
Backowe

Hi Johann,
in meinen Tests funktioniert es.
 BC
5 5
6  
7  
8  
9  

Formeln der Tabelle
ZelleFormel
C5=ferientage()


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Jürgen
AW: Kann ich nicht nachvollziehen!
Johann

Hallo Jürgen
wenn Du in diesem Test die Füllfarbe einer Zelle in B änderst, wird dann automatisch der wert in C5 geändert ?
Wenn ich bei mir in irgendeiner Zelle einen Doppelklick mach wird's auch aktualisiert, aber eben nicht nur durch ändern der Farbe..................
AW: Ein solches Ereignis wäre Now * 0
Johann

Hi, nochmal ...wird immer 0 stimmt nicht ganz...es ändert sich nichts.
Dann übertrage die Farbe mit dem Pinsel ...
Backowe

Hallo Johann,
... dann hast Du Dein Change-Ereignis. ;o)
Gruß Jürgen
AW: Dann übertrage die Farbe mit dem Pinsel ...
Johann

Hallo Jürgen,
das ist wahrscheinlich die einzige Alternative die bleibt.................................aber funzt.
Mal sehen ob noch jemand 'ne Lösung anzubieten hat :)
Gruß Johann
AW: Function automatisch wie ?
Gerd

Hallo Johanna,
schreibe in eine Zelle z.B. in A1 = ferientage(D1) und in D1 = Jetzt()
Die flüchtigen Funktionen sind allerdings nicht nebenwirkungsfrei.
'in ein allgemeines Modul

Function ferientage(Nun As Date) As Integer
Dim Spalte As Integer, reihe As Integer
Application.Volatile
For Spalte = 2 To 36 Step 3
For reihe = 4 To 34
If Cells(reihe, Spalte).Interior.ColorIndex = 50 Then
ferientage = ferientage + 1
End If
Next
Next
End Function


Gruß Gerd

AW: Function automatisch wie ?
Gerd

Ich schneide ganz schnell bei deinem Vorname wieder ein a ab.
Sorry
Gerd
AW: Function automatisch wie ?
Johann

solange du nur das a abschneidest ist ja alles ok :)
bei meiner Antwort eben denk dir das a einfach weg :)
AW: Function automatisch wie ?
Johann

Hallo Gerda :)
auch bei diesem Versuch ist das Ergebnis nicht das gewünschte...erst nach einem weiteren Ereignis wird die Zelle entsprechen aktualisiert...
Gruß Johann
AW: Excel rechnet nicht mit Farben.
Daniel

hi
Excel ist einfach nicht für das rechnen mit Farben konzipiert.
trage einfach ein "F" für Ferien in die entsprechende Zelle ein und du kannst über ZÄHLENWENN die Anzahl der Ferientage einfach auszählen.
falls gewünscht, kannst du dann immer noch über die bedingte Formatierung oder ein Even-gesteuertes Makro die entsprechenden Farben eintragen.
beim Ändern von Zellwerten wird ein Ereignis ausgelöst, beim Ändern von Formatierungen nicht.
Gruß, Daniel
AW: Excel rechnet nicht mit Farben.
Johann

Hallo Daniel,
es ist mir schon bewusst, dass ich das gewünschte Ergenis auch auf andere Art und Weise erreichen kann. In diesem Fall aber ist es nicht zweckmässig mit Buchstaben zu markieren. Es soll ganz einfach immer mit der Maus ein Bereich(Datumsangaben)selektiert werden und entsprechen eingefärbt werden (was ja auch kein Problem darstellt). Die Gefahr das nichtaktuelle Daten für anderes Tabellenblatt übernommen werden ist in diesem Falle zu gross.
Aber komisch ist schon, dass Formatierungen, die mit der Pinselmethode gemacht werden diese Ereignis sehr wohl auslösen um die Tabelle zu aktualisieren.
Gruß Johann
AW: Excel rechnet nicht mit Farben.
Daniel

HI
naja, der Pinsel ist ja auch ein Kopieren-Einfügen-Vorgang, nur das halt eben die Formeln nicht übertragen werden.
Wenn du es dem Anwender einfach machen willst, dann würde ich einfach einen Button einfügen mit einem kleinen Makro dahinter, daß den entsprechenden Kennbuchstaben (für Excel zum Rechnen) in die selektierten Zellen einträgt.
Gruß, Daniel
...oder ein Makro, das die Pinselei übnimmt! orT
Luc:-?

Gruß Luc :-?
Besser informiert sein!
AW: Function automatisch wie ?
Gerd

Hallo Johann :-),
dann rufe die Funktion zusätzlich aus einer Ereignisprozedur auf.
Gruß Gerd
AW: Function automatisch wie ?
Johann

Hallo Gerd,
ja so hatte ich es ja auch bis jetzt mit einem Button (aktualisieren). War meiner Meinung nach aber nicht eine so elegante Lösung.................
Gruß Johann
AW: Function automatisch wie ?
Gerd

Hallo Johann,
ich dachte im Groben eher an solch eine Prozedur.



' **************************************************************
' Modul: Tabelle1 Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************

Option Explicit
Private Sub Worksheet_Activate()
Application.EnableEvents = False
Call ferientage(Now)
Application.EnableEvents = True
End Sub


Code eingefügt mit: Excel Code Jeanie



Gruß Gerd

Anzeige
AW: Ein solches Ereignis wäre Now * 0
25.01.2009 15:55:00
Johann
Hallo Jürgen,
das kann's auch nicht sein. Ergebnis wird so immer 0
Kann ich nicht nachvollziehen!
25.01.2009 16:01:00
Backowe
Hi Johann,
in meinen Tests funktioniert es.
 BC
5 5
6  
7  
8  
9  

Formeln der Tabelle
ZelleFormel
C5=ferientage()


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Jürgen
Anzeige
AW: Kann ich nicht nachvollziehen!
25.01.2009 16:17:00
Johann
Hallo Jürgen
wenn Du in diesem Test die Füllfarbe einer Zelle in B änderst, wird dann automatisch der wert in C5 geändert ?
Wenn ich bei mir in irgendeiner Zelle einen Doppelklick mach wird's auch aktualisiert, aber eben nicht nur durch ändern der Farbe..................
AW: Ein solches Ereignis wäre Now * 0
25.01.2009 16:02:34
Johann
Hi, nochmal ...wird immer 0 stimmt nicht ganz...es ändert sich nichts.
Dann übertrage die Farbe mit dem Pinsel ...
25.01.2009 16:15:58
Backowe
Hallo Johann,
... dann hast Du Dein Change-Ereignis. ;o)
Gruß Jürgen
AW: Dann übertrage die Farbe mit dem Pinsel ...
25.01.2009 16:38:51
Johann
Hallo Jürgen,
das ist wahrscheinlich die einzige Alternative die bleibt.................................aber funzt.
Mal sehen ob noch jemand 'ne Lösung anzubieten hat :)
Gruß Johann
Anzeige
AW: Function automatisch wie ?
25.01.2009 16:16:00
Gerd
Hallo Johanna,
schreibe in eine Zelle z.B. in A1 = ferientage(D1) und in D1 = Jetzt()
Die flüchtigen Funktionen sind allerdings nicht nebenwirkungsfrei.
'in ein allgemeines Modul

Function ferientage(Nun As Date) As Integer
Dim Spalte As Integer, reihe As Integer
Application.Volatile
For Spalte = 2 To 36 Step 3
For reihe = 4 To 34
If Cells(reihe, Spalte).Interior.ColorIndex = 50 Then
ferientage = ferientage + 1
End If
Next
Next
End Function


Gruß Gerd

AW: Function automatisch wie ?
25.01.2009 16:20:00
Gerd
Ich schneide ganz schnell bei deinem Vorname wieder ein a ab.
Sorry
Gerd
Anzeige
AW: Function automatisch wie ?
25.01.2009 16:31:15
Johann
solange du nur das a abschneidest ist ja alles ok :)
bei meiner Antwort eben denk dir das a einfach weg :)
AW: Function automatisch wie ?
25.01.2009 16:28:57
Johann
Hallo Gerda :)
auch bei diesem Versuch ist das Ergebnis nicht das gewünschte...erst nach einem weiteren Ereignis wird die Zelle entsprechen aktualisiert...
Gruß Johann
AW: Excel rechnet nicht mit Farben.
25.01.2009 16:33:00
Daniel
hi
Excel ist einfach nicht für das rechnen mit Farben konzipiert.
trage einfach ein "F" für Ferien in die entsprechende Zelle ein und du kannst über ZÄHLENWENN die Anzahl der Ferientage einfach auszählen.
falls gewünscht, kannst du dann immer noch über die bedingte Formatierung oder ein Even-gesteuertes Makro die entsprechenden Farben eintragen.
beim Ändern von Zellwerten wird ein Ereignis ausgelöst, beim Ändern von Formatierungen nicht.
Gruß, Daniel
Anzeige
AW: Excel rechnet nicht mit Farben.
25.01.2009 16:51:48
Johann
Hallo Daniel,
es ist mir schon bewusst, dass ich das gewünschte Ergenis auch auf andere Art und Weise erreichen kann. In diesem Fall aber ist es nicht zweckmässig mit Buchstaben zu markieren. Es soll ganz einfach immer mit der Maus ein Bereich(Datumsangaben)selektiert werden und entsprechen eingefärbt werden (was ja auch kein Problem darstellt). Die Gefahr das nichtaktuelle Daten für anderes Tabellenblatt übernommen werden ist in diesem Falle zu gross.
Aber komisch ist schon, dass Formatierungen, die mit der Pinselmethode gemacht werden diese Ereignis sehr wohl auslösen um die Tabelle zu aktualisieren.
Gruß Johann
Anzeige
AW: Excel rechnet nicht mit Farben.
25.01.2009 18:12:48
Daniel
HI
naja, der Pinsel ist ja auch ein Kopieren-Einfügen-Vorgang, nur das halt eben die Formeln nicht übertragen werden.
Wenn du es dem Anwender einfach machen willst, dann würde ich einfach einen Button einfügen mit einem kleinen Makro dahinter, daß den entsprechenden Kennbuchstaben (für Excel zum Rechnen) in die selektierten Zellen einträgt.
Gruß, Daniel
...oder ein Makro, das die Pinselei übnimmt! orT
26.01.2009 02:17:32
Luc:-?
Gruß Luc :-?
Besser informiert sein!
AW: Function automatisch wie ?
25.01.2009 16:38:00
Gerd
Hallo Johann :-),
dann rufe die Funktion zusätzlich aus einer Ereignisprozedur auf.
Gruß Gerd
AW: Function automatisch wie ?
25.01.2009 18:18:29
Johann
Hallo Gerd,
ja so hatte ich es ja auch bis jetzt mit einem Button (aktualisieren). War meiner Meinung nach aber nicht eine so elegante Lösung.................
Gruß Johann
Anzeige
AW: Function automatisch wie ?
25.01.2009 18:31:45
Gerd
Hallo Johann,
ich dachte im Groben eher an solch eine Prozedur.



' **************************************************************
' Modul: Tabelle1 Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************

Option Explicit
Private Sub Worksheet_Activate()
Application.EnableEvents = False
Call ferientage(Now)
Application.EnableEvents = True
End Sub


Code eingefügt mit: Excel Code Jeanie



Gruß Gerd

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige