Hirdetés
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- sziku69: Fűzzük össze a szavakat :)
- bambano: Bambanő háza tája
- Lalikiraly: Kinek milyen setupja van?
- sziku69: Szólánc.
- Kalandor: „Ha engedtem volna a lelkiismeretemnek, az üzlet kevésbé lett volna jövedelmező”
- pechman8: 300B vs. GU50: a Herceg és a Koldus
- Cseppino: Windows 11 25H2 frissítés – Újdonságok, AI-funkciók és rejtett beállítások.
- potyautas: Nóta állj!
-
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
-
m.zmrzlina
senior tag
válasz
djzomby #10788 üzenetére
Na tudtam, hogy egyszerűbben is lehet ezt.
Másold új modulba a következőt:
Function SZINESÖSSZEG(minta As Range, tartomany As Range)
Dim cella As Range, osszeg As Double
szin = minta.Font.Color
For Each cella In tartomany
If cella.Font.Color = szin Then
osszeg = osszeg + cella.Value
End If
Next cella
SZINESÖSSZEG = osszeg
End FunctionLegjobb ha a personal.xls (personal.xlsb) -be teszed mert akkor minden megnyitott munkafüzetben rendelkezésre fog állni egy SZINESÖSSZEG() nevű új függvény. Úgy használod mint a SZUM() fv-t csak ennek az első paramétere egy olyan abszolút cellahivatkozás (pl: $A$1) amiben ugyanolyan színű karakterek vannak mint amit össze akarsz adni.
Hogy érthetőbb legyen itt egy kép:
Köszönet az ötletért (ki másnak mint) Delila_1-nek
-
m.zmrzlina
senior tag
válasz
djzomby #10788 üzenetére
Ilyen kicsi és jól körülhatárolt tartományoknál talán még nem fájóan amatőr megoldás számlálós ciklusra bízni a dolgot:
Sub szinösszeg_v2()
Dim pirososszeg As Single, feketeosszeg As Single
Dim i As Integer, j As Integer, betuszine As Integer
Cells(1, 1).Select
For i = 1 To 10
pirososszeg = 0
feketeosszeg = 0
For j = 1 To 6
betuszine = ActiveCell.Font.ColorIndex
Select Case betuszine 'ha a szöveg színe piros
Case Is = 3 'pirososszeghez aktív cella értékét hozzáadja
pirososszeg = ActiveCell.Value + pirososszeg
Case Is = 1 ''ha a szöveg színe fekete
feketeosszeg = ActiveCell.Value + feketeosszeg 'feketeoszeghez aktív cella értékét hozzáadja
End Select
ActiveCell.Offset(0, 1).Select 'következő cella
Next j
With Range("H" & i) ' sor végére G oszlopba
.Font.ColorIndex = 3 'pirossal
.Value = pirososszeg 'pirososszeget kiír
End With
With Range("G" & i) ' sor végére H oszlopba
.Font.ColorIndex = 1 'feketével
.Value = feketeosszeg 'feketeosszeget kiír
End With
ActiveCell.Offset(1, -6).Select 'vissza a sor elejére
Next i
End SubHa a tartomány változó akkor kötelező, ha a mérete jelentősen megnő akkor érdemes újragondolni a koncepciót.
Új hozzászólás Aktív témák
- Luck Dragon: Asszociációs játék. :)
- Milyen autót vegyek?
- Projektor topic
- Világ Ninjái és Kódfejtői, egyesüljetek!
- Vicces képek
- Mégis marad a Windows 10 ingyenes frissítése
- Debrecen és környéke adok-veszek-beszélgetek
- Xiaomi 15T Pro - a téma nincs lezárva
- Autós topik
- Xbox Series X|S
- További aktív témák...
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- REFURBISHED - HP USB-C Dock G4 docking station (L13899-001)
- Azonnali készpénzes Microsoft XBOX Series S és Series X felvásárlás személyesen/csomagküldéssel
- Xiaomi Redmi Note 14 Pro 5G / 8/256GB / Kártyafüggetlen / 12Hó Garancia
- GYÖNYÖRŰ iPhone 11 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS3128
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest