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

Event bei Farbänderung

Event bei Farbänderung
09.03.2009 20:01:12
Christian
Hallo zusammen,
gibt es eine Möglichkeit ein Event auszulösen wenn man in einer Zelle die Zellenfarbe verändert?
Sprich wenn man "A1" gelb färbt soll beispielsweise eine Msgbox auftauchen oder was auch immer.
Gruß
Christian

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

Betreff
Datum
Anwender
Anzeige
AW: Event bei Farbänderung
09.03.2009 20:09:59
Nepumuk
Hallo Christian,
nein, das geht nicht. Du könntest dir nur einen eigenen Dialog schnitzen. Z.B. über die comdlg32.dll
Gruß
Nepumuk
AW: Event bei Farbänderung
09.03.2009 20:39:32
Original
Hi,
Wenn der zu überwachende Zellbereich nicht zu groß ist, könntes du das mit einem Timer
periodisch überwachen.
Alte Farben in Array einlesen und auf Veränderungen prüfen, bei VBA gut kein großer Akt.
mfg Kurt
AW: Event bei Farbänderung
09.03.2009 20:52:51
Christian
Vielen Dank für die Antworten.
Werde wohl mal beide Vorschläge ausprobieren.
Gruß
Christian
Wenn du den Dialog über
09.03.2009 21:29:19
Renee
die comdlg32.dll geschnitzt hast, Christian,
Ich wäre sehr daran interessiert ;-)
GreetZ Renée
Anzeige
AW: Wenn du den Dialog über
09.03.2009 21:44:45
Nepumuk
Hallo Renée,
das ist doch ganz einfach:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Declare Function CHOOSECOLOR Lib "comdlg32.dll" Alias "ChooseColorA" ( _
    ByRef pChoosecolor As CHOOSECOLOR) As Long

Private Type CHOOSECOLOR
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    rgbResult As Long
    lpCustColors As Long
    flags As Long
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
End Type

Private Const CC_RGBINIT = &H1
Private Const CC_FULLOPEN = &H2
Private Const CC_PREVENTFULLOPEN = &H4
Private Const CC_SHOWHELP = &H8
Private Const CC_ENABLEHOOK = &H10
Private Const CC_ENABLETEMPLATE = &H20
Private Const CC_ENABLETEMPLATEHANDLE = &H40
Private Const CC_SOLIDCOLOR = &H80
Private Const CC_ANYCOLOR = &H100

Public Sub Beispiel()
    Dim udtColor As CHOOSECOLOR
    Dim lngUserColor(16) As Long
    
    'Benutzerdefinierte Farben
    lngUserColor(0) = RGB(255, 0, 0)
    lngUserColor(1) = RGB(125, 125, 125)
    lngUserColor(2) = RGB(90, 90, 90)
    
    With udtColor
        .lStructSize = Len(udtColor)
        .hwndOwner = Application.Hwnd
        .hInstance = 0
        .rgbResult = RGB(255, 0, 0)
        .lpCustColors = VarPtr(lngUserColor(0))
        .flags = CC_RGBINIT Or CC_ANYCOLOR Or CC_FULLOPEN Or CC_PREVENTFULLOPEN
    End With
    
    If CHOOSECOLOR(udtColor) <> 0 Then
        If TypeOf Selection Is Range Then Selection.Interior.Color = udtColor.rgbResult
    Else
        ' MsgBox "Abbrechen gedrückt"
    End If
    
End Sub

Gruß
Nepumuk
Anzeige
Nicht du, er... ;-)) (owT)
09.03.2009 22:12:21
Renee

AW: Nicht du, er... ;-)) (owT)
09.03.2009 22:20:02
Nepumuk
Hallo Renée,
meinst du da kommt was anderes dabei raus?
Gruß
Nepumuk
So wie ich Deine Kenntnisse kenne: JA :o) oT
09.03.2009 22:31:39
Jens
AW: Event bei Farbänderung
09.03.2009 22:37:27
Tino
Hallo,
wenn man sowieso vor hat die Zellen zu färben,
könnte man dies doch auch gleich über den Dialog machen,
halt den Dialog über einen Button aufrufen.

Sub Schaltfläche1_BeiKlick()
Dim booDialog As Boolean
booDialog = Application.Dialogs(xlDialogPatterns).Show
If booDialog Then   'Ok gedrückt
'mach was
Else                'abgebrochen
'mach was anderes
End If
End Sub


Gruß Tino

oder...
09.03.2009 23:07:14
Tino
Hallo,
...mit einem neuen Eintrag im Menü rechte Maustaste,
damit man den Button nicht auf der Tabelle Suchen muss. ;-)
kommt als Code in DieseArbeitsmappe
Option Explicit 
 
Private Sub Workbook_Activate() 
Dim NeuerButton As CommandBarControl 
Set NeuerButton = Application.CommandBars("cell").Controls.Add(, , , 1) 
 
With NeuerButton 
    .FaceId = 3077 
    .Caption = "Fuellfarbe" 'Name im Menü 
    .OnAction = "Color_Cells" 'Name des Macros 
End With 
 
End Sub 
Private Sub Workbook_Deactivate() 
On Error Resume Next 
 Application.CommandBars("cell").Controls("Fuellfarbe").Delete 
End Sub 

Modul Modul1

Option Explicit 
 
Sub Color_Cells() 
Dim booDialog As Boolean 
booDialog = Application.Dialogs(xlDialogPatterns).Show 
 
If booDialog Then   'Ok gedrückt 
 'mach was 
Else                'abgebrochen 
 'mach was anderes 
End If 
 
End Sub 
 


Gruß Tino

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige