Keresés

Részletes keresés

pimre Creative Commons License 2013.05.25 0 0 21413

Bocs a kései válaszért, mostanában ritkán vagyok internetközelben: Szóval én nem munkafüzet megosztásra akarom használni a jelszót, hanem jogosultságok beállítására. Van, akinek csak betekintési joga lesz, van, akinek írási joga is lesz, másoknak meg semmi.

 

 

Előzmény: tbando (21364)
Törölt nick Creative Commons License 2013.05.24 0 0 21412

Lehet más triggerhez kötni, pl. gombnyomás, munkalap váltás, duplakatt egy bizonyos cellára, vagy billentyűkombináció, stb.  Akkor nem fut le olyan gyakran, csak amikor akarod.

Előzmény: mihalylori (21411)
mihalylori Creative Commons License 2013.05.24 0 0 21411

Köszönöm, így valóban működik. Én csak az aktuális laphoz szúrtam be.

Viszont tényleg elég sokat gondolkodik.

Köszönöm. Kisérletezek egy kicsit rajta, mennyire használható a gyakorlatban.

Előzmény: Törölt nick (21410)
Törölt nick Creative Commons License 2013.05.24 0 0 21410

A Visual Basic Editor bal felső paneljában (Project - VBAProject feliratú ablak) keesd meg a ThisWorkbook objektumot, kattints rá duplán, és a jobbra megnyíló kódlapra másold be a kódot. És ha akarod, részletesen elmondom, mi hogyan van benne.

Előzmény: mihalylori (21409)
mihalylori Creative Commons License 2013.05.24 0 0 21409

Próbáltam a te megoldásodat is, de sajnos azt nem teljesen értem, bemásolva viszont nem működik. Olyan, mintha soha nem futna le függvény.

Előzmény: Törölt nick (21407)
aderill Creative Commons License 2013.05.24 0 0 21408

Valóban ! ebben teljes mértékben egyetértek, viszont a kollégának 3 lapja volt, ott azért az egyszerüségénél fogva simán áttekinthető ez a megoldás :)

Előzmény: Törölt nick (21404)
Törölt nick Creative Commons License 2013.05.24 0 0 21407

Sendkeys és Volatile - mindkettő az Excel sokat szidott képességei közé tartozik. Azt gondolom, gyerek kezébe nem adunk töltött puskát, szóval én ezt a megoldást nem támogatom, bocsi. Talán valaki más.

Előzmény: mihalylori (21406)
mihalylori Creative Commons License 2013.05.24 0 0 21406

-előzmény: Jimmy the Hand, tbando

Az F2 + ENTER valóban frissíti a lap összes függvényét, feltéve ha önmagában áll a függvény. Az Application.Volatile már akkor is frissíti, ha további műveletet végzek a függvénnyel, pl. egy szorzó van a függvény mellett.

Most már csak az F2 + ENTERT kellene összehoznom egy OnChange függvénnyel. Ebben kérnék még egy kis segítséget. Sajnos VBA-ben nem nagyon vagyok otthon.

Előzmény: tbando (21402)
Törölt nick Creative Commons License 2013.05.24 0 0 21405

Sztem a százfüles excel munkafüzet eleganciája eleve alulról közelíti a nullát. Annyira szegényes néhol az informatikai kultúra...

Csak nézem, ahogy egyesek klasszikus adatbázisfeladatra focipálya méretű excel munkalapokat használnak...

Előzmény: Törölt nick (21404)
Törölt nick Creative Commons License 2013.05.24 0 0 21404

Igen, tudom. De ez max nehany fullel mukodik. Ha azok szama valtozik, akkor mindig frissiteni kell a kepletet. Aztan tobb tucat, szaz fullel (ceges kornyezetben ez siman elofordul) szinte lehetetlen karbantartani egy ilyen kepletet, meg ugye eleganciaja is 0 fele konvergal :)

Előzmény: aderill (21397)
tbando Creative Commons License 2013.05.24 0 0 21403

Bocs. Az F2+Enter-hez mégiscsak kell az application.volatile. 

Előzmény: tbando (21402)
tbando Creative Commons License 2013.05.24 0 0 21402

