Keresés

Részletes keresés

tbando Creative Commons License 2013.04.28 0 0 21146

Nem. Szakértelem. És annak elérhetősége.  

Előzmény: Törölt nick (21143)
pimre Creative Commons License 2013.04.28 0 0 21145

Akadt egy új problémám, segítséget kérek: Egy listboxban szeretném programból beállítani a kezdőértéket.

Erre a ListIndex tulajdonságot használom. Csak az a gond, hogy valamiért nem érvényesíti, hanem továbbra is az első elemre ugrik. Ha viszont valahogy megállítom a programot. Pl. egy Break beállításával, vagy a ListIndex utáni sorba egy msgbox "valami" paranccsal, akkor már érvényre jut.

Mi a megoldás, hogy érvényre jusson a  default érték?

 

 

pimre Creative Commons License 2013.04.28 0 0 21144

Köszönöm. Úgy sejtem, értem, és ki fogom próbálni. Bár biztos lesznek azért még gondjaim a gyakorlati megvalósítással. Majd jelentkezem velük.

 

 

Előzmény: Törölt nick (21120)
Törölt nick Creative Commons License 2013.04.28 0 0 21143

Tárhelyprobléma?

Előzmény: tbando (21142)
tbando Creative Commons License 2013.04.28 0 0 21142

Valóban az lenne a legcélszerűbb. Csakhogy az én adottságaim mellett ez elég körülményes, így elég nehezen szánom el magam rá.

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

Ha lehetek őszinte, már többször megfogalmazódott bennem, hogy a Te exceled sorozatosan olyan problémákat produkál, amit senki másé.

Szerintem az egész gépet újra kéne húzni, onnantól kezdve, hogy "backup fontos adat", aztán "format C".

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

Ez az. Gubanc van sajnos. A Personal végig ott volt az általad javasolt mappában (is).  De ami az igazi fejtörést okozza, hogy tegnap még minden külön hókusz-pókusz nélkül behivódott. És nem emlékszem semmi rendkivülire, ami előidézhette ezt a gubancot. Azon töprengek, hogy nem kellene-e újra istallálni az excelt.

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

Nem kell átírni. Az indító a personalra nem vonatkozik, azt az előbb írt könyvtárból veszi hivatalból. Ha nem, akkor gubanc van.

 

Indítónak azt írd, ahol az Exceles füzeteidet tárolod.

Előzmény: tbando (21138)
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)

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