Keresés

Részletes keresés

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)
Sánta Kutya (SK) Creative Commons License 2013.04.16 0 0 21049

Azt én sejtem, hogy alapvető szövegkezelő függvényeknek a Basicben is kell lenniük, de nem tudtam, hogy ezek felülírják az Excel függvényeit, illetve azt olvastam lentebb itt a topicban, hogy érdemes mindig az Excel-függvényeket választani, mert gyorsabbak.

Viszont nem vagyok rejtvényfejtő állapotban. :-)

Előzmény: Delila10 (21048)
Delila10 Creative Commons License 2013.04.16 0 0 21048

Hát ez az, hogy honnan?  :)

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

Köszönöm, működik, de akkor nem értem! Mi a különbség a munkalapfüggvény meg a mezei függvény között, és honnan tudhatom, hogy melyik melyik?

Előzmény: Delila10 (21046)
Delila10 Creative Commons License 2013.04.16 0 0 21046

A zárójelek Nálad vannak jó helyen. A right nem (csak) munkalap függvény, nem kell elé az Application.WorksheetFunction.

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

Ez tényleg egyszerű, és nagyon jó. A MultiPage-nek pedig rövidesen utánanézek.

Előzmény: Delila10 (21043)
Delila10 Creative Commons License 2013.04.16 0 0 21044

if right(worksheets(lapok(j).cells(k,3),4))="szla" then

 

Remélem, jól írtam.

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

"1 órás találgatással be fogom tudni állítani"

 

Állítsd az Excelt teljes képernyőre. Az Immediate ablakban kérdezd le a méreteit, amiket az előbbi ablakban megadtam, és ezeket az értékeket add a formnak.

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

Van egy oszlop. ahol a lehetséges értékek:

  • "szla"
  • "ilyen szla"
  • "olyan szla"
  • bármi más
  • üres

Ebből kéne kimazsoláznom a számlás sorokat.

Az If Worksheets(lapok(j)).Cells(k, 3).Value = "szla" Then feltétel helyesen találja meg a sima "szla" stringet (és itt gebedjen meg a zindex, hogy nincs állandó szélességű fontja), ellenben az

Application.WorksheetFunction.Right(Worksheets(lapok(j)).Cells(k, 3).Value, 4) = "szla"

a várakozásommal ellentétben nem a szla végű cellákat találja meg, hanem folyton igazat ad. És az is furcsa volt, hogy az Application.WorksheetFunction. után a listában nem jött fel a Right függvény, de hibajelzést sem kaptam. Nem így kell Jobb(valami,4) függvényt csinálni?

Delila10 Creative Commons License 2013.04.16 0 0 21041

Mi van, ha nem a form lesz óriás, hanem az Excel bújik meg mögötte?

 

Sub meret()

    With Application

        .Left = 100

        .Top = 100

        .Width = 300

        .Height = 300

    End With

End Sub

 

Én is javaslom a MultiPage bevezetését, azzal szortírozhatod az adatokat.

Előzmény: pimre (21040)
pimre Creative Commons License 2013.04.16 0 0 21040

Igen, ezt próbálgattam már. Most még egyszer megnéztem. Pl. 3-ra állítva megjelenik a vízszintes és a függőleges görgetősáv, de futtatáskor csak a függőlegest látom, és a mozgatási lehetőség (ennek a kék csíknak nem is tudom a hivatalos nevét, amivel görgetni tudok) nem jelenik meg, így a vízszintes görgetősávot nem is látom.

 

Ráadásul nem bánnám, ha futás közben teljes képernyős lenne a userform, hogy a felhasználó ne lássa alatta az excel táblát, mert minek. De nem találok utalást erre, csak a with tulajdonságnál látok egy számot: 718.5. De, hogy ez mi a fene, és hányra kell állítanom, hogy full screen legyen, arról semmi sem szól. Próbáltam 1024-et, ami a képernyő felbontásom, de az sok. Majd 1 órás találgatással be fogom tudni állítani. 

 

De ahelyett, hogy most titeket kérdezgetlek tulajdonságonként, nincs ez valahol egyértelműen leírva? Furcsa ez az excel nyelv. Iszonyúan sokat tud, de dokumentációt nem, vagy alig találok a részletekről. Úgy kell összeszedegetni kérdezgetéssel, guglizással és próbálgatással:-(((

Előzmény: Retro Image (21038)
Retro Image Creative Commons License 2013.04.16 0 0 21039

Ma gyors vagyok, mint az olajozott villám :o)

Előzmény: Delila10 (21035)
Retro Image Creative Commons License 2013.04.16 0 0 21038

Igen, a userform tulajdonságai között van egy ScrollBars nevű. Annak értékével lehet szabályozni, hogy melyik scrollbar jelenik meg.

Előzmény: pimre (21037)
pimre Creative Commons License 2013.04.16 0 0 21037

Kösz, de ezt helyre tudom tenni:-)))

 

Viszont a userform scrollozására van lehetőség?

Előzmény: Delila10 (21036)
Delila10 Creative Commons License 2013.04.16 0 0 21036

