- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- Brogyi: CTEK akkumulátor töltő és másolatai
- Luck Dragon: Asszociációs játék. :)
- Tomasz72: Ventilátor upgrade
- sziku69: Szólánc.
- MasterDeeJay: H110-es lapban 10.gen Comet Lake működhet?
- eBay-es kütyük kis pénzért
- Parci: Milyen mosógépet vegyek?
- Mr. Y: Motoros sztorik #06
-
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 - 2024
Public 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)ban
Const MYDELIMITER = " "
'szöveg típusú dinamikus tömb
Dim MyStringArray() As String
'színek deklarálása tömbben (bármennyi lehet)
Dim MyColors() As Variant
MyColors() = 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ároljuk
Dim MyColorIndex As Long
'SPLIT függvény segítségével, a MYDELIMITER paraméterrel tömböt hozunk létre
MyStringArray = 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ől
MyColorIndex = UBound(Filter(MyColors, MyStringArray(0), , vbTextCompare))
If MyColorIndex > -1 Then
Fire_dm1970_FX = UCase(MyStringArray(0))
Exit Function
End 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ől
MyColorIndex = UBound(Filter(MyColors, MyStringArray(UBound(MyStringArray)), , vbTextCompare))
If MyColorIndex > -1 Then
Fire_dm1970_FX = UCase(MyStringArray(UBound(MyStringArray)))
Exit Function
End 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ől
MyColorIndex = UBound(Filter(MyColors, MyStringArray(i), , vbTextCompare))
If MyColorIndex > -1 Then
Fire_dm1970_FX = UCase(MyStringArray(i + 1))
Exit Function
End If
'ha nem találtunk a cellában deklarált színt, akkor töröljük a cella tartalmát
Fire_dm1970_FX = ""
Next i
End 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
Hirdetés
- AKCIÓ! Apple Macbook Pro 16" 2019 i9 9980HK 64GB 500GB Radeon Pro 5500M hibátlan működéssel
- Bomba ár! Lenovo ThinkPad L390 - i7-8GEN I 8GB I 256SSD I 13,3" HD I HDMI I Cam I W11 I Gari!
- Apple iPhone 14 256GB/ 86% Akkuval / 12 hónap jótállással!
- BESZÁMÍTÁS! Gigabyte B760M i7 12700K 16GB DDR4 512GB SSD RX 6700 XT 12GB Rampage SHIVA Enermax 750W
- ÁRGARANCIA! Épített KomPhone i5 10600KF 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest