Keresés

Részletes keresés

Törölt nick Creative Commons License 2013.04.18 0 0 21079

Köszönöm szépen a kimerítő leírást, le is mentettem favoritok közé. A leírtak alapján valóban hasonlít az sql-ben használható view-k gyakorlati hasznára, így értem. Egy következő munkámhoz megpróbálom használni majd, igazából akkor fogom műszakilag is megérteni.

 

Más, és kicsit off:

 

Tudsz arról valamit, hogy az office valamely programja képes lehet (acces, excel, visio)  fastruktúrát kezelni/használni. A cél, hogy fastruktúrát képes legyek használni excelben vagy accesben. A cél, hogy főkönyviszámok  ft értékeit egy fastruktúra szerint tudjak részösszegezni.

 

Előzmény: Törölt nick (21077)
Törölt nick Creative Commons License 2013.04.18 0 0 21078

Nem vagyok benne biztos, hogy ezt kérdezed, de szerintem a UserForm MouseMove eseménye körül kellene keresni a megoldást.

Előzmény: pimre (21076)
Törölt nick Creative Commons License 2013.04.18 0 0 21077

"A "Class Module" funkció szerint olyasmi lehet, mint mssql-ben a tárolt eljárások (stored procedure), vagy a view-k"

 

Ezt nem tudom.

Viszont RHCPgergo jól mondta, saját objektumokat lehet létrehozni velük. Pontosabban objektum osztályokat, vagy nevezhetjük őket típusoknak, ez nyelvfüggő. Azért lehet kicsit nehéz megérteni, mert általában ezeknek az objektumoknak nincs vizuális megjelenésük. De az excel vizuálisan megjelenő objektumain jól le lehet vezetni az analógiát.

 

Pl. a Range az egy típus, konkrétan a Range("A1") pedig egy Range típusú objektum.

A Range típusnak vannak tulajdonságai (Property), vannak hozzá kapcsolódó eljárások (Method). Eseményei (Event) ugyan nincsenek, de éppenséggel lehetnének. A típus definíciója tartalmazza mindazt, ami a típusból generált egyéni objektumra jellemző.

 

Amikor azt mondod, hogy Range('A1").Value, akkor a .Value property használatát a Range típus definíciójából vesz elő a rendszer, és vonatkoztatja azt konkrétan az A1 cellára. Az A2 cella esetében ugynez: a .Value property használatát a Range típus definíciójából vesz elő a rendszer, és vonatkoztatja azt konkrétan az A2 cellára.

 

Így tehát a Range típus .Value tulajdonságának leprogramozását egyszer kell megcsinálni, és az utána minden Range típusú objektumra érvényes lesz.

 

Ennek analógiájára kell elképzelni a Class Module-okat. A Class Module arra való, hogy azon 1 azaz egy darab objektumtípust definiálj. Meg kell adni a típus nevét, ez a fenti példában "Range", én mondjuk elnevezem az objektumtípusomat "Hűtőszekrény"-nek.

Innentől kezdve bármelyik (normál) makróban létre tudok hozni Hűtőszekrény típusú változókat.

Pl.

Sub Macro1

    Dim hsz1 As Hűtőszekrény, hsz2 As Hűtőszekrény

 

    Set hsz1 = New Hűtőszekrény

    Set hsz2 = New Hűtőszekrény

    'kód

    'még több kód

End Sub

 

És akkor van két Hűtőszekrényem, amelyek kezelése, viselkedése egyforma, de mégis egymástól független objektumok.

Az egyiket kinyithatom, a másikat zárva tarthatom.

Az egyikből átrakhatok húst a másikba.

 

A Hűtőszekrény nevű típus összes tulajdonságát, eseményét, eljárásait a hozzá tartozó Class Module-on kell megírni, a szokásos VBA kóddal.

 

Én pl. egyszer írtam egy olyan objektumtípust, amivel ADODB kapcsolaton keresztül adatbázist kérdeztem le.

Olyan tulajdonságai voltak, hogy

- DBPath (adatbázis elérési útvonala)

- SQL

- Visszaadott rekordok 3 különböző módon (lista, tömb, RecordSet)

Olyan metódusai voltak, hogy

- Connect (kapcsolódik az elérési útvonalon megadott adatbázishoz)

- Execute (végrehajtja az SQL propertyben beadott SQL utasítást)

- Retrieve (lekérdezi az SQL propertyben beadott SQL lekérdezést)

 

Amikor használni akartam, csak annyi kellett, hogy:

Sub Macro1

    Dim myQuery As clsQuery

 

    Set myQuery = New clsQuery

    With myQuery

        .DBPath = "D:\mappa\DB.xls"

        .Connect

        .SQL = "SELECT FirstName, LastName FROM Employee"

        .Retrieve

        'és itt még kivenni belőle a visszaadott rekordokat

    End With

End Sub

 

Párhuzamosan több clsQuery objektumom volt, egymástól függetlenek, mindegyikkel azt csináltam, amit akartam, de ha javítani kellett a kódon, vagy új funkcióval bővíteni a típust,  akkor azt csak egy helyen kellett megtennem: a típust definiáló Class Module-on.

 

Remélem ez segít.

Előzmény: Törölt nick (21075)
pimre Creative Commons License 2013.04.18 0 0 21076

Egy kérdés: Hogyan tudom elérni, hogy a ScrolBar mutató  húzásakor is látszódjon a hozzátartozó TextBoxban is a változás. Pillanatnyilag csak azt tudom elérni, hogy amikor elengedtem a mutatót, akkor mutatja csak az eredményt. 

 

Remélem, érthetően fogalmaztam meg a kérdést.

 

Törölt nick Creative Commons License 2013.04.18 0 0 21075

A "Class Module" funkció szerint olyasmi lehet, mint mssql-ben a tárolt eljárások (stored procedure), vagy a view-k

(?)

hm...

Előzmény: Törölt nick (21064)
Törölt nick Creative Commons License 2013.04.18 0 0 21074

Köszi szépen, hogy visszabogarásztad a hsz-eket.

Emlékeztem, hogy volt Tőled ezzel kapcsolatban hsz. (Sőt, már magam is feltettem itt ezt a kérdést.)

A 15462-ben az előzményeket trölték, a 13636-nál szintén vannak már lyukak az előzményben.

A 9698 egy jó példa, kipróbáltam. Még tanulmányozom ezt is + amit találni külföldi fórumokon.

 

Sajnos még mindig nem értem a gyakorlati jelentőségét - pedig tuti hogy sok mindenre jó lenne. Viszont amíg nem értem, nem fog eszembe jutni, hogy ezt kell használnom :(

Sokszor érzem úgy, hogy egy-egy "fejlesztői projektet :)" lehetne jobban is csinálni, jó lenne továbblépni. Ezt a class modult meg csak évek óta nézem, hogy "ott van". Elég volt.

Előzmény: Törölt nick (21064)
pimre Creative Commons License 2013.04.18 0 0 21073

Köszönöm a figyelmeztetést. Így elállok attól, hogy használjam is, mert amin dolgozom, azt valóban más gép(ek)en fogják használni.

Előzmény: Törölt nick (21068)
pimre Creative Commons License 2013.04.18 0 0 21072

Van linked hozzá? Én ilyesmit találtam, de nem tudom ez lenne-e az: http://www.opensource-it.com/open_source_wiki_software

 

Előzmény: Sánta Kutya (SK) (21067)
djmorphy Creative Commons License 2013.04.18 0 0 21071

Sziasztok!

 

Segítségeteket kérném abban, hogy van-e valami megoldás arra, hogy az Excel 2010 ne hozzon létre ütközéses file-okat.

Szerintem azért hozza létre mert megnyitom egyszer majd nem figyelek és nyomok egy entert a TotalCommanderben a fileon de akkor nem a megnyitott excel-t hozza előtérbe hanem megnyitja újból. De ez csak feltételezés. Mindig csak azt veszem észre Total Comannderben, hogy van ütközéses file.


Esetleg mi más okból hozhat létre ütközéses file-okat? 

Törölt nick Creative Commons License 2013.04.18 0 0 21070

Tudni nem tudom, találgatok.

Szerintem akkora különbség nem lehet, ami a manapság használatos RAM mennyiségek mellett szignifikáns lehetne.

 

Gyorszteszt:

Üres munkafüzettel a TaskManager-ben Excel foglal 14.5 megabájt memóriát,

egy 43000 soros táblázattal megnyitva foglal 34 megabájtot.

 

Nekem úgy tűnik, ez erőforrás szempontból tökmindegy.

Előzmény: tbando (21066)
Törölt nick Creative Commons License 2013.04.18 0 0 21069

"[...] jó lenne egy olyan hely [...] ahol összegyűjthetnénk a leghasznosabb hasonló tananyagokat. Esetleg létezik már ilyen?"

 

Az ötlet már felmerült pár ezer hsz-szel ezelőtt, de nem volt önkéntes, aki a tudásbázis koordinálását elvállata volna.

 

 

 

Előzmény: pimre (21058)
Törölt nick Creative Commons License 2013.04.18 0 0 21068

"Viszont megtaláltam azt, ami nincs az eredetiben - a Calendar Control 11.0 vezérlőt - és ez jónak tűnik."

 

A Calendar Control vezérlővel vigyázni kell. A 11.0-ás naptár alapértelmezésben a 2003-as Office tartozéka, ami ráadásul az Office  "szokásos" telepítéskor fel sem kerül a gépre. Tehát nem magától értetődő, hogy ha a kis programodat átviszed egy másik PC-re, akkor az ott működni is fog, még akkor sem, ha 2003-as Excel van rajta. Ha meg más verzió (bármelyik másik verzió), akkor szinte biztosan nem.

 

Megoldható persze, hogy a letöltöd az mscal.ocx 11.0-s verzióját, és telepíted mindegyik célgépre, csak macerás. Egyébként itt egy letöltési lehetőség és telepítési segédlet:

http://www.fontstuff.com/mailbag/qvba01.htm

 

Tudomásom szerint univerzálisabban használható a Microsoft Date and Time Picker Control, bár kétségkívül nem néz ki olyan jól, mint a Calendar.

Előzmény: pimre (21065)
Sánta Kutya (SK) Creative Commons License 2013.04.18 0 0 21067

Wiki alatt kisbetűvel nem a Wikipédiát értem, amit nem is lehet ilyen célokra használni, hanem a wikiszoftvert. Az van benne, amit beleírsz. :-) Meg lehet csinálni korlátozott írhatóságúra is. Lehet kategorizálni, módosításokat visszakövetni és visszavonni, crosslinkelni stb. Word dokumentumot egyébként is nehéz publikussá tenni.

Előzmény: pimre (21065)
tbando Creative Commons License 2013.04.18 0 0 21066

Egy pár ezer rekordos táblázatban memóriafoglalás szempontjából van-e különbség ha egy bonyolult összetett függvényt, egyben, több cellára elosztva vagy udf-ként használok? 

pimre Creative Commons License 2013.04.17 0 0 21065

Köszönöm. Meg fogom nézni.

 

A google témában igazad van, magam is mindig a google-vel keresek, és van, amikor elsőre jó találatot ad, de néha csak 2-3 óra után találok valamit, vagy legkésőbb addigra feladom. Most például egész délután gyűjtöm azoknak a Userform Toolbox vezérlőelemeknek a használatára vonatkozó ismereteket, amelyek sem a Kovalcsik könyvben nincsenek részletezve, sem az általam belinkelt - egyébként kiváló - tananyagban. Viszont megtaláltam azt, ami nincs az eredetiben - a Calendar Control 11.0 vezérlőt - és ez jónak tűnik.

 

SK-nak: Nem tudom, hogy gyűjtésre valóban a wiki-e a legalkalmasabb. Nem használtam még írásra, de úgy tudom, nem igazán megbízható. Állítólag könnyen belekerülhetnek téves információk. Akkor inkább maradok a saját megoldásomnál. Egy Word dokumentumban gyűjtögetem a linkeket, illetve ami letölthető, azt egy Excel Visual Basic nevű könyvtárba rakom.

Előzmény: Törölt nick (21060)
Törölt nick Creative Commons License 2013.04.17 0 0 21064

Küldtem be már néhány posztot a témában.

9698

13636

15462 (itt külön figyelmedbe ajánlom az utolsó sort :-))

Előzmény: Törölt nick (21061)
Törölt nick Creative Commons License 2013.04.17 0 0 21063

hi,

még sosem használtam, de ha minden igaz arra jó, hogy saját objektumokat hozz létre. Ezeknek te adhatod meg, hogy milyen tulajdonságaik meg metódusaik legyenek és használhatod őket a makróidban. Szerintem magasabb szintű/komplexebb makróknál, VBA alapú alkalmazások fejlesztésénél lehet igazán hasznos.

Előzmény: Törölt nick (21061)
Sánta Kutya (SK) Creative Commons License 2013.04.17 0 0 21062

Gyűjtésre szerintem a wiki a legalkalmasabb.

Előzmény: pimre (21058)
Törölt nick Creative Commons License 2013.04.17 0 0 21061

sziasztok,

használta már valaki vire az osztálymodulokat? Mire lehetnek jók ezek? Azt olvasom hogy nem használnak pl. memóriát. De nem találok anyagot a gyakorlati használatára.

Törölt nick Creative Commons License 2013.04.17 0 0 21060

Néhány link a második posztban, lehet szemezgetni:

http://www.excelforum.com/excel-programming-vba-macros/823709-new-to-excel-programming-and-looking-for-learning-materials.html

 

kódrészletek

http://vba-programmer.com/

 

Amúgy a google általában dob ki jó találatokat egy-egy konkrét problémára, szinte mindig megkérdezte már ugyanazt valaki korábban.

Előzmény: pimre (21058)
pimre Creative Commons License 2013.04.17 0 0 21059

Off: Jaj de nem szeretem a saját helyesírási hibáimat. Természetesen az 'eligazítot' helyesen 'eligazított'.

