- iPhone topik
- Apple iPhone 17 - alap
- Apple iPhone 17 Pro Max – fennsík
- Fotók, videók mobillal
- EarFun Air Pro 4 - a cél a csúcs
- Android alkalmazások - szoftver kibeszélő topik
- Google Pixel topik
- Apple iPhone Air - almacsutka
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Samsung Galaxy S25 - végre van kicsi!
-
Mobilarena
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
- iKing.Hu - Apple iPhone 13 mini Kompakt erőgép, megbízható teljesítmény 256 GB
- Samsung S23+ 256GB Állapot: 10/10 6 hónap jótállás!
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- Apple iPhone 15 128GB,Dobozával,12 hónap garanciával
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest