Kezdőlap › Fórumok › Excel témák › Mentés másként… › Hozzászólás: Mentés másként…
Igen, ez egy lehetséges megoldás, de akkor tehát a kiindulási munkafájl is makrós kell, hogy legyen, és a megnyitás eseményhez kell rendelni a véletlen kód generálását. Ezen kívül meg kell oldani, hogy csak egyszer fusson le, és a következő megnyitások esetén már ne.
Ezután már csak az van hátra, hogy mi történjen, ha nem engedélyezi a makrókat.
Ezt úgy szokták csinálni, hogy:
Az eredeti feladat fájlban van egy „Welcome” munkalap, és eredetileg a többi nem látszik
A megnyitáskor engedélyezett makró fedi fel a feladathoz használandó lapokat
Ha nem engedélyezi, akkor csak a Welcome lapot látja, ahol közöljük vele, hogy engedélyezni kell a makrókat.
Elvileg ez is elég, ha csak egyszer fut le, az első megnyitáskor, amikor azt a bizonyos very hidden lapot készíti.
Végül még a Projektet (Makrót) is le kell védeni a fájlban, hogy ne lehessen (egyszerűen) hatástalanítani a makrót, illetve megnézni azt a bizonyos very hidden lapot.
Bár ha a kód valami szisztéma szerint áll elő, és nem teljesen véletlen, akkor feltörés esetén azt is lehetne vizsgálni, hogy az esetleg beleírt másik kód valid-e egyáltalán. De ez legyen egy továbbfejlesztési lehetőség.
Néhány sör ellenében szívesen segítek ebben neked, de osszuk meg a feladatot.
Kézi módszerrel kísérletezd ki a generálandó kódot.
Mivel voltál nálam VBA tanfolyamon, az Immediate ablakig valószínűleg eltalálsz. (VBA editor -> Ctrl+G)
A VBA-nak véletlen szám előállításához egy függvénye van, ez az rnd fv.
Ha beírod, hogy ?rnd, akkor kapsz egy 0-1 közötti véletlen számot.
Ebből matekkal és/vagy függvényekkel gyárts egy megfelelő karakterszámú egészet.
A non plus ultra pedig az lenne, ha ki tudnád gyötörni magadból és bármilyen egyéb forrásból, egy olyan makrót, ami készítsen egy munkalapot, nevezze el, és annak az A1 cellájába tegyen egy véletlen számot. (mondjuk ennek nem kellene egésznek lennie, ezt csak tornászásként :-)), végül tegye ezt a lapot very hidden állapotba.
Ezt a makrót pedig rendeld a munkafüzet megnyitásához.
Fokozásként már csak egy IF kellene bele, hogy mindez csak akkor hajtódjék végre, ha nem létezik még az a bizonyos nevű nagyon rejtett munkalap.
Aztán párszor nyisd meg a munkafüzetet, és mentsd el másként, majd ellenőrizd a generált számokat.
Első lépésként jó lesz.
Cserébe majd megcsinálom neked, hogy ha egy mappában van N db ilyen fájl, akkor egy tartományba kilistázza, a fájlneveket, mellé a benne lévő véletlen kódokat, és megmondja, vagy megjelöli, hogy vannak-e egyformák.
Ha ez megvan, akkor rámehetünk a mi van akkor, ha nem engedélyezi a makrókat esetére.
Jó munkát,
🙂
Imre