Hirdetés
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Luck Dragon: Asszociációs játék. :)
- Zsoca1991102: Kábel kereső / ér pár kereső
- GoodSpeed: Munkaügyi helyzet Hajdú-Biharban: észak és dél
- djculture: Éhezők ssd és memória viadala.
- MasterDeeJay: Harc a DDR5 árak ellen
- Magga: PLEX: multimédia az egész lakásban
- D@reeo: Pi-hole és a Telekom Sagemcom F@st 5670 DNS beállítása
-
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
-
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
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Vírusirtó, Antivirus, VPN kulcsok GARANCIÁVAL!
- PC Game Pass előfizetés
- Game Pass Ultimate előfizetések 1 - 36 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN! AKCIÓ!
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- HIBÁTLAN iPhone 12 Pro Max 128GB Pacific Blue -1 ÉV GARANCIA - Kártyafüggetlen, 100% Akkumulátor
- Dell Latitude 7490 14" FHD IPS, i5 - i7, 16GB RAM, SSD, jó akku, számla, 6 hó gar
- Panasonic HC-V770 FUL HD kamera
- Jawbone Up okoskarkötő, aktivitásmérő
- KARÁCSONYI AKCIÓK / MICROSOFT WINDOWS 10,11 / OFFICE 16,19,21,24 / VÍRUS,VPN VÉDELEM / SZÁMLA / 0-24
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi



