-
Fototrend
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
-
válasz
Fferi50
#52972
üzenetére
Úgyis régen makróztam, kedvem szottyant kicsit nosztalgiázni ezen a késői órán, szabályokat meg úgy értelmeztem, ahogy korábban.

Ha másra nem is lesz jó, páran talán találnak benne hasznosítható dolgokat...
Module1-be
Option Explicit'Fire/SOUL/CD - 2024Public Function Fire_dm1970_FX(MyCell As Range) As String'elválasztó karakter (itt szóköz), ezzel vannak elválasztva a szavak a cellá(k)banConst MYDELIMITER = " "'szöveg típusú dinamikus tömbDim MyStringArray() As String'színek deklarálása tömbben (bármennyi lehet)Dim MyColors() As VariantMyColors() = Array("FEHÉR", "KÉK", "ZÖLD", "PIROS", "FEKETE", "HUPIKÉK")'ciklusszámlálóDim i As Long'az Ubound fx értékét ebben tároljukDim MyColorIndex As Long'SPLIT függvény segítségével, a MYDELIMITER paraméterrel tömböt hozunk létreMyStringArray = Split(MyCell.Value, MYDELIMITER)'végignézzük a tömb elemeit (szavakat a cellában, ami bármennyi lehet)For i = 0 To UBound(MyStringArray)'a tömb 0. eleme (első szó a cellában) egy deklarált szín?'ha igen, akkor a színt adjuk vissza és kilépünk a függvénybőlMyColorIndex = UBound(Filter(MyColors, MyStringArray(0), , vbTextCompare))If MyColorIndex > -1 ThenFire_dm1970_FX = UCase(MyStringArray(0))Exit FunctionEnd If'a tömb utolsó eleme (utolsó szó a cellában) egy deklarált szín?'ha igen, akkor a színt adjuk vissza és kilépünk a függvénybőlMyColorIndex = UBound(Filter(MyColors, MyStringArray(UBound(MyStringArray)), , vbTextCompare))If MyColorIndex > -1 ThenFire_dm1970_FX = UCase(MyStringArray(UBound(MyStringArray)))Exit FunctionEnd If'a tömb i-edik eleme egy deklarált szín?'ha igen, akkor az i+1-dik elemet (cellában első megtalált deklarált színt követő szót) adjuk vissza és kilépünk a függvénybőlMyColorIndex = UBound(Filter(MyColors, MyStringArray(i), , vbTextCompare))If MyColorIndex > -1 ThenFire_dm1970_FX = UCase(MyStringArray(i + 1))Exit FunctionEnd If'ha nem találtunk a cellában deklarált színt, akkor töröljük a cella tartalmátFire_dm1970_FX = ""Next iEnd Function -
válasz
Fferi50
#52972
üzenetére
Korábban írtam, hogy ebből a példából le lehet vonni szabályt és arra lehet makrót írni, ami egyszerű(bb), de ha -ahogy írod is- figyelembe vesszük ezt is:
"Az indító kérdésben még alma, körte, ivólé.... valamint kg és doboz szerepelt..."
na akkor borul minden...
Én is inkább megvárom, míg nem látom a konkrét táblát, mert addig gyárthatunk akármilyen megoldást, aztán a konkrét táblában meg semmire nem lesz jó...

Új hozzászólás Aktív témák
- Melyik tápegységet vegyem?
- Samsung kuponkunyeráló
- Vezeték nélküli fejhallgatók
- Nvidia GPU-k jövője - amit tudni vélünk
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Tőzsde és gazdaság
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Szingapúri tanúsítvány utal a Xiaomi 17T széria nemzetközi érkezésére
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- További aktív témák...
- Dell Inspiron 15 3520 - 15.6"FHD IPS - i7-1255U - 8GB - 512GB - Win11 - MAGYAR - 1,5 év garancia
- Hp ProDesk/ EliteDesk SFF/MT G4/ G5/ G6 / i5 8-9-10.gen /Win11- Számla, garancia
- 27% ASUS VY249HF White IPS Monitor! 1920x1080 / 100Hz / 1ms / FreeSync
- DJI mini 3 drón display unit
- Gamer PC-Számítógép! Csere-Beszámítás! R7 5700 / RTX 2080Ti 11GB / 16GB DDR4 / 1TB SSD!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


