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.
Többszintű lista adatérvényesítésével kapcsolatban van kérdésem. Megoldható-e, ha egy magasabb szintű listaelemet módosítok, hogy az alacsonyabb rendűek törlődjenek? Na ez még nekem sem érthető... Inkább egy példa. Csináltam egy példa táblázatot. Első nekifutásra kiválasztottam a "Gyümölcs"-"Körte"-"Vilmos" adatsort. Eddig OK. Ám ha a legfelső szinten a Gyümölcsöt Zöldségre változtatom, a kiválasztás többi eleme (Körte-Vilmos) változatlan marad ami nyilván nem jó. Mit lehet tenni ez ellen?
Nem szeretném most arra terelni az eszmecserét, hogy mi lesz akkor, ha elmész/elküldenek a cégtől. Nélkülözhetetlen/pótolhatatlan ember nincs. :(
A védelemről:
Az Excel védelme alapvetően a felhasználók "véletlen" módosításainak megakadályozását szolgálja, elég szofisztikált módon, de nem megkerülhetetlenül/feltörhetetlenül.
A makrókat is lehet védeni a VBA nézet Tools - VBA project Properties - Protection fülön jelszóval is. De ez sem feltörhetetlen.
Ezért biztosabb az, ha magát a fájlt olyan környezetbe helyezzük, ahol a hozzáféréseket, láthatóságot vagyis a külső védelmet lehet erős eszközökkel megoldani, amire minden rendszerben, így MS-nél is megvannak a szabványos lehetőségek.
Nem küldözgetjük a fájlt, csak a végeredményt, pl. PDF formátumban mentve.
Lehet azt tenni, hogy az adatokat, amire szüksége van, külön fájlban tartjuk és csak a szükséges értékeket kérdezzük le a feldolgozáshoz. Sőt azt is lehet, hogy ez a feldolgozás is külön fájlban van. Az első fájl csak arra szolgál, hogy a hozzáférést ellenőrizzük és elindítsuk a másik /akár rejtett/, érdemi részt tartalmazó munkafüzetet.
Ez egyrészt így van! A fórum segítsége nélkül, olyan formában, ahogyan kérik tőlem, nem tudtam volna mindezt összerakni, hiszen hiányzó láncszemek voltak a folyamatban, amiket a fórumozók oldottak meg. Ezért baromi nagy köszönet Nekik!
Másrészt, ha nagyon le akarjuk sarkosítani a dolgot, akkor kellett hozzá az excel, ami a Microsoft szellemi terméke, szóval az érdem az övé, ha így nézzük. Persze ahhoz meg kellett egy gép, amin futnak a Microsoft termékek és a gép sem úgy született, hogy valaki egyik este lefeküdt, majd másnap meg felébredt és összerakott egy komplett, használható számítógépet, hanem több száz ezer ember folyamatos ötletei, fejlesztése, „szellemi termékének” a végeredménye. + a rengeteg youtubos video és feltöltőjük, amiket átnéztem, mert ha kicsi is az excel tudásom, én sem úgy születtem meg, hogy ez már a rendelkezésemre állt és bizony ők is segítettek benne az évek alatt…
Persze kellett hozzá egy keresőmotor is az interneten, hogy te is és én is rátaláljak a fórumra, az is szellemi termék. Meg persze az idex.hu is, ahol én is és te is együtt használva más szellemi termékét, tudunk most beszélgetni egymással.
Alapvetően a levédés nem az enyém, hanem az ő ötletük volt. Itt nyílván elsősorban ők féltik a céges adatokat. Szóval, ha nekik ez a megoldás jó, akkor nekem mindegy igazából.
"(béremelés, egyszeri jogdíj...stb.)" Ez sajnos nálunk nem kivitelezhető. Nagyon le vagyunk még maradva vállalati kultúrában a németektől / USA-tól. Ilyenért itt nem adnak nekem jogdíjat.... :(
egyelőre csak a cégen belüli pozíciómat tudom növelni vele, ami összefügg a fentiekkel is, hogy mi lesz akkor ha elmegyek.
Én örülök, hogy alapvetően olyan szituban vagyok most kicsit, hogy nekik van most rám szükségük elsősorban.
Ez egy kb 25-30 lépcsőből álló adathalmaz rendezés, átalakítás, műveletek elvégzése rajta, szűrés stb, ahol a lépések értelem szerűen egymásra épülnek és a sorrend nem változtatható. - Ez az, amit én raktam össze. És igazából maga az ötlet is tőlem származott, mert annyira ismertem az excelt, hogy átlássam, ezt vele meg lehetne csinálni. Ez az, amit viszont én nem feltétlenül szeretnék, hogy mások átlássanak és rajtam kívül más is össze tudja rakni, itt megint visszacsatolva a cégen belüli értékemre.
Alapvetően én örülök neki, hogy tudok segíteni a cégnek, ahol dolgozom, ahonnan a megélhetésem jön. Azzal, hogy ezt lehetőleg le kell védeni, nekem is azonosulnom kell, hiszen én ilyenkor mindig mint alkalmazott szerepelek, nem pedig mint egy külső szoftverfejlesztő mondjuk és követnem kell a vezetőség kérését.
Szia! Csak egy kérdésem van: Főnökeid mit szólnának ahhoz, ha bejelentenéd, hogy holnaptól nem dolgozol a cégnél, aminek következtében a szuperül kidolgozott, titokban tartott remek excel tábládat nem tudnák tovább használni? HIszen senki sem ismerheti, hogyan és milyen logikával működik.
Szerintem nem jó úton indultál el. Tárgyald meg a vezetőiddel, hogy az általad/általatok kifejlesztett rendszert milyen feltételekkel használhatja a cég - tudod létezik a szellemi termék tulajdon és annak védelme, ezért milyen juttatás (béremelés, egyszeri jogdíj...stb.) jár neked ezért.
Egyébként a munkafüzetbe építhetsz be jogosultságokat, ami alapján eldöntheti a makró, ki mire jogosult.
Az összes adatot tartalmazó munkalapot átteheted egy külön munkafüzetbe és a háttérben megnyitva számolhatsz vele.
Ha pedig igaz az, amit Garashannak írtál a munkatársak Excel ismeretéről, akkor semmi félnivalód nincs.
Üdv.
Ps. Azt gondolom tudod, hogy minden szoftverhez használati útmutatót illdomos adni írásban. Sőt a jövőbeni fejlesztések/esetleges javítások érdekében nem ártalmas egy pontos rendszer leírás készítése sem.
Igen, alapvetően hasonló dolgokban gondolkozom én is.
"bár azt nekem 10-15 mp eltüntetni" Szerencsére vagy nem szerencsére, alapvető, nagyon kezdő excel tudás van mindenkinek, ezért automatizálok mindent, gombokra lesarkítva. Nem tudják mi az, hogy makró stb. Kicsi az esélye, hogy bárki külsőst megkérnek, nem lehet-e feltörni a makrókat stb, mivel foglmuk sincs róla... így szerintem nem mennek tovább majd, hanem elfogadják, hogy oké, ezzel nem lehet mit kezdeni, csak "használni". Legalábbis ebben bízunk, ebből indulunk ki.
használni kell a file-t több mindenkinek. többfajta lekérdezésekből rakunk össze adatokat/információkat, amit aztán szűréssel kinyerve, csak a lényegi információt - eredményt használunk tovább. De ezt napi szinten változtatva.
Azt nem akarjuk, hogy össze tudják rakni, hogy hogyan jön ki a végeredmény + az alap adathalmazokat se lássák, hogy miből jön össze a végeredmény. (mi a folyamata az alap adatokból összeállításnak)
+ ha vki elmegy a cégtől, akkor ezt tovább vigye és felhasználja
Viszont az eredményt meg a napi munkához tudják használni, hogy vki könnyebb, gyorsabb, hatékonyabb legyen, mint az, ahogyan most dolgoznak.
Sejtem hogy arra gondolsz, hogy a pl. gmail asztali gépen betölti az excel előnézetét, ha csatolmányban van. Szerintem ez ellen nem igazán lehet védekezni. Legalábbis makró szinten egész biztosan nem, mert legjobb tudomásom szerint makrókat nem futtat a gmail.
De ha már úgyis telepakoltad makróval és azok szükségesek a működéshez is, akkor csináld meg úgy, hogy csak 1 darab munkalap van megjelenítve a munkafüzetben, az összes többit rejtsd el és jelszavazd le őket (bár azt nekem 10-15 mp eltüntetni) és makrók segítségével másolj át minden adatot arra az egy darab munkalapra. Lehet futtatni makrót automatikusan mentés előtt is, azzal pedig ki lehet pucolni azt az 1 darab munkalapot.
Most már tudom, hogyan lehet megcsinálni, hogy ne lehessen "másként menteni", ne lehessen "lementeni" + tudom azt is, hogy csekkolja, hogy csak akkro nyíljon meg a file, ha az elérési helye nincs megváltozva.
Most már csak arra kellene egy ötlet, hogy azt hogyan lehetne megcsinálni, ha e-mailben elküldi vki, akkor se működjön.
Lementeni nem lehet az e-mailből a gépre, de a levelező rendszerből, mit csatolmány, megnyílik az excel és mindig azt megnyitva tudják használni.
Esetleg erre vmi ötlet / módszer?
Mondjuk vmit szintén csekkoljon, ami nélkül nem nyílik meg, mert az is le van mentve valahová és azt is kellene mondjuk ugyan úgy elküldeni az emailben, de ezt nyilván nem tudja senki és azt nem küldik el. Esetleg vmi ilyesmi vagy hasonló? Szerintetek?
Illetve nem tudom, hogy a kérdezőnek mennyire tiszta a $ jel használata.
Ha az én vizualizált példámnál maradunk, akkor láthatod, hogy a szabály megadásánál nem használtam se az "A", se a "1" karakterek előtt dollár jelet. Ezáltal az érvényességben megadott első cellában, azaz a C1-ben a szabály az A1 tartalmát vizsgálja, míg a második cellában, a C2-ben pedig az A2 tartalmát vizsgálja.
Ha a képletem =A$1="igen" lett volna, akkor C1-ben, C2-ben, ... és C9-ben is az A1 cellát fogja vizsgálni. Azaz C1:C9 végig zöld lenne.
Vagyis a dollár jellel lefixáltuk az 1. sort.
Ha az A elé került volna dollár jel, akkor az az én példámat nem befolyásolta volna.
Viszont ha C1:D9 tartományt szerettem volna színezni az A oszlop értékeinek megfelelően, akkor kellett volna az "A" elé is dollár jel.
Másrészt, ha C1:D9 tartományt szerettem volna színezni a C oszlopot az A szerint, a D oszlopot pedig a B szerint, akkor nem kell elé dollár jel.
Gondolom csak elírás volt a részedről, az új sor kódja a 10-es.
Hogy a kérdező is értse, hogy miről beszélünk mindkét változatot megcsináltam neki.
A1 cellában van a szétszedendő szöveg
C1-ben az alt+enteres keresés, míg D1-ben a karakter(10)-es. Alatta pedig a használt képletek. Úgy ahogy a szerkesztő lécben is látszódnak. Azaz C2-ben van egy új sor.
Illetve vizualizáltam az automatikus formázás lépéseit is a kérdezőnek.
1. A képletet próbáld meg így írni: =bal(A1, Szöveg.keres(Karakter(160), A1)-1). Karakter(160) az Alt+Entert jelenti.
2. A feltételes formázást arra a cellára kell megadnod, amelyiknek változtatni szeretnéd a színezését. A formázás alapja viszont az a cella lesz, amelyikben a legördülő lista van!
Ha az A1 cellát formáznád és a legördülő a D1-ben van:
Kijelölöd az A1 cellát, utána Kezdőlap - feltételes formázás - új szabály - a formázandó cellák kijelölése képlettel
Tehát a feltételes formázás képletébe a legördülő cella címe legyen: pl. =$D$1=Igaz() zöld kitöltés. OK
Ezután - még mindig ki van jelölva az A1 cella, ismét új szabály =$D$1=Hamis() piros kitöltés OK
Azaz az A1 cellára két szabály van érvényben.
A szabályok szerkesztésében megnézheted, melyik szabály melyik tartományra vonatkozik.
Köszönöm, biztosan működnek, de én teljesen amatőr vagyok ezért bvbalami nem sikerül. :(
A képletedet gondolom egybe kell írni: =bal(A1, Szöveg.keres("", A1)-1) itt a két idézőjel között akár van akár nincs egy szünet (de gondolom nem az az ALT+ENTER) akkor is hibát jelez kijelölve már az első A1-t.
A szinezésnél az IGEN működik, csak nekem megjelenik a cellában az IGAZ felirat is, ami nem jó, mert az a cél, hohyha a NEM jelenik meg, akkor azért legyen pirossal szinezve a cella, hogy oda írjon be a kitöltő egy magyarázatot, hogy miért lett NEM a válasza. Azt nem értem, ha megcsinálom az IGEN-re, ugyanabban a cellában hogyan lehet megcsinálni a NEM-re is?
u.i.: remélem nem írtam el semmit, mert nem gépről írtam, hogy teszteljem is közben.
Az előző témához, pedig köszönjük a kedves szavakat. Utólag nem bánom, hogy a vissza pert kiírtam szóval is, mert csak most vettem észre, hogy a fórum motor kitörölte az összeset a hozzászólásomból... Olyan ritkán kell leírni, hogy el is felejtettem már, hogy azok törlődnek.
Ha képlettel akarod átmásolni, akkor arra van egyszerű megoldás:
Legyen az A1-ben a másolandó cella, akkor a függvény a következő:
=bal(A1, Szöveg.keres("
", A1)-1)
Nem elírás tényleg ALT+enter karakterre keresünk rá. A "-1" pedig azért kell, hogy az új sor karaktert ne másolja át az új cellába.
igen/nem alapján színezés másik cellában: a feltételes formázás lesz a barátod. Azon belül is a képlettel megadott változat. Először is jelöld ki azokat a cellákat, amiket színezni akarsz.
A függvényhez írd be, hogy '=A1="igen" ' A formázásnál pedig állítsd be a neked megfelelő formázást. Majd ugyan ezt csináld meg a "nem"-es változatra is.
Nem emlékszem, hogy melyik verziója az excelnek, de valamelyik a leokézés után átírta a függvényt új automatikus formázás létrehozásánál. De ha szerkeszted és újra beírod, akkor már jó lesz. Nyilván az A1 cellában feltételeztem az igen/nem szavakat.
Ha a cellában ALT+ENTER sortörés van, akkor hogyan tudom csak az első sort átmásolni egy másik cellába?
Ha egy cellánál választható legördülő lista van (pl. IGEN, NEM), hogyan tudom egy másik cella kitöltési színét megváltoztatni IGEN-nél Zöldre, NEM-nél Pirosra?
kipróbáltam és hiba nélkül lefutott Szóval nem tudom Garashan kódjával miért nem ment az előbb
valamit nyilván én toltam el
AMÚGY! Mindkettőtöknek köszönöm ismételten.
Nagyon nagy tudással rendelkeztek
+ segítően álltok mindenkihez
Ez a kettő egyben baromi ritka!
Nagyon hálás vagyok ( és szerintem a többiek nevében is szólhatok) az önzetlen és azonnali segítségért, amit itt ti ketten adtok (+ a többiek is, de ti ketten ahogyan követem egy ideje, viszitek a prímet)
Szia! Akkor mégsem megfelelően adtad meg az elérési utat.
A vizsgálathoz első lépés Excel beállításokban letiltod a makrókat.
Ezután megnyitod a fájlod.
If ThisWorkbook.Path <> "C:UsershalasDesktoptemp" Then MsgBox "Hiba a fájlban, a fájl bezáródik!" Application.DisplayAlerts = False ActiveWorkbook.Close SaveChanges:=False End If
részt így módosítod:
If ThisWorkbook.Path <> "C:UsershalasDesktoptemp" Then MsgBox ThisWorkbook.Path & vblf & "C:UsershalasDesktoptemp" ' ide a saját magad által használt elérési utat írd be. 'Application.DisplayAlerts = False "ActiveWorkbook.Close SaveChanges:=False
Stop End If
Ezután engedélyezed a makrók futtatását. Mented a fájlt. Lefuttatod az ellenorzes makrót.
Így látnif fogod, helyesen írtad-e be a feltételt. Ezt kijavítod a megfelelőre.
Ezután ismét lefuttatod.
Ha nem jelenik meg az üzenet, akkor jól csináltad.
Visszaírhatod az eredeti figyelmeztetést és kiveheted az aposztrofot a sorok elől ill. a Stop utasítást.
Köszi! sajnos vmiért nem megy, állandóan bezáródik :-( Pedig úgy adtam meg mindent, ahogyan mondtad nincs visszaper az utolsó mappa után elérési utat az információ - elérési út másolásából vettem
Private Sub Workbook_Open() ThisWorkbook.ellenorzes End Sub
Sub ellenorzes() If ThisWorkbook.Path <> "C:UsershalasDesktoptemp" Then MsgBox "Hiba a fájlban, a fájl bezáródik!" Application.DisplayAlerts = False ActiveWorkbook.Close SaveChanges:=False End If End Sub
Nyilván a C:... részt cseréld ki a te elérési útvonaladra. az utolsó mappa után ne tegyél vissza pert, ahogy látod a mintámban.
Ha elírod és úgy mented el, akkor csak a makrók letiltása után fogod tudni ismét megnyitni.
Ha biztosra akarsz menni, akkor az összes worksheet fülre is illeszd be ezt:
Private Sub Worksheet_Activate()
ThisWorkbook.ellenorzes
End Sub
Így elvileg nem csak megnyitáskor ellenőrzi az elérési utat, hanem ha aktiválod a munkalapokat is.