Hirdetés
- gban: Ingyen kellene, de tegnapra
- aquark: Zsebszámológépek
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Luck Dragon: MárkaLánc
- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Oldman2: A KOReader ebook olvasó program
- Magga: PLEX: multimédia az egész lakásban
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
-
LOGOUT
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Mutt
senior tag
Hello,
...ha egy fehér munkalapon az egyik cella színét megváltoztatom (pl:sárgára) akkor egy másik munkalapon lévő hivatkozás ne az eredeti értéket vegye alapul, hanem egy előre beállított értéket. (pl: sárga esetén =SZ)
Delila_1 megoldása mellett én is csináltam egy változatot.
Ahogy már olvastad cella színére nincs alapból esemény, ezért valós időben megfogni nem lehet.
Azt választottam, hogy egy ún. volatile függvényt írtam, amely akkor is frissül, ha az érintett cellában nincs változás. Ez azt jelenti, hogy ha vhol módosítasz akkor máris frissül az eredmény.
Az UDF használata:
=ColorDecode(vizsgalando cella;színkód1;eredmény1;színkód2;eredmény2;....)Ahol a színkód pl. fekete, sárga, piros stb. Az eredmény lehet szöveg, másik cella, képlet. Ha nincs találat, akkor az eredei cellát adja vissza.
pl. =ColorDecode(A2;"fekete";-100;"piros";2*2;"zöld";"Z+")
Vagyis ha az A2 színe fekete akkor -100-t ír, ha zöld akkor "Z+"t, sárga esetén pedig az A2 cella értékét.Itt a kód, amelyet te is tudsz bővíteni, csak a színeket és a hozzájuk tartozó kódokat kell felsorolnod. Ezt megkapod, ha csak egy paramétert használsz, pl. ColorDecode(A2)
Function ColorDecode(original As Range, ParamArray contents()) As Variant
Const ColorNum As Integer = 10 'ha 10-nél több szín formázást akarunk
Const ColorNames As String = "FEKETE,SÖTÉTVÖRÖS,PIROS,NARANCS,SÁRGA,VILÁGOSZÖLD,ZÖLD,KÉK,SÖTÉTKÉK,LILA"
Const ColorCodes As String = "0,192,255,49407,65535,5296274,5287936,15773696,6299648,10498160"
Dim vOriginalColor As Long
Dim arrayColors(1 To 2, 1 To 10) 'itt is a 10 javítani, ha fent átírod
Dim i As Integer
Dim s1, s2
Dim blnColorMatch As Boolean
Dim strMatch As String
Dim blnInputMatch As Boolean
'fusson le minden újraszámláláskor
Application.Volatile
'visszadjuk az eredeti értéket, ha nem találunk mást
ColorDecode = original
'az eredeti cella színét megnézzük
vOriginalColor = original.Interior.Color
Select Case UBound(contents)
'ha nincs paraméter akkor kiírjuk a színkódot
Case -1
ColorDecode = "Cella színkódja: " & vOriginalColor
'több paraméter esetén visszatér a megadott értékkel, ha tud
Case Else
'feltöltjük az ismert kódokat tömbbe
s1 = Split(ColorCodes, ",")
s2 = Split(ColorNames, ",")
For i = 1 To ColorNum
arrayColors(1, i) = s1(i - 1)
arrayColors(2, i) = s2(i - 1)
Next i
'megkeressük, hogy ezt a színt ismerjük-e
i = 0
blnColorMatch = False
Do
i = i + 1
If arrayColors(1, i) = vOriginalColor Then
blnColorMatch = True
strMatch = arrayColors(2, i)
End If
Loop Until blnColorMatch Or i = ColorNum
'ha a színt ismerjük, akkor megnézzük, hogy adtak-e rá paramétert
If blnColorMatch Then
blnInputMatch = False
i = 0
Do
'ha megtaláljuk, akkor a kövekező bemeneti paramétert írjuk ki
If strMatch = UCase(contents(i)) Then
ColorDecode = contents(i + 1)
blnInputMatch = True
End If
i = i + 2
Loop Until blnInputMatch Or i > UBound(contents)
End If
End Select
End FunctionBővítésnél a kód elején adj meg egy nevet, majd alatta a kódját. Ha 10-nél több kombinációd van akkor az első konstanst is emeld meg és a Dim arrayColors(1 To 2, 1 To 10) sorban is javítsd a 10-es számot.
üdv.
Új hozzászólás Aktív témák
- Bittorrent topik
- AMD vs. INTEL vs. NVIDIA
- Wise (ex-TransferWise)
- Google Pixel 9a - a lapos munka
- Telekom mobilszolgáltatások
- Fejhallgató erősítő és DAC topik
- A tajvani chipgyártóknak is beteszi a kaput a Hormuzi-szoros lezárása
- exHWSW - Értünk mindenhez IS
- gban: Ingyen kellene, de tegnapra
- Xiaomi 17 - még mindig tart
- További aktív témák...
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Game Pass Ultimate előfizetések 1 - 36 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN! AKCIÓ!
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem.
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - 15% AKCIÓ
- Samsung Galaxy A04s / 3/32GB / Kártyafüggetlen / 12Hó Garancia
- Sima Vs.Windows Logitech Mx keys s plus és hagyományos Mx keys magyar bemutatása. Új videó linkkel
- 271 - Lenovo Yoga Pro 9 (16IAH10) - Intel Core U9 285H, RTX 5070
- Építőipari csomag (vakológépek, targoncák, építőipari eszközök és kellékek, egyéb, sok más)
- Beszámítás! Sony PlayStation 5 825GB digital garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Fferi50