Keresés

Részletes keresés

tbando Creative Commons License 2013.04.27 0 0 21138

Kösz. Sajnos hiába jelöltem ki indítókönyvtárnak. Semmi.  Kipróbáltam az Office11\Library-t is. Abból elindult. Ahogy a c:\aaa-ból is. Szemben a két indításra rendszeresített xlstart-tal. Jó lenne tudni az okát.    

Előzmény: Delila10 (21137)
Delila10 Creative Commons License 2013.04.27 0 0 21137

A personal.xls útvonala XP-n

C:\Documents and Settings\Felhasználó\Application Data\Microsoft\Excel\XLSTART

Előzmény: tbando (21136)
tbando Creative Commons License 2013.04.27 0 0 21136

Egy elég furcsa problémába futattam bele. Mi lehet az oka?

 

Az XP gépemen futó excel2003 egyik napról másikra  nem hvta be indításakor a Personal.xls makrófüzetet. Megnéztem a Beállításoknál az indító könyvtár megnevezését: üres volt.  Valahogy kitörlődhetett, gondoltam. Ezért Beírtam: C:Program FilesMicrosoft OfficeOffice11xlstart. |gy se hívta be, noha az indítókönyvtár megnevezést most nem radírozta ki. Erre Personal.xls-t átraktam egy C:aaa nevű mappába, és ezt neveztem meg indítókönyvtárként. Innen normalisan indult.  Mi történhetett az xlstart könyvtárral? Javítható-e?   

Delila10 Creative Commons License 2013.04.26 0 0 21135

Köszönöm, ez csodás. Megtaláltam az idézetet.

Előzmény: Törölt nick (21134)
Törölt nick Creative Commons License 2013.04.26 0 0 21134
Előzmény: Delila10 (21131)
Delila10 Creative Commons License 2013.04.26 0 0 21133

:-)

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

Cseresznyéért? De. Sapka, sál!

Előzmény: Delila10 (21131)
Delila10 Creative Commons License 2013.04.26 0 0 21131

Télen nem lehet fára mászni?

Előzmény: Törölt nick (21129)
Sánta Kutya (SK) Creative Commons License 2013.04.26 0 0 21130

Hogy ne kelljen a makróimat minden alkalommal engedélyzeni a megnyitáskor.

Előzmény: Törölt nick (21128)
Törölt nick Creative Commons License 2013.04.26 0 0 21129

Tavasz van :)

(Mikor már a fákra is lehet mászkálni, meg ilyesmi.)

Előzmény: Delila10 (21127)
Törölt nick Creative Commons License 2013.04.26 0 0 21128

A cikk szerint sehogy. Szerintem is sehogy :)

 

Amugy milyen gyakorlati helyzetben lehet ez hasznos?

Neked mire kell?

Előzmény: Sánta Kutya (SK) (21122)
Delila10 Creative Commons License 2013.04.26 0 0 21127

Igazad van, ész nélkül írtam.

 

SK: szívesen.

Előzmény: Törölt nick (21124)
Sánta Kutya (SK) Creative Commons License 2013.04.26 0 0 21126

Köszönöm mindenkinek!

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

Range("A1").NumberFormat = "general"  'általános formátum

Range("A1").NumberFormat = "0"            'egészre kerekítés

 

 

Előzmény: Delila10 (21123)
Törölt nick Creative Commons License 2013.04.26 0 0 21124

Ha RGB függvénnyel számolod a színt, akkor ColorIndex helyett Color javasolt.

 

Range("A1").Interior.Color = RGB(0, 0, 255)

Előzmény: Delila10 (21123)
Delila10 Creative Commons License 2013.04.26 0 0 21123

Range("A1").Font.Bold = True   'bold

Range("A1").Font.Size = 14     'méret

Range("A1").Font.Color = RGB(255, 0, 0) 'piros font

Range("A1").Interior.ColorIndex = RGB(0, 0, 255)   'kék háttér

Range("A1").Interior.ColorIndex = 0   'automatikus háttér szín

Range("A1").NumberFormat = ("yyyy.mm.dd") 'dátum formátum

Range("A1").NumberFormat = "0"  'általános formátum

Előzmény: Sánta Kutya (SK) (21121)
Sánta Kutya (SK) Creative Commons License 2013.04.26 0 0 21122
Sánta Kutya (SK) Creative Commons License 2013.04.26 0 0 21121

