Az „Excel” fórum célja, hogy keretet adjon az Excel felhasználók széles táborának tapasztalataik megosztására, és lehetőséget a segítséget kérőknek. Az alábbi összefoglaló azért készült, hogy segítse a helyes kérdésfeltevést.
– Írd le szabatosan a problémát. Úgy fogalmazz, hogy ne csak te magad, de a szakértő is megértse, mire szeretnél választ kapni.
– Írd le, hogy milyen verziójú Excellel dolgozol. (Vagy ha nem – ill. nem csak – Excel, akkor micsoda?)
– Írd le, hogy milyen úton indultál el, és hol akadtál el rajta.
– A kérdés megértése szempontjából sokat segíthet, ha feltölteszt egy képet, amin látszik, hogy mit szeretnél, vagy illusztrálja azt.
– Még jobb, ha feltöltesz egy minta munkafüzetet valahová (pl. data.hu). Feltöltés előtt távolítsd el belőle a nem publikus adatokat.
– Ha a feladat jellege olyan, célszerű az "előtte" és "utána" állapotokat bemutatni. (Miből kellene csinálni mit?)
– Ha VBA kódon kell javítani, másold be a releváns kódrészt. Rövid kód mehet hozzászólásba, hosszú kód inkább ide: http://pastebin.com/
– Ha valami nem úgy működik, ahogy kellene, add meg a rendellenes viselkedés jellemzőit, a hibaüzenetet, és a hibát okozó programsort.
Azt szeretném megkérdezni, hogy van-e olyan countif analóg vba függvény ami a vba tömbökben számolja meg bizonyos értékek előfordulását, vagy csinálnom kell a megszámolásukra egy ciklust? Úgy tűnik ugyanis, mintha a countif csak a munkalapokon müködne.
A hogyan látja B munkáját, ha már rámentette a sajátját? Vagy van egy A mentés meg egy B mentés majd valami szinkronizalas? Van erre valami kész szoft?Mert elég komplikálnak tűnik.
Nem lesz real-time. Nálunk minden felhasználónak saját füle van (kettő a fején, egy a munkafüzetben). Ha B elmenti, majd A is elmenti, akkor van a változás, mert A-nak fényeskedik egy felirat, hogy a munkafüzet más felhasználók módosításaivel lett elmentve, és akkor látja B munkáját. Azt még nem próbáltam, mi lesz, ha ugyanazt a cellát akarják szerkeszteni. :-)
Szia! Én még sosem dolgoztam megosztott munkafüzettel, és előreláthatólag nem is fogok. De érdekel, hogy hogyan is működik. Teszem azt, ha egyidejüleg te is, meg én is megnyitjuk ugyanazt a megosztott filet, és mindkettőnknek jogosultsága van belepiszkálni, akkor real time-ban látjuk-e egymás változtatásait? Tehát csatolással kerül a gépeinkre a munkafüzet vagy bemásolással?
Szeretnék jelszóval védeni egy Excel adatállományt külön betekintési és külön módosítási jelszóval. Az adatokat egy tőle független program kezeli. Addig rendben is van, hogy amikor a program megnyitja az adatállományt, akkor kéri a kétféle jelszót. És ha betekintésit tudom, de a módosításit nem, akkor olvasásra nyitja meg. És itt adódik egy kis gondom. Az adatfelvivő programrészre enged a program ráfutni, és csak a mentéskor zaklatja a felhasználót rendszerüzenettel.
Ezt szeretném elkerülni, és figyelmeztetés után megakadályozni, hogy egyáltalán próbálkozzon a módosítással, aki erre nem jogosult. Ehhez ki kellene tudnom olvasni a programmal, hogy csak olvasásra van megnyitva az adatállomány. De sajnos nem találom a megoldást. Tudtok segíteni?
Kiváncsiságból megszámoltam, hogy pontosan hány karaktert képes a 2003-as excel egy cellában megjeleníteni. És a legnagyobb megdöbbenésemre nem kb. 1100-t mint írtam, hanem PONT 1100-t. Vajon miért?
Megnéztem a problémádat. És azt tapasztaltam, hogy a 2003-as excel cellái 32.767 karaktert képesek tárolni, de abból csak kb 1100-t képesek direktben megjeleníteni. Ezek is olvashatók azonban a szeresztőlécen, tehát ha ráállsz az adott cellára. Ha ez nem elég kezes, akkor lehet csinálni például azt, hogy a szomszédos oszlopban ezzel a képlettel teszed láthatóvá az A oszlopban nem mutatott szöveget: =ha(hossz($a1)>1100;közep($a1;1100;1100);"").
Azért köszönöm mindkettőtöknek a próbálkozást. Akkor marad a fapados megoldás. Még szerencse, hogy a formon elhelyezett objektumokra lehet változónévvel hivatkozni, így a mintegy tízféle comboboxomat, és ugyanennyi textboxomat egy-egy függvénnyel tudom előkészíteni inicializáláskor, és tesztelni az adatbeíráskor. Ez tényleg kellemetlen lett volna fapadosan egyenként megírni.
Örültem a hsz-dnek, mert megint tanultam valamit. Ami frankón működik is, már ami formok megszámolást illeti. De a behívással még problémák vannak. Mert nem feltétlenül azt a formot hívja, amelyikre a hivatkozás történt. És bár az első pillanatban erre nekem is lett volna magyarázatom, ami azonban nem bizonyult százasnak, mert a következő futtatásnál ugyanazzal a beállítással a következő userformot adta, és így tovább. Tehát a useforms(a).show beállítással végiglépkedett a létesített formokon. Ha végére ért kezdte előlről. Amig ki nem derül, hogy ez hogy is van, addig okosabb ha pimre marad a fapados megoldásánál.
Én is próbálkoztam tegnap, ugyanerre jutottam. Azért tapasztaljuk ezt, mert a Useforms.Count azokat a formokat számolja, amelyek létre vannak hozva objektumként. Az, amit szépen összerakunk textboxokból meg commandbuttonokból, az még csak az objektumosztály, de annak egy példányát futás közben létre kell hozni ahhoz, hogy ténylegesen legyen megszámolható Userform az Application-ban.
Szóval kellene ide minimum egy Load utasítás:
Sub teszt() Load UserForm1 Load UserForm2
MsgBox UserForms.Count End Sub
A fenti makró futásának eredménye: 2
Ezt ugye fel lehetne használni pimre projektjében is, csak kérdés, hogy egyszerűbb lenne-e, mint a fapados megoldás, amit ő maga kitalált. Merthogy itt a UserForms gyűjtemény tagjaira csak sorszámmal lehet hivatkozni (pl. UserForms(1)), a névvel hivatkozás (pl. UserForms("UserForm1")) hibát okoz.
Csináltam néhány userformot, mivel úgy gondoltam, hogy ezek automatikusan bekerülnek a userforms gyüjteménybe, amelynek tagjaira aztán indexelve lehet majd hivatkozni. De nem kerültek be. Amit az is mutat, hogy a userforms.count=0. Így sajnos nem tudtam segíteni, de azért megírtam, hátha valakinek egészen nyilvánvaló, hogy hol hibádzik a megoldáskísérletem és korrigálja.
A regényeket érdemes inkább szövegfájlba pötyögni, mert a fórumszoftver rendszeresen eljátssza, hogy ha túl hosszúra nyúlik a beírási idő, akkor egyszerűen szó nélkül elnyeli a szöveget. Szoktak itt (nem pont az Excel topikban, hanem fórumszerte) jóféle anyázások lenni emiatt.
Bocs, ne haragudj a félreértésért, de én nem szoktam fórumos dolgokat e-mailben intézni, csak nagyon indokolt esetben, és nem akartam azt a látszatot kelteni, hogy én vállalom magamra a problémád megoldását. Csak jeleztem, hogy ilyen hiányos kérdésfeltevéssel más se nagyon fog tudni segíteni. Ha látjuk, mi a feladat, valaki válaszol, akinek éppen affinitása és ideje van hozzá. A képet felteheted pl. kepfeltoltes.hu-ra, ahonnan be lehet linkelni ide.
Elég hosszú a dolog és küldenék egy képet is vagy táblázatot, de ide nem sikerült felrakni. Bepötyögtem egy r egényt és úgy tűnik elszált. Tudsz adni egy email címet???