Jó viccet csináltam. A textbox kiürítését nem a then ágba tettem, így ha jó, ha nem a bevitt érték, törlődik. :(

Előzmény: Delila10 (21034)
Delila10 Creative Commons License 2013.04.16 0 0 21035

Megelőztél. :)

Előzmény: Retro Image (21032)
Delila10 Creative Commons License 2013.04.16 0 0 21034

A formon jobb klikkre előjön egy gyorsmenü. Innen a Tab Ordert választva könnyen be tudod állítani a formon lévő objektumok bejárási sorrendjét.

 

Az egyes mezőkhöz rendelhetsz AfterUpdate eseményt. Például ha számot vársz:

 

Private Sub TextBox1_AfterUpdate()

    If Not IsNumeric(TextBox1) Then MsgBox "Számot kérek"

    TextBox1 = ""

End Sub

Előzmény: pimre (21029)
pimre Creative Commons License 2013.04.16 0 0 21033

Köszi, délután kipróbálom a MultiPage controlt. Egyébként eltöltöttem egy fél órát azza, hogy próbálgattam a userform scroll tulajdonságait, de képtelen voltam elérni, hogy futás közben működjön a scrollozás lehetősége. Sőt képes voltam beírni olyan olyan textboxot a képernyő aljára, amit aztán scrollozás híján nem sikerült futás közben látni. 

Előzmény: Retro Image (21032)
Retro Image Creative Commons License 2013.04.16 0 0 21032

A userform-on a vezérlők sorrendjét "Tab Order" néven ismerik. Ez határozza meg, hogy TAB billentyű megnyomására hová ugrik a fókusz. Ugyanez vonatkozik az Enter gombra is, bár nem minden vezérlőtípus esetén.

Szóval kattints jobb gombbal a form-ra, és válaszd a Tab Ordert. Ott pedig rendezd megfelelő sorrendbe a vezérlőidet, hogy oda ugorjon Enterre, ahová kell.

Esetleg lehet játszani az EnterKeyBehavior Property-vel, bár az kissé mást csinál.

 

A vezérlő objektmok eseménykezelői hasznosak lesznek a projektedben, érdemes őket tanulmányozni.

Ha nem fér ki 50 vezérlő a form-ra, érdemes megfontolni a MultiPage control használatát.

 

Amúgy szerintem jöhet ide minden kérdés, úgyis pangás volt az utóbbi időben :o)

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

Ugye tudod, hogy a kurzorvezérlőknek kétbyte-os kódjuk van? Egy vezető 0, és utána a tényleges kód.

Előzmény: pimre (21028)
tbando Creative Commons License 2013.04.16 0 0 21030

Próbáltad már újra megnyitni? Ha még nem, próbáld meg.

Előzmény: Tagore1972 (21014)
pimre Creative Commons License 2013.04.16 0 0 21029

Adatfelvitelre. Egy 50 oszlopt tartalmazó Excel táblában szeretném az adatfelvivőknek a dolgát megkönnyíteni, és programból vezérelni az adatbeírást/módosítást. A billentyűkezelés célja, hogy ahol csak numerikus adatot várok, ott ne lehessen más karaktert beírni, ahol csak kétféle válasz lehet (igen/nem vagy férfi/nő), ott az első betű helyes leütésére kerüljön be a teljes szó, ahol majd névsorból lehet választani, ott segítsem a sok közül kiválasztandó név megtalálását. Az utóbbira még nem is tudom, hogy a legördülő menün kívül milyen technikák vannak az Excelben. Régen alkalmaztam olyan megoldásokat, hogy a program néhány karakter leütése után megtalálta a keresett nevet. (Az ilyen jellegű gyakorlatomat sok éve Clipperben szereztem, de ez egész más)

 

VBA adatfeldolgozást már csináltam többfélét is, de az adatfelvitelt illetően teljesen kezdő vagyok. Azért is vállaltam el a feladatot szívességből, hogy legalább megtanuljam ezt is.

Még abban sem vagyok biztos, hogy jó irányban indultam el azzal, hogy userformmal gondolom megvalósítani a feladatot. Itt eddig az első néhány adat textboxokban történő felvitelének a megoldásával kezdtem a tesztelést, és rögtön beleütköztem abba, hogy az első textbox kitöltésénél Down lenyomására a második textboxra ugrik, viszont az Enter lenyomására kettőt lépve a harmadikra, amit nem akarok. Bizonyára nem a 13-as enter kód cseréje a helyes megoldás, de egyelőre nem tudok jobbat erre sem.

 

Bizonyára lesz még rengeteg kérdésem a következő napokban/hetekben. Az egyik például az, hogy jó megoldást választottam-e egyáltalán a userformmal? Ha jól látom, ennek korlátja lesz majd a képernyő, tehát az 50 oszlopot nem fogom tudni egyetlen fel/le gördülő képernyőn kezelni.

 

Ha valaki tud tippeket egy ilyen munka általános nehézségeivel kapcsolatban, vagy internetes referenciákat (Sajnos a Kovalcsik Géza féle könyv csak főbb vonalakban ismerteti az interaktivás kérdéskörét), azt megköszönném. És, hogy ne terheljük vele a közösséget, akár privátban is szívesen fogadok tanácsokat.

 

Előzmény: Retro Image (21026)

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