Akkor próbáld ki ezt: Bárhol állhatsz a munkalapon. F2 + Enter. Nálam még az application.volatile se kellett hozzá. 

Előzmény: mihalylori (21400)
Törölt nick Creative Commons License 2013.05.24 0 0 21401

Próbáld ezzel kombinálni.

 

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim rng As Range, c As Range, cParent As Range
    Dim PreviousValue As Variant
    Application.EnableEvents = False
    Set rng = Sh.Cells.SpecialCells(xlCellTypeFormulas)
    For Each c In rng.Cells
        If InStr(c.Formula, "szinesdarabteli") > 0 Then
            Set cParent = c.DirectPrecedents.Cells(1)
            PreviousValue = cParent.Value
            cParent.Value = "asdrcfgh"
            cParent.Value = PreviousValue
        End If
    Next
    Application.EnableEvents = True
End Sub

 

Úgy működik, hogy a

Function szinesdarabteli(tartomany As Range, szinesertek As Integer)

definícióban a tartomany nevű tartomány első cellájának értékét megváltoztatja, és ezzel kikényszeríti az Excelben a képlet újraszámolását. Aztán visszaírja az eredeti értéket. (Amivel újra kikényszeríti a képlet kiszámolását, de ezt nem lehet elkerülni.)

Elvileg új cella kijelölésére indul, és a fenti módszerrel sorban frissíti az aktuális munkalapon az összes szinesdarabteli függvényt tartalmazó képletet.

(Valamilyen eseményhez kötni kellett, és ez a leggyakoribb. A cellaszín változása önmagában nem indít semmilyen folyamatot.)

 

Mivel a kód az összes cellakijelölés-változáskor lefut, ha sok ilyen szinesdarabteli képleted van, akkor előfordulhat némi lassulás, nem teszteltem ki.

Előzmény: mihalylori (21398)
mihalylori Creative Commons License 2013.05.24 0 0 21400

Az a gond, hogy egy lapon nagyon sokszor használom a függvényt. Ráadásul havonta újraszíneződik a lap, és a sorok, így a függvények száma is változhat.

Előzmény: tbando (21399)
tbando Creative Commons License 2013.05.24 0 0 21399

Szerintem az alábbi makrók jól frissítenek.

Az első újra beírja függvényt. Tegyük fel a függvényed az a1-ben van:

 

Range(“a1”).formula =”képlet”

 

A képletet úgy tudod  a legkönnyebben vba kompatibilisen megkreálni, hogy ráállsz a képletet már tartalmazó celládra, majd elinditod a makrórögzítőt az F2 Enter lépések rögzitésére.

 

***

 

A másik rutin:

 

Range(“a1”).select

Application.SendKeys "{F2}" & "~"  

 

Előzmény: mihalylori (21395)
mihalylori Creative Commons License 2013.05.24 0 0 21398
Előzmény: Törölt nick (21396)
aderill Creative Commons License 2013.05.24 0 0 21397

Én is ezt javasoltam :)

Előzmény: Törölt nick (21392)
Törölt nick Creative Commons License 2013.05.24 0 0 21396

Hogy néz ki a függvényed?

Előzmény: mihalylori (21395)
mihalylori Creative Commons License 2013.05.24 0 0 21395

Köszönöm, de...

A Application.Volatile nem csinál semmit, nem is lassul az Excell (2007), de nem is frissít a függvény.

Nyomógomb vagy billentyűparancsra én is gondoltam, de több lapon több sorban alkalmazva van a függvény. Tudok olyan parancsot adni, amivel a függvény összes előfordulását frissíti?

Előzmény: Sánta Kutya (SK) (21388)
Sánta Kutya (SK) Creative Commons License 2013.05.24 0 0 21394

Akkor mégiscsak igazam volt, hogy nem működik!

Ez nem jó, mert nem két fül van, hanem 4-7 között változó (alapból 4, de ha bejön egy ideiglenes dolgozó kampányra, akkor másolunk neki egyet). És ha módosítani kell rajta, mindegyik tagot módosítani kéne.