Előzmény: pimre (21058)
pimre Creative Commons License 2013.04.17 0 0 21058

Tegnap arról panaszkodtam, hogy mennyire nehéz összeszedni az Excel makróprogramozással kapcsolatos témakörökhöz a válaszokat.

Azután a keresgélés során olyat találtam, ami ugyan szintén nem ad választ az összes részletkérdésre, de olyan alapos, és közérthető (még a középszintű angolom ellenére is), hogy például a UserForm - ezen belül a MultiPage használatával kapcsolatos kérdésekben tökéletesen eligazítot. De ahogy elnézem a tartalomjegyzékét, a kezdő szinttől kezdve nagyon alapos, jól használható anyag. Ezért úgy gondolom, jótékony cselekedet, ha közzéteszem: http://www.ozgrid.com/Excel/free-training/ExcelVBA2/excel-vba2-index.htm

 

Viszont erről jut eszembe, hogy jó lenne egy olyan hely (és nem vagyok biztos benne, hogy ez egy fórum lehetne, mert abban elég hamar mélyre kerülnek az egyes hozzászólások), ahol összegyűjthetnénk a leghasznosabb hasonló tananyagokat. Esetleg létezik már ilyen?

 

 

 

Előzmény: pimre (21040)
ND7000 Creative Commons License 2013.04.17 0 0 21057

Pedig komolyan mondom, hogy ezt a variációt én is beállítottam.

Ezek szerint valamit elcseszhettem mert most működik !

 

Köszönöm !!!

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

Előzmény: ND7000 (21055)
ND7000 Creative Commons License 2013.04.17 0 0 21055

Sziasztok

Azt szeretném megkérdezni, hogy az excel beépített feltételes formázás funkcióját (amikor nyilakat , zászlókat, pipát stb lehet választani) lehet e ezt konfigurálni. Nekem az istenért sem sikerül.

Pl van egy számsor -3, 0, 10, -10, 13, 78 Azt szeretném elérni, hogy a 0 feletti értékeknél egy zöld nyil felfelé a 0 alattinál egy piros nyíl lefelé legyen, a 0-s érték pedig sárga nyil jobbra. Ha ráengedem a formázást akkor az lesz az eredmény, hogy a 78 as értéknél egy felfele zöld nyíl a többi piros le !

Így csak a számsor elemeihez tartozó számsor intervallumát vizsgálja a formázás , de ennek gyakorlatban kevésbé van értelme, (statisztikát általában viszonyszámokhoz mérünk és csak ritkán egymáshoz) tényleg ilyen bénán van megcsinálva, vagy én vagyok rosszul összerakva és valamit elbénázok ? :)

(Azt tudom, hogy sima szinezéssel meg lehet csinálni, de most ezek a nyilak kellenének)

 

Előre is köszi !

 

Tagore1972 Creative Commons License 2013.04.16 0 0 21054

Sziasztok!

 

Végre! Sikerült a 65ezer soros fájlt 1 millió sorosra konvertálnom.

Excel 2007-ben az xls fájlban készítettem egy nem konvertálható formázást

(feltételes formázás - színskálák, de lehet, hogy elég lett volna egy nem alapszínnel formáznom egy cellát).

Mentéskor feljött Kompatibilitás-ellenőrző ablak, kikapcsoltam ezen

ablak alján a "Kompatibilitás ellenőrzése a munkafüzet mentésekor" checkbox-ot.

Elmentettem xlsm-ként, kiléptem az Excelből, majd vissza és máris 1millió soros Excelt láttam :-)

 

----------------------------------------

Szeretnék kérni egy kis segítséget konvertálási problémában

forrásfájl ilyen most

   97-2003 típusú (.xls), 65 ezer soros, makrós

célfájl ilyen legyen

   makróbarát (.xlsm), 1 millió soros, makrós

Sajnos maradt a 65 ezer sor, ami már kevés.

-----------------------------------------

 

Kösz a tippeket.

 

üdv Józsi

Előzmény: Tagore1972 (21010)
Sánta Kutya (SK) Creative Commons License 2013.04.16 0 0 21053

Na ez az!

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

Lehet, hogy nem erre gondoltál, de VBA-ban az amúgy simán excelből is elérhető függvények az Application.Worksheetfunction objektumon belül vannak. :D

 

Én eddig abban a hitben éltem, hogy minden excel függvény elérhető VBA-ból ily módon, de most ez megcáfolódott. (Mondjuk van megfelelője, ami egyszerűbb is, de akkor is.)

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

Gondoltam, hátha van valami egyszerű összefoglaló vagy ránézésre ismérv...

Előzmény: tbando (21050)
tbando Creative Commons License 2013.04.16 0 0 21050

Hogy honnan? Én a sugóból szoktam.

Előzmény: Sánta Kutya (SK) (21047)

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