Új hozzászólás Aktív témák

  • Mutt

    senior tag

    válasz HREH #44056 üzenetére

    Szia,

    Delila válasza mellett itt egy UDF, amit feltételes formázásban használhatsz.

    Function CellaSzinek(rng As Range, Optional szinkod As String, Optional mutasd As Boolean)
    'cella színének változása nem eredményezi a képletek újra kiértekélését
    Application.Volatile

    Dim cella As Range
    Dim szin As Long

    If mutasd Then
    CellaSzinek = CStr(rng.Range("A1").Interior.Color)
    Else
    CellaSzinek = True 'megelőlegezzük hogy a tartomány színe azonos

    'ha nincs meg adva a viszonyításhoz színkód, akkor használjuk a tartomány elsõ cellájának színét
    If szinkod = "" Then
    szin = rng.Range("A1").Interior.Color
    Else
    szin = CLng(szinkod)
    End If

    For Each cella In rng
    If cella.Interior.Color <> szin Then 'ha eltérés van akkor kilépünk a ciklusból
    CellaSzinek = False
    Exit For
    End If
    Next cella
    End If

    End Function

    Túlzásba vittem, mert 3 módon lehet használni.

    - Ha csak 1 paramétert (a vizsgálandó tartományt) adsz meg, akkor a tartomány első cellájánák színéhez hasonlítja a többit. Ha azonosak, akkor IGAZ eredményt ad vissza.
    - Ha 2 paramétert adsz meg, ahol a második az adott színkód macskakörmök között amelyet keresel, akkor pedig IGAZ lesz az eredmény, ha a tartományban a cellák színe azonos a megadottal.
    - Ha a harmadik paraméter IGAZ, akkor pedig a kijelölt tartomány első cellájának színkódját kapod meg.

    üdv

Új hozzászólás Aktív témák