Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Farbsumme automatische Berechnung
#1
Hallo liebe Excel Freunde,

Ich habe über VBA folgendes Modul erstellt:

Function Farbsumme(Bereich As Range, Farbe As Integer)
Dim Zelle As Range
Application.Volatile
For Each Zelle In Bereich
  If Zelle.Interior.ColorIndex = Farbe Then
    Farbsumme = Farbsumme + Zelle
  End If
Next
End Function

Jetzt werden alle Zahlen addiert die als Hintergrund die Farbe haben die in der Formel von mir angegeben wird. Ich wähle zB die 6, weil ich will dass alle Zellen die Gelb hinterlegt sind addiert werden sollen. 
Das klappt auch alles, jedoch mit einem Umweg. Ich muss erst auf die Formel gehen und dann nochmal enter drücken und dann aktualisiert sich die Zahl. Also wenn ich in den markierten Zellen eine Zelle gelb markiere, folgt die Addition nicht automatisch sondern nur wenn ich dann nochmal auf die Zelle gehe und enter drücke. 
Habt ihr das Verbesserungsvorschläge? Wie kann ich das umschreiben, so das dass direkt automatisch funktioniert?

Danke im voraus
Antworten Top
#2
Hallo,

in Excel die Änderung der Farbe als Event zum Starten eines Makros bzw Neuberechnung einer UDF zu erkennen, ist nicht so ganz trivial.

Da ich mich heute morgen (weitgehend) vergeblich darum bemüht habe, teile ich gerne einen link:

http://www.office-loesung.de/p/viewtopic.php?f=166&t=814220

mfg
Antworten Top
#3
Hallo Portgas,

eine Farbänderung löst leider kein Ereignis für die VBA-Funktion aus.
Aber die Taste "F9" drücken sollte reichen!

Grüße
Sigi
Antworten Top
#4
Bitte, verwende Code Tags und lade mal eine Beispieldatei hoch.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#5
Das mit F9 reicht mir schon. 

Danke euch allen

Viele Grüße

Portgas
Antworten Top
#6
Hallo,

teste mal mit diesem Code:

Code:
######### Klassenmodul: OnColor #########

Private WithEvents CB As Office.CommandBars
Private Old_Color As Long



Public Sub StartWatching()
    Set CB = Application.CommandBars
End Sub

Public Sub Old(rng)
    Old_Color = rng.Interior.Color
  
End Sub

Private Sub CB_OnUpdate()

    If Old_Color <> ActiveCell.Interior.Color Then Modul1.T_1
    
End Sub

############## Workbook #########
Private Color_Monitor As Object


Private Sub Workbook_Open()
    Set Color_Monitor = New OnColor
    
    Color_Monitor.StartWatching
    
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  
    Color_Monitor.Old ActiveCell
    
End Sub

########### Modul1.T_1 #### wird ausgeführt

Sub T_1()
Debug.Print "T_1", ActiveCell.Address
application.calculate
End Sub

Der Code ist noch etwas expirimentell, also feedback ist erwünscht!

Farbänderungen sollten erfasst werden, aber nicht das Zurücksetzen.

mfg
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste