- Vodafone mobilszolgáltatások
- Samsung Galaxy S21 FE 5G - utóirat
- Samsung Galaxy Watch4 és Watch4 Classic - próbawearzió
- A Samsung bemutatta a Galaxy XCover 7-et
- Szinte csak formaság: bemutatkozott a Pixel 6 és Pixel 6 Pro
- Mobil flották
- Samsung Galaxy S23 Ultra - non plus ultra
- Realme GT 2 - aláírjuk
- Asus Zenfone 8 - komplett kompakt
- Elhagyhat egy kamerát a Galaxy S25 Ultra
- Luck Dragon: Asszociációs játék. :)
- Lalikiraly: MSI Cyborg 15 - Tényleg Kiborg.
- antikomcsi: Való Világ: A piszkos 12 - VV12 - Való Világ 12
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- bb0t: Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
Hirdetés
-
Fizetős formában tér vissza a Wayfinder
gp A készítők átdolgozzák a korábbi free-to-play játékot, az új korai kiadás júniusban érkezik.
-
Az AI felé fordul az IKEA is
ph A vállalat a magyar felhasználókat is megcélozza az IKEA Kreativ nevű, mesterséges intelligencia technológiát is használó szolgáltatásával.
-
Oracle szervereket akar Musk AI-cége
it A jelentések szerint egy 10 milliárd dolláros üzlet keretében bérelnék az Oracle szervereit.
-
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
-
Fferi50
őstag
válasz Thrawnad #25304 üzenetére
Szia!
Lehetőségek:
Használd az AutoFilter objektumot, ezen beállíthatod a feltételeket, akár 3-nál többet is, majd ApplyFillter.A feltételt összefűzheted egy - azaz egy db - szövegbe és úgy már működik, azt kell megadni a Criteria1 értékének
Próbáld meg kézzel beállítani a szűrőt és közben rögzíteni a makrót.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz alfa20 #25308 üzenetére
Szia!
Bevallom nem egészen értem a számolási logikát:
Mitől lesz a terv -100 tény +200 százalék értéke +200%? Ha én jól gondolom, akkor ez vagy +300 % (hiszen a -100 és a +200 között éppen 300 van!), vagy ha fordítva gondolkodom, akkor - 300 %, hiszen nem csökkent 100 egységgel, hanem nőtt 200 egységgel - ami pl. költségnél egyáltalán nem kívánatos és dícséretes.
Aztán roppant érdekes ez a terv valamennyi, tény 0. Ez nálam kb. azt jelenti, hogy semmit nem sikerült megvalósítani, tehát a tervteljesítés 0 %!
A %-os változást pedig úgy számolhatod, hogy a tényből levonod az alapot és ezt viszonyítod az alaphoz.
Pld. 200- (-100)=300 osztva -100 = -300 %
Előjeles értékeknél bizony csínján kell bánni a százalékszámítás eredményeivel.
Üdv.
-
Fferi50
őstag
válasz alfa20 #25315 üzenetére
Szia!
Még mindig nem egyértelmű - az rendben, hogy -80/-100= +20 %
De a -100 és -150 az nem -150% hanem - 50% lenne. (-150 - (-100))=-50 -50/-100 =+50 %, de mivel -150 kevesebb, mint -100, ezért -50 %.Tehát (tény-terv)/terv az szerintem a kívánt eredményt adja.
Az előjelet pedig annak függvényében kell megállapítani, ha a tény < mint a terv, akkor negatív az előjele, ha nagyobb mint a terv, akkor pozitív. Ezt a viszonyítást a valós értékre értem (tehát -150 az kisebb, mint -100).
Remélem, érthető.
Üdv.
-
Fferi50
őstag
válasz m.zmrzlina #25355 üzenetére
Szia!
Ismét az a felesleges select. Sokkal egyszerübb:
Application.DisplayAlerts = False
Sheets("leotom").Delete
Application.DisplayAlerts = TrueÜdv.
-
Fferi50
őstag
válasz sedyke #25376 üzenetére
Szia!
Ha jól értem, akkor a keresendő táblázatodban nem találja meg az adott dátumot. Próbáld meg arra a dátumra rámásolni az előző dátumot (amit megtalál), majd utána átírni arra, amit keresel.
Sokszor észrevehetetlen "formai" okok játszanak közre a meg nem találásban (főleg a dátumoknál).Üdv.
-
Fferi50
őstag
válasz DrojDtroll #25379 üzenetére
Szia!
A "hiányzó" x értékekhez interpolálnod kell a megfelelő y adatokat és így "megalkotni" a grafikont.
Pl. nem csak 5 és 15 kap értéket, hanem 10, majd 20,25,30 és így tovább az egyenes egyenletének megfelelő y értékeket. (x=10 esetén 1100 (1000 és 1200 között "félúton").
Üdv.
-
Fferi50
őstag
-
Fferi50
őstag
válasz DrojDtroll #25394 üzenetére
Szia!
Nem ismerem a 2013-as verziót, de tartok tőle, hogy nincs ilyen lehetőség abban sem.
Üdv.
-
Fferi50
őstag
válasz slashing #25422 üzenetére
Szia!
Ha az A1-ben van a szám:
Bal széle:
=HA((HOSSZ(A1)-HOSSZ(HELYETTE(A1;"*";"")))=0;A1;ÉRTÉK(BAL(A1;SZÖVEG.KERES("~*";A1)-1)))
Közepe:
=HA((HOSSZ(A1)-HOSSZ(HELYETTE(A1;"*";"")))=0;"";HA((HOSSZ(A1)-HOSSZ(HELYETTE(A1;"*";"")))=1;ÉRTÉK(HELYETTE(A1;C1&"*";""));ÉRTÉK(KÖZÉP(A1;SZÖVEG.KERES("~*";A1)+1;SZÖVEG.KERES("~*";HELYETTE(A1;C1&"*";""))-1))))
Jobb széle:
=HA((HOSSZ(A1)-HOSSZ(HELYETTE(A1;"*";"")))=0;"";HA((HOSSZ(A1)-HOSSZ(HELYETTE(A1;"*";"")))=1;"";ÉRTÉK(HELYETTE(HELYETTE(HELYETTE(A1;"*";"");C1;"");D1;""))))Ez elvileg 3 tényezős szorzatig működik, ha nincs szorzás azt is tudja, ha 2 tényező van, azt is.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz Delila_1 #25423 üzenetére
Szia!
Ha már makró, próbáljuk meg tömbfüggvénnyel:
Function szetszedo(ByRef cl As Range)
alap = cl.Value
alap = alap & String(2 - UBound(Split(cl.Value, "*")), "*")
szetszedo = Split(alap, "*")
End FunctionKijelölöd a 3 cellát vizszintesen, ahová az eredményt szeretnéd kapni.
Ezután beírod =szetszedo(A1) , ha a "szétdobandó" szám az A1 cellában van.
Tömbképletként (shift+Ctrl+Enter) beviszed.Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
Szia!
"Most nézem csak, hogy a frissitőből kihagytad az ön-újraidőzítést, nem?"
De! Nyilván minden lefutáskor újra kell időzíteni.
Az időzítő kikapcsolásra pedig azért van szükség, mert application szinten van bekapcsolva, azaz "emlékszik rá", hogy kellene valamit csinálnia - ezért "panaszkodni fog", vagy egyszerűen "benyalja" a korábbi fájlt és megcsinálja az időzített folyamatot akkor is, ha nem szeretnéd.
Azért fontos, hogy a következő frissítés időpontját eltároljuk, mert pontosan kell rá hivatkozni a kikapcsolásnál. (Nyilván a Now+timevalue(akármi) egy konkrét időpont, de ha nem tudod mi ez az időpont, akkor nem fogod tudni "utolérni" az időzített programot.)
Az éppen abban a pillanatban elindult frissítést viszont már nem tudod kikapcsolni, az le fog futni, csak a későbbi időpontot lehet "törölni".
Üdv.
-
Fferi50
őstag
válasz m.zmrzlina #25459 üzenetére
Szia!
A VBA-ban a nevek nem úgy működnek, mint a munkalapon. A names("név").referstorange mutat a név által meghatározott területre, a names("név").refersto pedig az adott névhez tartozó terület címét adja meg.
Tehát ezt a sor részt:
Workbooks("forrásadatok.xlsx").Names("gyümölcsök")ki kell egészíteni:
Workbooks("forrásadatok.xlsx").Names("gyümölcsök").referstorange
Másrészt, sokkal gyorsabb, ha a range.replace tulajdonságát használod:
wsKabelo.Range("C2:C129").replace what:="ALMA",replacement:=1,lookat:=xlwhole
ami az egész tartományban kicseréli az ALMA szót az 1 számra.
A javított makró pedig a Gyümölcsök tartományon megy végig - és kicseréli az első oszlopban található gyümölcsneveket a második oszlopban található számokra:
Set rng_gyümölcsök = Workbooks("forrásadatok.xlsx").Names("gyümölcsök").referstorange
Set wsKabelo = ActiveSheet
for each cl in rng_gyümölcsök.columns(1).cells
wsKabelo.range("C2:C129").replace what:=cl.value,replacement:=cl.offset(0,1).value, lookat:=xlwhole
nextEgyébként annyit javaslok még, hogy ne használj ékezetes karaktereket a makrókban és a neveknél, mert ebben az esetben nem hordozható a munkafüzeted, más (pl.angol) környezetben hibásan /vagy nem működik.
Üdv.
-
Fferi50
őstag
válasz m.zmrzlina #25461 üzenetére
Látom, közben Te is megtaláltad a megoldókulcsot. Csak még fűztem hozzá némi egyéb dolgot.
Üdv.
-
Fferi50
őstag
válasz m.zmrzlina #25464 üzenetére
Szia!
Az első csak "illusztráció" volt a működésre. (De az is csak annyiszor kell lefusson, ahány gyümölcsneved van és nem az egész tartomány cellaszámának megfelelően.)
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz m.zmrzlina #25466 üzenetére
Nálad az igazság!
-
Fferi50
őstag
Szia!
Ez azt jelenti, hogy van egy időzítésed, ami éles és szeretett volna lefutni - de az a program/munkafüzet már nem aktív, ami elindította, illetve amiben a futtatandó makró lenne. Ezért kell kikapcsolni az időzítést, mielőtt kilépsz a programból. Természetesen lehet globális változóba is tenni az időpont értékét (Public-ként vagy Globál-ként is definiálhatod egy általános modulban). Nálam nem volt probléma a munkafüzetbe irkálás.
A közös használat azért igényel némi óvatosságot.
A közös használatú munkafüzetnek van egy saját frissítési opciója. A korrektúra menü munkafüzet megosztása menüpontban láthatod, hogy beállítható a frissítés és az ütközések kezelése is. Természetesen ez megy makróból is.
Ebben az esetben minden nyitott munkafüzet a megadott periódusonként frissíti és menti magát.
Lehet, hogy Neked ebbe az irányba kellene elindulni?
Közös használatúvá tevés:
If Not ActiveWorkbook.MultiUserEditing Then
ActiveWorkbook.SaveAs fileName:=ActiveWorkbook.FullName, _
accessMode:=xlShared
End If
Előtte még be kell állítani a frissítést és az ütközések kezelését is.Üdv.
-
Fferi50
őstag
Szia!
Az előbb rosszul írtam, a frissítési periódust a közössé tétel után kell megadni:
ActiveWorkbook.AutoUpdateFrequency=10
Az ütközés kezelés is változtatható határok között:
Activeworkbook.ConflictResolution=xlUserResolutionA változások megőrzési ideje is változtatható.
Üdv.
-
Fferi50
őstag
válasz KaliJoe #25479 üzenetére
Szia!
Ha tömbnek hoztad létre, akkor az Ubound(tömb) függvény mutatja, hogy hány eleme van az adott tömbnek.
Tehát elég, ha azt írod a redim utasításba, hogy
redim preserve tömb(ubound(tömb+1)).
De ezt minden egyes tömbelem - egész rekord! - beolvasása után meg kell tenned.A preserve azért kell, hogy megmaradjanak az addig bevitt értékek.
A byt_Ciklus változó helyett használhatod az Ubound(tömb) értéket számlálónak (bár a tömb nevét elnézve, nyilván a rövidebb a praktikusabb.Tehát közvetlenül az end if elé be kell tenned, hogy
redim preserve udef_MunkavállalóAdatbázis(byt_Ciklus)
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
Szia!
Azt gondolom, az a baja, hogy a kovetkezo cella és nem időérték. szerintem úgy kellene meghívni, hogy
Application.Ontime, kovetkezo.value,"frissito_idozito"Ezért(is) szoktam én mindig odaírni a value tulajdonságot is, mert bár igaz, hogy a range alapértelemzett tulajdonsága az érték, de sajnos ezt nem mindig tudja a VBA "értelmezni" - itt pl. egy időértéket vár.
Remélem, ez segít.
De szerintem ezzel együtt ki kellene lépni teljesen az excelből, hogy "elfelejtse" ezt az időzítést.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
Szia!
Nos, azt gondolom, hogy saját magát nem szerencsés meghívni, hanem egy másik eljárást kell hívni, aminek a végére ismét betesszük az időzítés meghívását.
Tehát az üzenetet tedd bele egy külön eljárásba és annak a végén hívd meg az időzítőt újra. Tehát az időzítő eljárásban a másik eljárás neve szerepel, mint meghívó.
Szerintem ez lesz a nyerő.
Bocs, eddig nem figyeltem fel rá, hogy nem két külön eljárást nézek - biztosan a tavaszi fáradtság volt az oka (ez keltette fel a gyanúmat: "Vagy önmagát ne tudná beidőzíteni?")
Nálam mindig külön eljárás az időzítő és az időzített folyamat.
Sőt, a kikapcsolásra, biztos ami biztos alapon van egy harmadik is.(Még egy icipici apróság: a call egyáltalán nem szükséges, ha vba eljárásokat hívsz meg.Help:"You are not required to use the Call keyword when calling a procedure.")
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz Tiboy86 #25497 üzenetére
Szia!
Némi segítséget azért szokott a függvényhez tartozó súgó adni.
A hetek számát tartalmazó oszlopot másold át egy új helyre - akár azon a munkalapon is, úgy, hogy csak egyszer szerepeljen a hét. Ezt megteheted az adatok - speciális/irányított szűrő segítségével, ha 2007-es vagy annál frissebb exceled van, akkor az átmásolt oszlopon adatok - ismétlődések eltávolítása.
Ha megvan az egyedi hétszámod az oszlopban, legyen ez a V oszlop, V1-től kezdődően, akkor a W1 cella képlete
= Szumha(B:B;V1;S:S)Ezt a képletet húzod végig a hetek számának aljáig.
Üdv.
-
Fferi50
őstag
válasz Tiboy86 #25499 üzenetére
Szia!
De azt csak tudod, hogyan következnek egymás után a hetek? A hetek számát és a képletet beírod előre az adott két oszlopba.
Legfeljebb a képletet módosítod úgy, hogy
=HA(Szumha(B:B;V1;S:S)=0;"";Szumha(B:B;V1;S:S))
és így nem lesz 0 az oszlopban.
Ahogyan beírják a B és S oszlopba az adatokat, a képlet kiszámolja az értéket és látni fogod a grafikonon.Vagy átalakítod táblázattá az adathalmazodat és csinálsz belőle egy kimutatást/kimutatásdiagramot(!), amit időnként (hetente) egy mozdulattal frissítesz. A táblázattá alakítás miatt automatikusan változni fog a kimutatás forrása is, ahogyan írják hozzá a következő sorokat.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz Tiboy86 #25507 üzenetére
Szia!
Valamit biztosan elirtál, talán az aposztrófok (') hiányoztak. Mert egyébként azzal a képlettel is mennie kellene.
Még úgy is, ha az egyik helyen $B$1:$B$5000, a másik helyen pedig $S:$S szerepel.Ha képleted felteszed, okosabb leszek. (Esetleg az, hogy képlettel keletkezik a hét is?)
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz lumpy82 #25511 üzenetére
Szia!
Érdekes lenne tudni, hogy milyen hibát ír az excel mentéskor.
Mert abból lehetne következtetni arra, mit kellene tenni.
Érdemes lenne megnézni az adatkapcsolatokat - hivatkozásokat is.
Én mindenesetre megpróbálnék egy mentés másként opciót - akár más néven is xlsx vagy xlsm fájlként.Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz lumpy82 #25513 üzenetére
Szia!
Egy kicsit el van rejtve ez a dolog, de némi kutatással úgy gondolom, sikerült elővadászni.
Teendők:Fájl - beállítások - menüszalag testreszabása.
A bal oldalon válaszd ki minden parancs.
A jobb oldalon a Kezdőlaphoz adj hozzá egy új csoportot.
Most a bal oldalon keresd meg a Közzététel parancsot - ha megvan küldd át az új csoportba.Ezután nyisd meg a munkafüzetet. A kezdőlap végén ott lesz a közzététel menüpont. Indítsd el, ott megtalálod a "kiirtási" lehetőséget is.
Üdv.
-
Fferi50
őstag
válasz kszilard #25523 üzenetére
Szia!
Nem írtad, hogy milyen excel verziód van. 2007-től már lehet pl. olyat csinálni, hogy átlag alatti - átlag feletti színezés, vagy első - utolsó x % színezése.
De ehhez szerintem külön oszlopban kellene lennie az 1-es és a 0-ás értékeknek.Másik lehetőség: egy-egy külön fix cellába beírod az "átlagok" képletet mindkét sorozatra.
Utána az adott oszlopra csinálsz feltételes formázást, formázandó cellák kijelölése képlettelA képlet pedig lehet ez =és(a1=1;b1<$G$1*0,98) kitöltőszin piros
másik képlet =és(a1=0;b1<$G$2*0,98) kitöltőszin narancsA G1 és G2 cellában vannak az átlagok.
Üdv.
-
Fferi50
őstag
válasz Henker2 #25541 üzenetére
Szia!
Fkeres függvényt használd. Gondolom az idei és a tavalyi van két külön fülön.
A biztonság kedvéért én először egy külön oszlopban csinálnám a "felülírást", mivel képletben saját magára hivatkozva hibát kapsz.Tehát, az idei fülön egy új oszlopban ezt a képletet írod be:
C2 cella képlete =hahiba(fkeres(A2;regi!$A$1:$B$40000;2;0);B2)Ezt húzod végig.
Az azonosító mindkét táblában az A oszlopban van, az elnevezés a jelen esetben a B oszlopban a régi táblában.Ha nem találja meg a régi táblában az azonosítót, akkor az új táblában levő elnevezést írja be, egyébként a tavalyit.Utána a képletes oszlopot másolod és beilleszted értékként saját magára és az idei tábla B oszlopára, majd kitörölheted az eredetileg képletes oszlopot.
Üdv.
-
Fferi50
őstag
Szia!
Szerintem ToggleButton a Ribbonra nem tehető ki.
Makrót viszont tehetsz fel a ribbonra és adhatsz hozzá ikont is.
Fájl - beállítások - menüszalag testreszabása - bal oldalon kiválasztod makrók. A jobb oldalon pedig kiválasztod azt a menücsoportot, ahova be szeretnéd tenni.A ribbonra makrón kívüli saját menüpontokat xml fájlon keresztül lehet (Custom UI Editor for Microsoft Office, letölthető MS-éktől).
Ha bővebben leírnád, hogy mit szeretnél, esetleg még többet tudunk segíteni.
Üdv.
-
Fferi50
őstag
válasz Shadow Angel #25552 üzenetére
Szia!
Az objektumokon for each ciklussal tudsz végigmenni. Mivel a tartomány és a cella is objektum, ezért itt is ezt kell használni:
A kijelölt tartomány celláin így mehetsz végig:
For each cl in Selection.cells
' ide jön a művelet pl.
cl.value=right(cl.value,5) ' a formulában saját magára nem hivatkozhatsz, mert az körkörös hibát okoz
NextSelection helyett beírhatod a konkrét tartományt :
For each cl in range("A1:X121").cells
'műveletek
NextA For Each előnye, hogy nem kell tudnod, hány db van az adott objektumból éppen.
Üdv.
-
Fferi50
őstag
válasz pirit28 #25559 üzenetére
Szia!
Arra tudok gondolni, hogy nem létezik a FilePathL nevű fájl és mivel a hibakezelést visszaadtad a VBA-nak ezért hibával le fog állni.
Az On Error Goto 0 sort szerintem az End If után kell beletenni.
Így a második "nyitási kísérlet után" is meg tudod nézni, hogy sikerült-e a hozzárendelés és le tudod kezelni programból a hibát.If GetFile is Nothing Then
Set GetFile=.....
If GetFile is Nothing Then
ide írhatod, hogy mi legyen ha ez sincs meg
End If
End If
On Error Goto 0Üdv.
[ Szerkesztve ]
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs