Hirdetés

2024. április 30., kedd

Gyorskeresés

Útvonal

Fórumok  »  OS, alkalmazások  »  Microsoft Excel topic (kiemelt téma)

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-11-13 08:31:56

LOGOUT.hu

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.

Összefoglaló kinyitása ▼

Hozzászólások

(#25201) m.zmrzlina válasza gdodi (#25198) üzenetére


m.zmrzlina
senior tag

Sub masol()

Dim eleje As Long
Dim vege As Long

eleje = 2
vege = 4

Worksheets("Munka1").Rows(eleje & ":" & vege).Copy Destination:=Worksheets("Munka2").Rows(eleje & ":" & vege)
Worksheets("Munka1").Rows(eleje & ":" & vege).Delete Shift:=xlUp
End Sub

A fenti pár sor áthelyezi a Munka1 2.-4. sorát a Munka2 2.-4. sorába. Pontosabb megfejtéshez tudni kellene, hogy hogyan szeretnél értéket adni az eleje és vége változóknak.

(#25202) sedyke válasza Wyll (#25200) üzenetére


sedyke
tag

Ez szuper, köszönöm szépen. Annyiféleképpen próbáltam cikkekre keresni, de nem találtam meg a megfelelőt.

(#25203) gdodi válasza m.zmrzlina (#25201) üzenetére


gdodi
csendes tag

Köszönöm a segítséget, kipróbálom!
Egy hivatkozott cellából veszek egy számlált változót.

(#25204) m.zmrzlina válasza gdodi (#25203) üzenetére


m.zmrzlina
senior tag

A hivatkozott cellában az van benne, hogy hány sort kell másolni, vagy hogy hányadik sorig kell másolni?

(#25205) gdodi válasza m.zmrzlina (#25201) üzenetére


gdodi
csendes tag

Tökéletes! :)
Erre volt szükségem, ez már nekem is kezelhető, be tudtam illeszteni oda, ahol szükségem volt rá.
Nagyon köszönöm!!!

(#25206) Delila_1 válasza gdodi (#25198) üzenetére


Delila_1
Topikgazda

Sub Athelyez()
Dim elso As Long, ucso As Long

elso = Munka1.Range("A1")
ucso = Munka1.Range("B1")
Rows(elso & ":" & ucso).Cut Munka2.Range("A1")
End Sub

Itt az első és az utolsó sor számát tartalmazza az A1, ill. a B1 cella.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#25207) m.zmrzlina válasza gdodi (#25205) üzenetére


m.zmrzlina
senior tag

Szivesen. :)

(#25208) Wyll válasza Delila_1 (#25206) üzenetére


Wyll
őstag

Én is Cut-tal akartam először, de az nem tünteti el a sorokat, úgy tűnik mindenképp kell utána egy Delete is.

Amúgy a két értékedó sorod végéről mintha hiányozna egy-egy .Row

[ Szerkesztve ]

Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=Wyll

(#25209) gdodi válasza m.zmrzlina (#25204) üzenetére


gdodi
csendes tag

Még kidolgozás alatt van az egész elképzelés, több szempontból kell adatokat kigyűjteni több táblázatba. Erre szükségem is van, és szeretném megtanulni is ezt a programozást. Jelenleg ennyi az egész:
Sub Makró00()
'
' Makró00 Makró
'

'
Rows("1:1").Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Range("A1").Select
ActiveSheet.Paste

Sheets("tmp").Select

Dim eleje As Long
Dim vege As Long
eleje = 2
vege = Cells(1, 9) + 1
Worksheets("tmp").Rows(eleje & ":" & vege).Copy Destination:=Worksheets("Munka2").Rows(eleje & ":" & vege)
Worksheets("tmp").Rows(eleje & ":" & vege).Delete Shift:=xlUp

' A munkalap formázása és átnevezése
Sheets("Munka2").Select
Columns("A:F").Select
Columns("A:F").EntireColumn.AutoFit
Columns("G:L").Select
Selection.Delete Shift:=xlToLeft
Sheets("Munka2").Select
Sheets("Munka2").Name = "00"
Range("A1").Select

End Sub

Ezt szeretném még tovább bővíteni. Remélem menni fog. :) Ha mégsem menne, megint segítségért folyamodok. :(

(#25210) Wyll válasza gdodi (#25209) üzenetére


Wyll
őstag

Arra gondolj majd mindig, miközben a VBA-t tanulod, hogy kijelölni csak nekünk embereknek kell a cellákat, de az excel-nek nem. Az excelnek nem kell előbb kijelölni valamit, hogy azután tudja törölni a kijelölést; hanem egyből lehet neki azt mondani, hogy a valamit töröld.

Tehát pl.

Columns("G:L").Select
Selection.Delete Shift:=xlToLeft

helyett:

Columns("G:L").Delete Shift:=xlToLeft

Ez igazából az excelnek meg a vba-nak az objektumorientáltságából következik, de nem akarok túl csúnyákat mondani. A lényeg, hogy ez a szemlélet az egész excel vba programozást átitatja.

Ja, és használd gombot hsz írásakor! ;)

[ Szerkesztve ]

Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=Wyll

(#25211) Delila_1 válasza Wyll (#25210) üzenetére


Delila_1
Topikgazda

... és nem kell előbb másolni, majd törölni.

Rows(elso & ":" & ucso).Cut Munka2.Range("A1")

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#25212) Wyll válasza Delila_1 (#25211) üzenetére


Wyll
őstag

Ez valóban az értékeket kivágja, és beilleszti, de a sorokat, ahol az értékek voltak, nem.

De az eredeti kiírásnak a Selection.Delete Shift:=xlUp sora erre a szándékra enged következtetni.

A .Row hiányokat visszavonom. :B

Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=Wyll

(#25213) Louro


Louro
őstag

Jaj de rég voltam már itt.

Csak, hogy szivassam magam, mindig találok ki újabb és újabb feladatokat magamnak és rengeteg guglizás után általában meg is van az eredmény, de a distinct-tel szívok nagyon. Az alap már megvan...INDEX-szel kell játszani. De....

A kitűzött feladat megvalósítható?

Adott egy oszlop, amiben van mondjuk 5 egyedi (unique) érték. Valamelyik 500x, másik 1500x, harmadik 345x szerepel az oszlopban. Egy olyan legördülőt szeretnék készíteni, ahol az értékkészlet az 5 elemből áll.

Gondolkodtam olyan megvalósításban is, hogy generálok egy pivot-ot és a listát a pivot elemeire készítem. De mivel a pivotot frissíteni kellene - mert a lista változhat, néha 4, néha 6-7 elemből állna -, hogy az elemszám is változzon hozzá.

Megoldható data validation-nel vagy ilyen nagyot már inkább ne álmodjak?

Üdv,
Csabi

Mess with the best / Die like the rest

(#25214) slashing válasza Louro (#25213) üzenetére


slashing
senior tag

csak elgondolás szinten makróval:

kell egy makró ami kiszűri az egyedi értékeket az adott oszlopból valahova(tökmindegy hova) ahova kiszűri oda kell csinálni névkezelővel egy dinamikus tartományt és ezzel megkapjuk a leggördülő lista elemeit. Egy dolgot kell még meghatározni hogy a szűrős makró mikor fusson le.... minden fájl megnyitásakor vagy adott cella megváltozása esetén....

(#25215) Fferi50 válasza Louro (#25213) üzenetére


Fferi50
őstag

Szia!

Szerintem vagy Te bonyolítod túl a kérdést, vagy én nem értettem meg.
Javaslat:
Excel verziótól függően:adatok - irányított vagy speciális szűrés, a megjelenő párbeszéd panelen kijelölöd az adott oszlopot - bejelölöd, hogy más helyre másolás, szűrőtartomány az oszlop fejléce (remélem van neki, ha nincs adni kell). Hova másolja helyre beírod azt az 1 cellát, ahol szeretnéd, hogy kezdődjenek az adatok, majd bejelölöd a csak az egyedi rekordok megjelenítése. Ezután OK. A kívánt helyen megjelenik az a pár egyedi tétel, ami az adott oszlopban van.

A beviteli mező adatérvényesítésénél pedig beírod a listához ennek tartománynak a címét.

Ha mindezt lerögzítetted egy makróban, máris megvan az alapod. Hozzárendeled egy billentyűhöz és ha szükséges, akkor lefuttatod ismét.

Remélem, jól értettem a feladatot (vagy legalább az irányt....)

Üdv.

(#25216) slashing válasza slashing (#25214) üzenetére


slashing
senior tag

kipróbáltam teljesen jó és ahogy Feri is mondja csak egy billentyűt kell hozzá rendelni:

nálam az "E" oszlopba kiszűri ott van egy tartomány elnevezés amit a data validation-be hivatkozok meg.

usor = Application.CountA(Columns(1))

Range("A1:A" & usor).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Columns _
("A:A"), CopyToRange:=Range("E1"), Unique:=True

ez a névkezelő képlete

=ELTOLÁS(Munka1!$E$2;0;0;DARAB2(Munka1!$E:$E)-1;1)

(#25217) gdodi válasza Wyll (#25210) üzenetére


gdodi
csendes tag

Köszönöm, értem.
Én még csak ott tartok, hogy amit rögzítek, azt próbálom értelmezni. Viszont így sikerült rögzíteni, azért lett ilyen. Rögzíteni viszont csak azt tudtam, hogy kijelölök sorokat, majd másolom, vagy törlöm, itt nekem most az volt a lényeg, hogy nem tudtam megoldani, hogy egy külső változótól függően módosuljon a sorok mennyisége. Ezt formailag meg lehet adni valahogy? Arra gondolok, hogy van egy "s" számú sorom, ami időnként változik, most mindegy miért. Azt szeretném elérni, hogy mondjuk a 10. sortól egy s számú sort másoljak, vagy töröljek, azt meg lehet adni valami olyasmi formátumban, hogy Rows(10:s), vagy ilyen nincs? Persze próbálkoztam, de csak hibaüzenetet kaptam.
Azt is szeretném megkérdezni, hogy van valamilyen letölthető anyag, ami segítene a tanulásban?
Köszi! :)

(#25218) Louro válasza Fferi50 (#25215) üzenetére


Louro
őstag

Ööööö, ezt is ismerem...De....az a cél, hogy lekérdezek egy listát. Több ezer rekordból áll. Betolnám egy munkalapra. Másik sheet-en már rengeteg függvény van és ezek aszerint változnának, hogy mit választok ki a legördülőből.

Amit átvettem munkát, ott külön-külön sheet-eken valósították meg, ami azért nem jó, mert ugyanazt a rendszerezést lemásolták annyi sheet-re, amennyi a legördülőben lenne. Mivel én csak a forrást állítanám elő, így a vezetők választhatnák ki, hogy mire kíváncsiak.

(Így minél kevesebb manualitás lenne benne.)

A makrón gondolkodtam, de kb. 20-25 megás a fájl...de lehet kipróbálom azt a megoldást, hogy nyomnak egy gombra és befrissítené a legördülőt. (Csak nehogy összeomoljon a makró miatt :) )

Mess with the best / Die like the rest

(#25219) Fferi50 válasza Louro (#25218) üzenetére


Fferi50
őstag

Szia!

1. Milyen excel verziód van?
2. Nem hiszem, hogy egy nyúlfarknyi makró miatt összeomlana bármelyik is - a sok-sok képlet annál inkább zabálja a memóriát és lassítja a betöltődést is (de ez már nyilván adottság).
3. Egy gombra kattintást talán még egy vezető is meg tud tenni.
4. Ha mégis problémásnak gondolod, akkor lehet a frissítést megnyitáskor automatikusan megoldani, verzió függő, hogy hova kell a makrót tenni - ekkor a vezetőnek csak az a dolga, hogy kiválasztja a neki tetsző tételt a listából. (És még az is megoldható, hogy csak akkor frissítsen, ha aznap még nem volt frissítve - jó ez egy kissé macerás is lehet, ha mindenki aki használja, rá is ment.)

5. Azért írom külön, mert ez sem mindegy: minden vezető "saját különbejáratú fájlt" használ, vagy egy van közös használatban, vagy egy van, de egyszerre csak egyvalaki használhatja, vagy egy van és azt csak olvasási joggal lehet használni.

Ez utóbbi pont azért fontos, mert nem mindegy a makrós megoldás miatt sem és a használat normalizálása miatt sem.

Üdv.

(#25220) Louro válasza Fferi50 (#25219) üzenetére


Louro
őstag

Szia,

2010-es verzió. Egy alap lenne. A forrás ugyanabban az excelben lenne, hogy ne kelljen másik fájlt megnyitni az eredmények frissítésekor.

Holnap leprogramozom makróval, szerintem pár sornyi kód lesz csak. :)

(A makrótól azért félek, mert pár éve, amikor nem voltam jártas excelben, elég sok makrós fájlt kaptunk és sűrűn futottunk a készítőikhez, hogy hibaüzenet, nem fut, meg se nyilik. Szóval ezért törekszek a minél optimalizáltabb excelekre.)

Mess with the best / Die like the rest

(#25221) Fferi50 válasza Louro (#25220) üzenetére


Fferi50
őstag

Szia!

Igen, ez előfordulhat(ott), de Te ott vagy helyben - hozzád nem kell majd futni.. :K

Üdv.

(#25222) marcyman válasza Delila_1 (#25190) üzenetére


marcyman
aktív tag

Köszönöm a segítségeteket!

Csatoltam egy képet, amin demonstrálom hogy hogyan van most megcsinálva a táblázat.
Annyi a különbség, hogy felül szűrők vannak. Paraszt módon rászűrünk egy napra és egy cégre, és fogjuk a cellákat, összehúzzuk, leolvassuk az átlagukat alul és beírjuk, majd copy pasttel átnyomjuk az alatta lévő cellákba.

Szóval ilyen kimutatás meg adatbázis nélkül ezt nem lehetne valahogy automatizálni? Az a baj, hogy a beszállítók mindig változnak, jön új hozzá akár naponta is.
A táblázatot igazából teljesen át kellene írni, de ha anélkül meg lehetne oldani az lenne a legjobb.

[ Szerkesztve ]

(#25223) Fferi50 válasza marcyman (#25222) üzenetére


Fferi50
őstag

Szia!

Most komolyan, kipróbáltad már az átlaghatöbb függvényt:
D2 képlete: =átlaghatöbb(C:C;B:B;B2;A:A;A2)

Ezt pedig végighúzod a D oszlopon. Már csak az a fontos, hogy az A oszlopban a dátumok egyforma módon legyenek beírva (nem a cellaformázásra gondoltam, hanem dátumként, illetve esetleg végig szövegként).

Üdv.

(#25224) Delila_1 válasza marcyman (#25222) üzenetére


Delila_1
Topikgazda

A táblázattá alakítást, és a kimutatást 1× kell létrehoznod pár kattintással, és akkor egész életedben csak ki kell választanod a napot és a céget a kimutatás legördülőjéből.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#25225) Delila_1 válasza gdodi (#25217) üzenetére


Delila_1
Topikgazda

Sub torles()
Dim db As Long

db = Range("J1") - 1
Rows("10:" & 10 + db).Delete shift:=xlUp
End Sub

Itt a J1 cellában adod meg, hogy a 10-től hány sort töröljön a makró, beszámítva a 10. sort is.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#25226) marcyman válasza Fferi50 (#25223) üzenetére


marcyman
aktív tag

Köszi, tényleg működik! :R
Delila_1: igazad van, csak beosztottként néha nehéz meggyőzni a főnököt. :)

(#25227) Delila_1 válasza marcyman (#25226) üzenetére


Delila_1
Topikgazda

TE készíted el a kimutatást, a főnök csak kattint kettőt.

A sok, előre bevitt képlet terheli a fájlt úgy méretben, mint sebességben.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#25228) Certee


Certee
senior tag

Van egy árajánlat készítő excel fájlom, amiben egy munkalapon vannak az árlisták, amiket megkapok a beszállítóktól (akár 10.000 sor is van / db). Eddig úgy csináltam, hogy egy munkalapra felvittem az összes cég árlistáját rendezve, így a számoló munkalapon egy keres függvénnyel a cikkszám beírása után megkaptam a kívánt adatokat.

Az lenne a kérdésem, hogy van e olyan megoldás, hogy az egyes cégek árlistáját külön külön munkalapra vigyem fel és a keres függvény az adott munkalapokon keressen és ne csak egy mukalapon.

A gondom az, hogy külön munkalapon egyszerűbb lenne adminisztrálnom a cégeket de a számoló részen viszont a cikkszám beírása alapján kéne kikeresnie, hogy melyik cég munkalapján van az adat.
Remélem érthetően tudtam elmagyarázni.

Egy szabad országban, egy szabad ember, azt tesz amit szabad... http://www.biwak.hu

(#25229) m.zmrzlina válasza Certee (#25228) üzenetére


m.zmrzlina
senior tag

Munka1 munkalap A oszlopában vannak a cikkszámok, B oszlopban az árak (vagy a cikkszámhoz tartozó másféle adat). Munka2-n ugyanilyen szerkeztetben a másik beszállító dolgai.

Munka3 B2 cellájának képlete:

=HAHIBA(FKERES(A2;Munka1!A:B;2;0);HAHIBA(FKERES(A2;Munka2!A:B;2;0);"A megadott cikkszám nincs a listában!"))

Munka3 A2 cellájába viszed be a keresett cikkszámot és a B2-ben kapod meg a hozzá tartozó adatot függetlenül attól, hogy melyik munkalapon találta meg a cikkszámot.

Ha nem létező cikkszámot adsz meg, vagy elgépeled - ami ugyanaz :K - akkor hibaüzenetet ad.

[ Szerkesztve ]

(#25230) gdodi válasza Delila_1 (#25225) üzenetére


gdodi
csendes tag

Köszönöm!
(És még értem is. :) )
Persze minden kezdet nehéz, de majd belejövök. Legalábbis bízom benne. :)

(#25231) Delila_1 válasza gdodi (#25230) üzenetére


Delila_1
Topikgazda

Szívesen. :)

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#25232) Louro


Louro
őstag

Sziasztok!

A korábban említett fájl kicsit megnőtt. 450 soros a riport és a forrás kb. 10000 sor. Oszlopok száma a riportban 65 (2 hónap +- 2 nap).

Rengeteget guglizok, hogy mivel lehetne a fájlméretet csökkenteni és gyorsabb kalkulációra bírni, de eddig kb. úgy csináltam,ahogy javasolják is sok helyen.

TODAY() csak egy mezőben van. INDEX(), ISERROR nincs. Szinte csak COUNTIFS,SUMIFS és pár szimpla százalékszámítás. De így is 15 mega a fájl mérete.

Szerintetek lehet ezen faragni, gyorsítani? Ha a kalkulációkat makróba tenném, gyorsabb lenne? Bár COUNTIFS-et makrózni ....kb. ugyanaz lenne a step-by-step :)

Megtudnám csinálni, hogy nulla függvény legyen az excelben és 100% makró lenne a számítás, csak ez jó irány -e?

Mess with the best / Die like the rest

(#25233) wolfman


wolfman
veterán

Sziasztok!
Hatalmas segítség kell!!!
Cégnél bent kaptunk egy táblázatot, ami a következőképpen néz ki.

Az A oszlopban vannak adatok, a mellette levő sorokban nincsenek adatok, csak ehhez képest 2 sorral lejjebb.
Szeretnénk szűrőt beállítani úgy, hogy az A oszlopot a többivel együtt lehessen vegyítve szűrni. Most meg tudom csinálni, hogy A oszlopra beadok szűrőt + legalul az üres opciót is hozzáadom, de ha már mondjuk dátum szerint is szeretném tovább szűrni, akkor a B oszlop szerint minden adat megmarad, de az A oszlop kitörlődik és így nem tudni melyik A oszlopban látott adathoz tartoznak a dátumok stb., mert egymás alá beb@ssza mindet közvetlen.

Ezt lehet valahogy orvosolni? Remélem érthető. :F

„Ami mérhető, mérd meg! Ami nem mérhető, tedd mérhetővé!” – Galileo Galilei

(#25234) Fferi50 válasza wolfman (#25233) üzenetére


Fferi50
őstag

Szia!

A kép alapján ez egy részösszegezést tartalmazó táblázat - amiről "eltüntették" a szokásos szintjelző gombokat -.
Próbáld meg az adatok - részösszeg menüpontban az összes eltávolítása parancsgombot kiválasztani a megjelenő párbeszédpanelen.
Ha ez sikerült, ott marad - remélhetőleg - egy tovább már rendesen értelmezhető és használható adatállomány.

Viszont az is lehet, hogy csak értéket és formázást megtartva másolták le az eredeti táblát - akkor érdemes lenne esetleg megkérni az eredeti táblát, ha lehet.
Ebből a formából elég macerás visszavadászni a "normál" adatokat.

Megpróbálhatod, hogy az A oszlopban levő adatokkal kitöltöd a felettük levő üres sorokat.
Az E oszlopban levő SUMMA tartalmú sorokat szívfájdalom nélkül törölheted, mert az a felette levő információ összegzése, tehát a törlésével nem vesztesz semmit.
Az A oszlop kitöltése után az abban levő SUMMA tartalmú sorok is törölhetők.
Ezután már szerintem "normálisan kezelhető adataid lesznek.

Gyanús viszont az állapotsorban levő Körkörös hivatkozás hibaüzenet, ami persze lehet, hogy nem is erre a munkalapra vonatkozik.

Üdv.

(#25235) wolfman válasza Fferi50 (#25234) üzenetére


wolfman
veterán

Nem nagyon értem amit mondasz, de meg lehetne csinálni azt is mind a 6692 sorral, hogy beleírom az A oszlopban található megfelelő adatokat, de üljön neki ekkora volumenű sz@rságnak akinek 2 anyja van. :( Most meg kitalálta kolléganőm, hogy én vagyok az infó szaki, oldjam meg, holnap reggelre kell. :(

„Ami mérhető, mérd meg! Ami nem mérhető, tedd mérhetővé!” – Galileo Galilei

(#25236) Delila_1 válasza wolfman (#25235) üzenetére


Delila_1
Topikgazda

Próbáld meg, hogy az első sor minden cellájába írj be bármit, ameddig az oszlopaidban találsz adatokat. Erre a sorra teszel autoszűrőt.

Itt megnézheted, hogy az üres cellákat hogy lehet könnyen kitölteni a fölöttük lévő adatokkal. Azt hiszem, ilyen megoldást is javasolt valaki.

[ Szerkesztve ]

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#25237) wolfman


wolfman
veterán

úgy csináltam meg hogy beszúrtam egy új oszlopot és számokkal összefűztem az A oszlopot a többivel. Így ahol végeszakad a különböző kódoknak nem folytatja az üres részekkel az A oszlop szerint. Jobbat nem tudok.

„Ami mérhető, mérd meg! Ami nem mérhető, tedd mérhetővé!” – Galileo Galilei

(#25238) Wyll


Wyll
őstag

Háj óll egen!

Van egy közös használatú xlsm-ünk (nevezzük A-nak), és ebben egy csomó külső xlsm-re (nevezzük ezeket B-nek) mutató link.

Az van, hogy:
Amikor az egyik B-t módosítja A-nak az egyik felhasználója, akkor őnála nyilván A értékei is megváltoznak (a "kiolvasott" értékek). Ezért nyilván idővel A többi felhasználójánál sikoltani kezd az excel, hogy heló van. Persze valójában nem a cellákban lévő képletek (linkek) változtak, hanem azoknak az eredménye (amik ugye B-kből olvasódnak ki), így hiába fogadunk el akár automatikusan minden változtatást, az nem azonos a linkek frissítésével, tehát az értékek A többi felhasználójánál nem fognak frissülni.

Három dolog kéne:

- hogyan lehet az ilyen linkeket frissíteni?
ezt már sikerült megtalálnom. összes link frissítése:
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources

- mi az, illetve van-e olyan esemény, amikor kiderül, hogy valaki valamit módosított? mert akkor a fenti sort abba egyből beletenném, és így lenne automata linkfrissítés is. valami ilyesmire gondolok:

Private Sub Workbook_SomebodyChangedSomething()
End Sub

Attól félek amúgy, hogy nincs :( Ez esetben gondolom valamilyen manuális (VBA-s) ellenőrizgetés kell.. De valahogy azt is mindenképp automatizálni kéne. Erre ötlet? Nem lehet valahogy a már eleve automata x percenkénti frissítést kihasználni?

- meg lehet-e azt csinálni VBA-ból valahogy, hogy az excel ablaka a tálcán ilyen sárgán elkezdjen villogni:

[ Szerkesztve ]

Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=Wyll

(#25239) Fferi50 válasza wolfman (#25235) üzenetére


Fferi50
őstag

Szia!

Ha még vagy és nem unod.
Csak egy kérdésem lenne:
Ha az adatok - részösszegek menüpontot megnyitod és az összes eltávolítása gombot megnyomod, mi történik?

Üdv.

(#25240) wolfman válasza Fferi50 (#25239) üzenetére


wolfman
veterán

Semmi!

„Ami mérhető, mérd meg! Ami nem mérhető, tedd mérhetővé!” – Galileo Galilei

(#25241) Fferi50 válasza Wyll (#25238) üzenetére


Fferi50
őstag

Szia!

A frissítésre javaslom az application.ontime metódust.

Amikor a munkafüzetet megnyitod lefuttad az "időzítő programot" ami a következő:

Sub idozito()
kovetkezo=now +timeserial(0,10,0)
application.ontime kovetkezo, "frissito"
range("A1").value=kovetkezo 'ezt a cellát választhatod, melyik legyen, ami nem zavar sehol.
end sub

sub frissito()
[M](C)ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources(/C)[/M]
end sub

Amikor bezár a munkafüzet, akkor ki kell kapcsolni az időzítőt (ezért kell eltárolni a következő frissítés időpontját, mert egyébként nem tudod helyesen meghivatkozni:
Sub idozitoki
kovetkezo=range("A1").value
if timevalue(kovetkezo) >Time then
application.ontime kovetkezo,"frissito",,False 'a False előtt két vessző van.
end if
end sub

Remélem, segít.

Üdv

[ Szerkesztve ]

(#25242) Fferi50 válasza wolfman (#25240) üzenetére


Fferi50
őstag

Köszi, ezzel csak annyit ellenőriztem, hogy - sajnos - valóban csak részösszegzett értékeket tartalmazó táblát adták oda nektek (ami azért valljuk be, elég pórias).

Sajnos nem látok jobb megoldást arra, hogy ne vesszenek el az A oszlopban levő "kulcsaid", mint az üres sorok kitöltése.

Talán próbáld meg a következő kis makrót:

Sub kitolti()
For xx = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(xx, 1).Value = "" Then Cells(xx, 1).Value = Cells(xx - 1, 1).Value
Next
End Sub

Ez kitölti az A oszlop üres celláit az előtte levő cella értékével.

Utána használhatod az előzőekben írt módszeremet, a summa sorok eltávolítását (csak 2 szűrő, egy az E oszlopon, egy az A oszlopon - tartalmazza summa-, ami a szűrő fennmarad sor, törölhető), lehet két menet, de azért az elég gyors.

Üdv.

(#25243) Musuz


Musuz
csendes tag

Sziasztok.Átlag számításban kérnék segítséget.
Azt szeretném megoldani,hogy ha egy vagy több érték nulla,akkor azt az értéket ne vegye figyelembe az excel az átlagszámításnál.
Tehát ha mondjuk van 8 számértékem és abból mondjuk 3 az "0",akkor csak az 5 számértéket átlagolja.
Előre is köszi.

(#25244) wolfman válasza Fferi50 (#25242) üzenetére


wolfman
veterán

Áh, a központból küldenek nekünk ki a telepre ilyen és hasonló táblázatokat, amivel dolgoznunk kell. Ez a fajta mentalitás, hogy ehhez értenek, majd a sz@rban találjuk meg mi az aranyat, ők már nem turkálnak bele. Mindegy is.

fél megoldással megcsináltam, ha így nem jó, nem is érdekel. :(

„Ami mérhető, mérd meg! Ami nem mérhető, tedd mérhetővé!” – Galileo Galilei

(#25245) m.zmrzlina válasza Musuz (#25243) üzenetére


m.zmrzlina
senior tag

Ha "A1:A10" tartomány átlagát akarjuk számolni akkor:

=ÁTLAGHA(A1:A10;">0")

Még több infó itt.

(#25246) Musuz válasza m.zmrzlina (#25245) üzenetére


Musuz
csendes tag

Köszönöm :)

(#25247) m.zmrzlina válasza Musuz (#25246) üzenetére


m.zmrzlina
senior tag

Nincs mit. :)

Működik?

(#25248) Musuz válasza m.zmrzlina (#25247) üzenetére


Musuz
csendes tag

a következő a helyzet

ha így írom be akkor nem pontos:=ÁTLAGHA(D14:E14:I14:J14:D20:E20:I20:J20;">0")
ha így akkor akkor meg értékhiba:=ÁTLAGHA(D14:E14:I14:J14:D20:E20:I20:J20;">0")

(#25249) Musuz válasza Musuz (#25248) üzenetére


Musuz
csendes tag

Pontosítok:a másodiknál nem értékhiba hanem "túl sok argumentum"
végülis mindegy,vmit rosszul csináltam,próbálkozom csak sikerül.
azért köszönöm :)

[ Szerkesztve ]

(#25250) Louro válasza Musuz (#25248) üzenetére


Louro
őstag

Öööö, ha átlagha (bocsi, csak angol nyelven használom a függvényeket), akkor a formulában több intervallumot tudtommal nem lehet megadni. Csak egyet.

Ha több intervallumot akarsz átlagolni, akkor arra az AVERAGEIFS-et használnám valahogy így:

=AVERAGEIFS(D14:E14;">0";I14:J14;">0";D20:E20;">0";I20:J20;">0")

Ez úgy néz ki, hogy megadom, hogy D14:E14 között 0-nál nagyobb értéket vegye, I14:J14 között szintén és így tovább.

Magyarul ÁTLAGHATÖBB

=ÁTLAGHATÖBB(D14:E14;">0";I14:J14;">0";D20:E20;">0";I20:J20;">0")

Off: Pont most olvasgatom performancia témában és pont ez egy optimalizált függvény. Több IF-et összefűzve is megoldható lehetne, de minek, ha egy függvénnyel megoldható :)

Mess with the best / Die like the rest

Útvonal

Fórumok  »  OS, alkalmazások  »  Microsoft Excel topic (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.