Hali! A következő formázások kódjára lenne szükségem VBA-ban:

Adott cella/tartomány legyen

  • bold / nem bold
  • 14 pontos / alapértelmezett
  • adott RGB háttérszínű / alapértelmezett
  • éééé. hhhh. nn. / hhhh. nn. / általános számformátumú

Hol lehet ezeknek egyben utánanézni egyébként?

Törölt nick Creative Commons License 2013.04.25 0 0 21120

Akkor pontosítok. A másodikkal kezdem.

 

2. A belső modul alatt az űrlap saját kódmodulját értettem, mivel ez az, amit űrlap, mint komplett objektum, tartalmaz. Külső modul pedig az, ami az űrlapon kívül van, tehát gyakorlatilag minden más.

 

1. Nem kell nagy dolgokra gondolni, ugyanaz a lényeg, mint a függvényeknél. Tulajdonképpen a form felfogható úgy is, mint egy függvény. Bemenet az, amit beadsz neki, pl. kiindulási értékek, a form pedig valamilyen algoritmus alapján előállítja a hasznos értéket, amit aztán kiveszel belőle és használod. Ez utóbbi a kimenet.

 

Például (egy klasszikus adatbázis feladat):

Van egy elsődleges (adatbeviteli) űrlapom, amelyen a felhasználónak ki kell töltenie a mezőket. E mezők közül több olyan, hogy nem tetszőleges érték megy bele, hanem listából választható, de nem feltétlen ugyanabból a listából. Például az üzleti partnert az üzleti partnerek listájából, a feladat felelősét a dolgozók listájából, az alkatrészt az alkatrészek listájából, stb. Erre a célra tervezek egy másodlagos űrlapot, ami az összes ilyen listából választósdit kezelni tudja.

 

Ebben az esetben a függvény (avagy másodlagos űrlap) bemenete az az SQL lekérdezés lesz, amivel a választható értékek listáját elő tudom állítani az adatbázisból. A kimenet pedig az az érték, amit a felhasználó kiválaszt a listából.

 

Az űrlap belső modulján (lásd 2. pont) megírom az összes kódot, ami a bemenetet lekezeli. Nagy vonalakban:

- lekérdezem az adatbázisból az SQL alapján választható rekordok halmazát

- a rekordhalmazból megállapítom, hogy hány darab oszlop (mező) van

- létrehozok egy listboxot a másodlagos űrlapon, amely a választható értékeket tartalmazza, annyi oszloppal, ahány az adathalmaz megjelenítéséhez kell

- betöltöm az adathalmazt a listbox-ba

- megírom az összes kódot, ami a felhasználó kattintgatásaira reagál, köztük sorbarendezési, szűrési lehetőségeket

- megírom az összes hibakezelő és a felhasználó lecseszéséért felelős programrészt

- megírom azt a kódot, ami az OK gomb megnyomására a felhasználó által kiválasztott értéket előállítja, és visszaadja az elsődleges űrlapnak.

 

Ebben az a jó, hogy akármelyik projektemben fel tudom használni, ahol ilyen listából választósdi játék van. Csak annyit kell tudnom, hogy mit kell beadnom az űrlapnak, tehát mi a bemenet, és hogy a kimenetet hogyan, milyen formában kapom vissza. Az űrlap belső működését akár el is felejthetem (ha sikerült egyszer jól megírni).

 

Egyébként az összes beépített objektum és függvény, amivel találkozol, így működik. A súgóban le van írva, hogy milyen bemenő paraméterek kellene hozzá, és hogy a kimenetet milyen formában kapod meg.

 

A felbontásról.

Ez elég fogós kérdés. Amikor egy ablak különböző felbontásokon is működik, ott többnyire csak arról van szó, hogy felnagyítják/lekicsinyítik a méreteket. Pl. egy kép simán skálázható, vagy egy szövegdoboz is, legfeljebb több/kevesebb szöveg fér bele. Ha viszont egy 1280x1024-as űrlapot zsúfolásig megtömsz vezérlőkkel, bajosan tudom elképzelni, hogy azok el fognak férni 1280x800-on. Ha szellősebben vannak a vezérlők, esetleg egy átrendezés segíthet, de nekem nincs olyan algoritmusom, ami ezt elvégzi.

Igazából két lehetőséget látok. Az egyik, hogy csökkented a form méretét más elrendezéssel, vagy multipage használatával. A másik, hogy csinálsz egy tök ugyanolyan formot más felbontásokra optimálva, és mindig azt használod, ami éppen kell. Ez elég macerás, mert ha az egyiken módosítasz, azt át kell vezetni az összes többire is.

pimre Creative Commons License 2013.04.25 0 0 21119

A kekeckedés nem zavar. Sőt, örülök, mert olyan dolgok végiggondolására késztet, amelyek magamtól nem jutottak volna eszembe.

 

Azért sajnos itt nekem alapfogalmaim hiányoznak.

 

1. Függvényeknél természetesen tudom, de formoknál fogalmam sincs mi a ki- és bemenet. És nem találtam utalást rá hosszas keresgéléssel sem.

2. A külső/belső modul fogalmával sem biztos, hogy tisztában vagyok. Én azt hittem, hogy azzal, hogy ha ugyanabban a munkafüzetben hozom létre a formokat és az általuk meghívott függvényeket tartalmazó modult, akkor az belső modul. És ha átviszem másik gépre a munkalapot, akkor az ott is van. Ki is próbáltam, és minden további nélkül működik a program.

 

Viszont a kipróbáláskor beleütköztem egy új problémába. A képernyőm felbontása 1280x1024. A másik gépé, amin kipróbáltam, 1280x800, mert ott a harver ennyit enged. Programozáskor a formot a teljes képernyő méretére állítottam, és a kilépés gombot az aljához közel helyeztem el.  Viszont a másik gépen futás közben nem látszik ez a gomb. Próbáltam keresgélni megoldást, de nem találtam. 

 

Az világos, hogy 1024 pontot nem lehet elhelyezni 800 ponton. De feltételezem, hogy van valamilyen megoldás erre, hiszen sok program működik különböző felbontások mellett. De fogalmam sincs merre induljak el a megoldás keresésében.

Előzmény: Törölt nick (21117)
Törölt nick Creative Commons License 2013.04.25 0 0 21118

kész van az excel táblám, most pedig szeretném ellátni lapvédelemmel, da van benne egy makrós legördülő menü, és ha levédem akkor nem lehet változtatni rajta. de ha jobb klikk vezérlő formázása védelem nincs kipipálva de mégsem lehet lapvédelem alatt módosítani

Törölt nick Creative Commons License 2013.04.24 0 0 21117

Örülök, hogy sikerélményed van :)

 

Picit kekeckednék azért, mert jobb ma egy véreb, mint holnap kettő.

A form kódjának áttekinthetősége egy dolog, más dolog a hordozhatósága. Van úgy, hogy az ember csinál egy formot egy adott feladatra, aztán pár hónappal később jön egy másik feladat, ahol hajszálra ugyanaz a form jó lenne, vagy csak minimális változtatásokkal. Ha az első feladatnál hordozhatóra írtad meg, akkor könnyű átvinni. Ha nem, akkor nem annyira.

 

A hordozhatóságnak (vagy más szóval újrafelhasználhatóságnak) ebben a kontextusban ilyen kritériumai vannak:

1) A form jól definiált bemenetekkel és kimenetekkel rendelkezik.

2) A form tartalmazza az összes kódot, ami ahhoz kell, hogy a felhasználóval kommunikáljon, illetve a bemenetekből a kimeneteket előálltsa.

 

Ha a formról olyan függvényeket hívsz meg, amelyek külső modulon vannak, a 2. feltétel nem teljesül. Ez nem feltétlenül probléma, csak fel kell jegyezni valahová (célszerűen a form kódlapjának tetejére commentben), hogy a form csak az ilyen-olyan külső modullal együtt használható. Aztán ha kell, akkor együtt vinni mindkettőt a következő alkalmazásba.

 

De különben, ha csak egy adott form használ egy adott függvényt, akkor azt a form saját kódlapján is el lehet helyezni, Private megjelöléssel. Akkor kívül esik az eseménykezelő rutinokon, és nem zavarja az áttekinthetőségüket, de mégis a form része marad.

Előzmény: pimre (21116)
pimre Creative Commons License 2013.04.24 0 0 21116

