Telefonszámunk: 1-472-0679

Mentés másként…

Kezdőlap Fórumok Excel témák Mentés másként…

8 bejegyzés megtekintése - 1-8 / 8
  • Szerző
    Bejegyzés
  • #3667
    matheg
    Felhasználó

      Sziasztok!
      Nagy meglepetéssel tapasztalom, hogy amikor egy már létző fájlt a „Mentés másként” paranccsal elmentek, akkor a Fájl/Információ lapon nem az új, hanem az eredeti fájl létrehozásának dátumát („Készült”) látom. Nekem pedig az új fájl mentésének időpontjára van szükségem. Rájöttem, hogy a Tulajdonságok/Speciális tulajdonságok paranccsal viszont meg tudom ezt nézni. Az azonos megnevezéshez tartozó két különböző dátum már önmagában is irritáló, olyan Microsoftos…
      A kérdésem az, hogy munkalapfüggvényekkel (makró nélkül) kinyerhetők-e ezek a dátumok?

      Attachments:
      You must be logged in to view attached files.
      #3669
      horvimi
      Adminisztrátor

        Szia!

        A két dátum szolgáltatása operációs rendszer szolgáltatás. Unix/Linux-ban is van, sőt, minden normális oprendszerben.
        Fontos lehet mindkét információ.

        Ezeket az adatokat csak makróval lehet kinyerni, beépített EXCEL munkalapfüggvény nincs rá.
        Lehet csinálni pl. egy pársoros (sőt, akár egy soros) makrót az egyéni makró munkafüzetbe is, tehát nem abba, aminek a dátumára kíváncsi vagy, és bármikor használhatod, hogy mondjuk az aktív cellába írja bele az aktív munkafüzet valamely tulajdonságát, jelen esetben a valamely dátumát.

        Érdekel?

        Imre

        #3670
        matheg
        Felhasználó

          Persze, hogy érdekel! 🙂 Csak félek, abban a környezetben, ahol szükségem van rá, nem annyira egyszerű a helyzet.
          Az egyetemen vizsgázó hallgatóim közül többen próbálkoznak a csalás azon módjával, hogy a vizsgafeladatok megoldását egy digitálisan nem totálisan analfabéta feltölti a tankör Google Drive-jára, a többiek pedig onnan letöltik és átnevezik. A feladatokat tartalmazó fájlt egy hálózati megharjótól nyitják meg a vizsgázók és a nulladik lépésben kell elmentsék más néven egy másik hálózati meghajtóra. Ha a fájl létrehozásának időpontja másodpercre megegyezik több fájl esetében, akkor már viszonylag hamar kiszúrom, hogy ez a véletlen műve-e. Persze ez még tovább fokozható lenne, ha mondjuk a mentés időpontjának időértékét megszorzom egy véletlenszámmal. Akkor gyakorlatilag kizárt, hogy két egyforma érték álljon elő. (Egyszerre max. 28-an vizsgáznak.) Na és persze aztán már csak egy másik makkró kell, ami végigolvassa a mappán belül lévő összes fájlt, és azonos értéket keres…
          Minden megoldásra nyitott vagyok, mert azt még csak lenyelem, hogy a hallgatóimnak fogalma sincs az Excel használatáról, de azt nem tolerálom, ha csalnak.

          Üdv, Gábor

          #3672
          horvimi
          Adminisztrátor

            Csak nagyjából értem, de vegyük végig a modellt.
            1. Te előkészíted a fájlt, annak lesz létrehozási és mentési ideje.
            2. Ők letöltik magukhoz. Vegyük, hogy csak az OKOS tölti le, mindegy. Ettől lesz egy új létrehozási dátuma, és egy régi módosítási dátuma.
            3. Megoldja a feladatot, és elmenti. Itt szétválhat a dolog, mert sima mentésnél marad a régi létrehozási dátum, de mentés másként-nél lesz új létrehozási dátum, utóbbi esetben a két dátum megegyezik, előbbinél nem.
            4. Feltölti a drive-ra
            5. Többiek letöltik. Lesz az előző szerinti, de közös módosítási dátuma, és új létrehozási dátuma. Ha csak átnevez, akkor közös marad a módosítási dátum, és te nyersz. Ha mentés másként-tel mentik el, akkor új fájl jön létre, és azonos lesz a létrehozási és a módosítási dátum. Ekkor Ők nyernek. Főleg, ha beleír, majd kitöröl, és úgy menti másként.

            vagy rosszul gondolkodok?

            A véletlenszámos részt nem fogtam.

            imre

            #3673
            matheg
            Felhasználó

              Pontosítom a célt, minthogy bármilyen más megoldásra nyitott vagyok ennek érdekében. NE LEHESSEN CSALNI úgy, hogy valaki nem a saját munkáját (fájlt) adja be, hanem más megoldását „szerzi meg” és nevezi át.
              A vizsga menete: A hallgató megnyit egy fájlt egy read-only hálózati meghajtóról, majd Neptun-kódját használva fájlnévként elmenti azt egy másik hálózati meghajtóra, ahol írási joga van. A megnyitott fájl tartalmazza a feladatokat is, és a feldolgozandó adatokat is.
              Az elterjedt gyakorlat: egy írástudó megoldja a feladatokat (még az sem biztos, hogy bent ül a vizsgán) és feltölti egy webes tárhelyre a megoldást, ahonnan aztán a többiek letöltik, és részben vagy egészben felhasználják.
              Volna lehetőség arra, hogy az internet hozzáférés és az USB portok le legyenek tiltva a vizsga során, de sajnos ezt csak a rendszergazdák tudják beállítani, ami nagyon körülményes, sőt néha lehetetlen egy reggel nyolckor kezdődő vizsga esetében. Ezért egyedüli megoldásnak azt gondolom, hogy ha a hálózati meghajtóról történő megnyitáskor egy garantáltan egyedi érték (nevezzük ellenőrző számnak) íródik be konstansként egy very hidden munkalap egy cellájába pl. most()*vél()-vél().
              Aztán már csak egy másik makró kell, ami végigmegy az összes fájlon és ellenőrzi hogy van-e két azonos ellenőrző szám.
              Jót deürlük magamban: a VBA tanfolyamon azt gondoltam, nekem sosem lesz szükségem olyan makróra, ami fájlokon gyalogol végig… 🙂
              Hozzáértés hiányában a létrehozás dátumát akartam használni, de a fent vázolt okok miatt ez nagyon nehézkes. Így kezdődött ez a történet…

              #3674
              horvimi
              Adminisztrátor

                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

                #3675
                horvimi
                Adminisztrátor

                  Van még itt egy másik dolog, amivel nem tudom, hogy mit lehet kezdeni.
                  Nevezetesen, ha az un írástudó által megoldott fájlból kimásolják és beillesztik a megoldást a saját fájljukba, akkor mi van?

                  #3676
                  delila
                  Felhasználó

                    Esetleg egy másik módszer:
                    MsgBox ThisWorkbook.BuiltinDocumentProperties(„Creation Date”)

                    Persze egy ciklusban kellene listázni az egyes fájlok nevét, és a létrehozási idejüket.

                    A 2017-05-28-19:14 hsz azt sugallja, hogy egyáltalán nincs mód a csalások leleplezésére. 🙁

                    Egy kis trükkel a „Creation Date” is módosítható.

                  8 bejegyzés megtekintése - 1-8 / 8
                  • Be kell jelentkezni a hozzászóláshoz.