Kezdőlap › Fórumok › Excel témák › [Resolved] Power Query alapú táblák automatikus frissítése
- This topic has 8 hozzászólás, 2 résztvevő, and was last updated 6 years, 5 months telt el by zoltan.szeles.
-
SzerzőBejegyzés
-
2018-04-05-17:08 #4612
Szia Imi!
Lenne egy elég összetett kérdésem. Sok (és egyre több) olyan táblám van, aminek mindegyike Power Queryvel előállított adatokon alapul (van ahol egy sima listán, van ahol kimutatáson) De ezek is csatolt adatok, egy Access adatbázisból érkeznek a PQ-be, ami naponta többször változik. Az Access adatok frissítése viszonylag gyorsan és könnyen megoldható (mellesleg erre csatlakozik még pár Power Bi kimutatás is, de ez szintén gyorsan frissíthető). Viszont ahogy írtam is, ahogy a felhasználók belejönnek egyre több féle listát kérnek tőlem, amiket Excelben csinálok és jó lenne 1-2 naponta mindet végigfrissíteni. Lehet ezt pl makrózni? Vagy milyen úton induljak szerinted, hogy tudnám ezt legalább részben automatizálni, hogy ne kelljen minden nap az összes Excelt megnyitni, adatot, esetleg még külön kimutatást frissíteni, stb?
Esetleg felhő alapú megoldás is szóba jöhet, mert utána amúgy is az egészet oda töltöm. Gondoltam arra is már, hogy az Accest kihagyom és mindent a Power Queryben csinálok meg amit most az Access csinál, de elég nagy méretű adatbázisról van szó ezért egyelőre ebbe nem mertem belevágni.
- A témakör módosításra került: 6 years, 7 months telt el-zoltan.szeles.
- A témakör módosításra került: 6 years, 7 months telt el-zoltan.szeles.
- A témakör módosításra került: 6 years, 7 months telt el-horvimi.
- A témakör módosításra került: 6 years, 7 months telt el-horvimi.
2018-04-05-17:15 #4615Bocs valamiért mindig Pivotnak hívom a Queryt, a szövegben javítottam, a címben sajnos nem.
2018-04-05-18:07 #4617Látom, javítottam. 🙂
Ha jól értem, akkor azt akarod csinálni, hogy bizonyos Excel fájlokat megnyitni, frissíteni az adatkapcsolatot, majd menteni és bezárni. Mindezt valahogy automatikusan.Nekem elsőre ez jut eszembe:
Egy Excel makrós munkafüzet munkalapjára egy táblázatba soronként felvenném a frissítendő munkafüzetek útvonalait.
Majd írnék egy makrót, ami ezeken egyesével végigmegy, és
1. Kinyit
2. Frissít mindent
3. Ment
4. BezárEzt a makrós fájlt kellene 1-2 naponta elindítani kézzel.
Következő lépés lehet a jövőben, hogy ez az egy makrós fájl is magától induljon el, és a munkafüzet megnyitásához rendelt eseményvezérlőben fusson a fenti ciklus, de az legyen egy későbbi projekt.
Imre
2018-04-05-22:34 #4618Köszi! Igen, erre gondoltam én is, igazából csak azt nem tudom, hogy makróban hogyan kell az adatok frissítése utasítás kiadni, illetve kimutatást frissíteni.
B verzióként gondoltam még arra, hogy ha az adatokat esetleg a már felhőben lévő BI adatbázisból venném akkor a felhasználók maguk tudnák a megnyitott táblát frissíteni, de ez nagyon elméleti dolog, a valóságban a BI-ból igazából még egy használható excelt sem tudok kiexportálni, nemhogy csatolni belőle ami szükséges, pláne, hogy a webes Excel eléggé hadilábon áll a csatolásokkal. Ezt inkább csak amiatt írom, hogy szerinted lehetséges-e (ha pl kicsit még képzem magam a BI-ban) vagy ez eleve hülyeség?
2018-04-06-09:28 #4620Az adatok menüben van egy „Az összes frissítése /Refresh All” gomb. Ez a kapcsolatokat és a PIVOT táblákat is frissíti.
Vedd fel rögzítővel.2018-04-06-11:44 #4621Azt szoktam használni „kézzel”, de nem is tudom ez miért nem jutott eszembe, hogy így felvegyem, látszik, hogy sajnos a makrókat azóta nem sokat használtam. Köszi!:)
2018-06-05-23:20 #4879Szia Imre!
Sajnos csak most volt időm újra foglalkozni ezzel a kérdéssel, de sikerült megoldani, nagyon jól megy, viszont 2-3 tábla esetén amikor makróval frissítem őket kapok egy üzenetet, miszerint: Ezzel megszakít egy folyamatban lévő frissítést, mégis folytatja? Választási lehetőségek Ok vagy Mégse, igazából nem értem miért kapom ezt (ha makró nélkül frissítem akkor nincs) de az Ok-val minden gond nélkül tovább is megy, csak ez megakasztja a makrót, ha pl ütemezve éjjel szeretném lefuttatni. Mivel makró nélkül nincs ilyen üzenet így felvenni sem tudom. Van arra parancs ami automatikusan „leokéz” egy ilyen üzenetet?
2018-06-06-08:19 #4881Az lehet a probléma, hogy az előző frissítés még nem fejeződött be, mikor a ciklus a következővel dolgozik, és azt is frissíteni szeretné.
Erre különböző kísérletek vannak. Ezek közül az egyik, amire elég sok pozitív visszajelzést találtam az, hogy a kapcsolatokban ki kell kapcsolni a háttérfrissítés engedélyezését.
Ezt vagy a makróval lehet megcsinálni menet közben, vagy a fájlokon kézzel végigmész egyszer, és beállítod mindegyiknek:
Kézzel:
Adatok->kapcsolatok->Tulajdonságok (Itt találsz egy háttér frisítési beállítástMakróval:
Sub Refresh_All_Data_Connections() For Each objConnection In ActiveWorkbook.Connections 'Get current background-refresh value bBackground = objConnection.OLEDBConnection.BackgroundQuery 'Temporarily disable background-refresh objConnection.OLEDBConnection.BackgroundQuery = False 'Refresh this connection objConnection.Refresh 'Set background-refresh value back to original value objConnection.OLEDBConnection.BackgroundQuery = bBackground Next End Sub
Tehát a megnyitás és a mentés közé ez a kód kellene, ami minden OLEDB típusú kapcsolatot frissít az aktuális munkafüzetben.
Próbáld ki, és jelez vissza lszi!
Imre
2018-06-08-15:33 #4884Szia!
Így tökéletesen fut, mindkét megoldást próbáltam, mindkettő jó, de végül maradtam a makrónál. Köszönöm!
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.