A másikat majd kiptóbálom a jövő héten, köszi! Bár nem hangzik egyszerűen, de egy próbát megér.

Előzmény: Törölt nick (21392)
Törölt nick Creative Commons License 2013.05.24 0 0 21393

Ezt most csak googleztam, de logikailag mukodik (bar ketsegkivul komplexebb, 2-3 fulnel sztem nem kell ennyire bonyolitani).

 

=SUMPRODUCT(SUMIF(INDIRECT("'"&SheetList&"'!A2:A10"),D2,INDIRECT("'"&SheetList&"'!B2:B10")))

A &SheetList& meg egy Defined Name a tabokat tartalmazza. Formulas -> Define Name-ben ki lehet valasztani tobb fult a "Refers To" mezoben.

 

(U.I.: nekerdezd ezek hogyvannak magyarul, mert fogalmam sincs)

Előzmény: Törölt nick (21392)
Törölt nick Creative Commons License 2013.05.24 0 0 21392

Szerintem egy fuggvennyel azt nem lehet.

 

SUMIF(lista1,ertek,osszeadando)+SUMIF(lista1,ertek,osszeadando2) modszer nem jo?

Előzmény: Sánta Kutya (SK) (21391)
Sánta Kutya (SK) Creative Commons License 2013.05.24 0 0 21391

Na de olyat mutass, ahol az összegzendő adatok vannak több munkalapon! Pl. az Összeg fül A2 cellájában levő értéket keresem a Munka1:Munka5!S:S oszlopokban, és a mellette a T oszlopban talált értékeket adja össze az Összeg!B2-ben.

Előzmény: Törölt nick (21390)
Törölt nick Creative Commons License 2013.05.24 0 0 21390

Pedig mukodik az:

 

En ez alabbit rendszeresen hasznalom pl. az egyik fileban

SUMIF(Data!$S:$S,VALUE($J$2),Data2!$T:$T)

Előzmény: Sánta Kutya (SK) (21389)
Sánta Kutya (SK) Creative Commons License 2013.05.24 0 0 21389

Viszont én többször próbáltam a SZUMHA függvényt működésre bírni több munkalapon keresztül, és nem sikerült, mintha ezt nem szeretné.

Előzmény: aderill (21385)
Sánta Kutya (SK) Creative Commons License 2013.05.24 0 0 21388

Próbáld meg beírni az első sorba, hogy Application.Volatile. Viszont le fog lassulni tőle az Excel működése.

A B változat, hogy csinálsz egy nyomógombot hozzá, amivel indíthatod.

Előzmény: mihalylori (21387)
mihalylori Creative Commons License 2013.05.24 0 0 21387

Sziasztok!

Egy kis segítséget kérnék...

Van egy VB függvényem, melyel lekérdezem egy tartomány cella-háttérszíneit. Pontosabban megszámoltatom, hogy egy bizonyos színből hány darab van.
A függvény dolgozik szépen, csak nem frissül, ha utólag módosítom a színeket. Csak akkor számol újra, ha újra beírom, vagy módosítom a lekérdezést.

Ez valami beállítási probléma, vagy egyszerűen így működik a VB?
Válaszaitokat előre is köszönöm.

mimi_bacsi Creative Commons License 2013.05.23 0 0 21386

Levél ment..!

Előzmény: aderill (21385)
aderill Creative Commons License 2013.05.23 0 0 21385

Az alapvető probléma az, hogy nem jó függvényt néztél ki magadnak a feladat megoldásához.

Ezt a szumha vagy a szumhatöbb függvényekkel tudod megoldani.

Ha mondasz egy e-mail címet átküldöm az eredményt.

 

Előzmény: mimi_bacsi (21384)
mimi_bacsi Creative Commons License 2013.05.23 0 0 21384

Feltöltöttem ide egy próba fájlt, amiben az alábbi feladatom van:

 

A "Munkalap1" és a "Munkalap2" munkalapok tartalmazzák az adatokat és a "Statisztika" munkalapra kellene az értékesítők szerint a szerződéseket összesítenem. (Vagy a székhely szerint) 

 

Talán így érthetőbb a feladatom...:-)

Előzmény: aderill (21383)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!