Még annyit a függvények önálló modulba gyűjtéséről, hogy nagyon nagy segítség. Kiválóan áttekinthetővé tudom ezzel tenni a formok eseményeinek programozását. Mert nem csak azokat feladatokat teszem ki, amelyeket több form is használ, hanem áttekinthetőbbé tudom tenni az egyes események vezérlését. Érthetőbbé tudom tenni az események vezérlését és csökkenteni tudom a kódjaik méretét. Nagyon jó!!!

Előzmény: Törölt nick (21111)
Törölt nick Creative Commons License 2013.04.23 0 0 21115

időközben rájöttem, hogy lehet beállítni hogy több oszlopot is figyeljen

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

Több FKERES függvény együttes használata megoldás lehet? Mondjuk az egyik kikeresi a pénznemet, a másik a szorzót, stb.

Előzmény: Törölt nick (21109)
pimre Creative Commons License 2013.04.23 0 0 21113

A függvény modulba írva tökéletesen működik. Köszönöm. Valahogy nem gondoltam erre a lehetőségre.

Előzmény: pimre (21112)
pimre Creative Commons License 2013.04.23 0 0 21112

Köszönöm. Egyelőre csak meg akarom érteni. Mert egyelőre látva, hogy mennyire bonyolult, feladtam ezt az elképzelést, és inkább létrehozok egy "átmeneti" munkalapot. Ide írom a módosult adatokat az eredeti munkalappal azonos szerkezetben, és mentéskor csak bemásolom ezt a sort az eredeti munkalapra. Egyébként adatnyilvántartásról van szó, tételenként mintegy 50 adattal. És a felhasználókat meg szeretném kímélni attól, hogy az Excel táblázatban bogarászva kelljen azt kitölteniük.

 

A függvényre vonatkozóakat rövidesen kipróbálom.

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

Adatok átadása:

Itt van legalább 2lehetőség. Címszavakban:

1) Userform2-n deklarálni publikus változókat, és azoknak értéket adni

2) Property-k használata.

 

Most nem írnám le részletesen őket, inkább mondd el, mi a célja, mire akarod használni.

 

Függvények:

Alapvetően azt kel sztem bekódolni egy Userform-ba, ami logikailag oda tartozik. Ha van egy függvényed, amit több form-ból is szeretnél elérni, az nem tartozik logikailag egyikbe sem. Az ilyen függvényeket én kiiraknám egy normál modulba, publikusan. Akkoraztán akárhonnan meghívhatóak.

Előzmény: pimre (21110)
pimre Creative Commons License 2013.04.23 0 0 21110

Köszönöm. Szép kifejtés volt. Az túlzás, hogy értem, mindenesetre kipróbáltam és működik. És most próbálom értelmezni.

 

A mintapélda rról szól, hogy a meghívott Userform át tud adni adatokat a meghívónak. Azt viszont nem tudom kibogozni, hogy ez működik-e úgy is, hogy ez oda-vissza megtörténjen? Mert olyasmiben gondolkozom, mint a klasszikus funkcióknál. Hogy a hívó átad egy paramétert a meghívottnak, az pedig módosítja az értéket és azt visszaadja. Ehhez a mintában nem találtam meg a kulcsot.

 

A másik - tegnap késő esti - kérdésem azt hiszem, megoldódott a leírásod alapján.  "...az adatok átadását a Form-ok között ... eseményekhez kötjük." Ebből az következik számomra, hogy a Formok között a függvények nem átjárhatók, tehát nem oldható meg, hogy egy adott függvényt csak az egyik form kódjában szerepeltessek, és azt a másik form kódjából is meg tudjam hívni. Jól értem?

 

 

Előzmény: Törölt nick (21108)
Törölt nick Creative Commons License 2013.04.23 0 0 21109

sziasztok, teljesen tanácstalan vagyok,  kellene csinálnom egy excelt, amiben legordülö menük vannak.

es van hozzá egy táblázatom, amiben benne vannak az adatok, a cel az lenne hogy a végén ha a legördulö menuben mindent kivalasztottam akkor egy eredmény kijöjjön.

 

pl kiválasztom, egy oszlopban melyik ország akkor azt szeretném ha odaírná mellé a pénznemét, de az országnak van egy szorzó száma is,  meg egy kódja is es azt is odaírná. fkeressel próbáltam, de az egy cállát ir csak mellé.

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