Keresés

Részletes keresés

Veeyyl Creative Commons License 2019.05.08 0 0 32763

Igen így már működik :) Ez gyakorlatilag meg is oldja a problémát. Nagyon szépen köszönöm !!!

Annyi infó még, hogy tesztelés közben adott egy hibaüzit (mindemellett az eredmény jó lett)

 

 

Előzmény: Törölt nick (32760)
Törölt nick Creative Commons License 2019.05.08 0 0 32762

Pontosítsunk a fogalmakon, a közös nyelv érdekében.

A "munkafüzet" az az excel fájl maga, aminek valami.xlsx a neve.

A munkafüzet egy vagy több "munkalapot" tartalmaz. A Munkalap az az 1048576 x 16384 cellát tartalmazó nagy cellatér, amelyeket sokan "füleknek" neveznek, és alapértelmezésben a Munka1, Munka2, stb. nevet kapják.

A táblázat pedig a munkalapon egy teszőleges téglalap alakú cellatartomány.

 

Ha jól értem, akkor azt szeretnéd, hogy a munkafüzeted 3. lapjára, bizonyos cellákba fixen bekerüljenek adatok. Az általad leírt viselkedés természetes, a cellába írt képlet a bemenő paraméterek változása után aktualizálja az értékét. A célod elérésére két lehetőséget látok:

1) ha a számításhoz szükséges feltételek/adatok a 3. munkalapon is adottak, akkor nem a 2. munkalapon kellene mókolni a napi teljesítmény manuális kiszámolásával, hanem a 3. munkalapon a kívánt cellába kellene beírni azt a képletet, amely ezt kiszámolja.

2) Ha ez nem lehetséges, akkor egy makró (programkód) tudná a manuálisan kiszámolt értéket áttenni a megfelelő helyre. A makró megírásához több infó kellene, a munkalapok felépítéséről, pl. mit kell áttenni, mi alapján lehet megtalálni a cél cellát, stb.. Ezen kívül meg kellene határozni, hogy milyen akcióra vagy történésre induljon a makró. Ez lehet gombnyomás, duplakatt egy adott cellára, a munkafüzet mentésa, vagy sok minden egyéb is.

 

Előzmény: mrssimon (32761)
mrssimon Creative Commons License 2019.05.08 0 0 32761

Sziasztok!

 

Segítséget szeretnék tőletek kérni. Nem vagyok profi exceles, de próbálom az életem megkönnyíteni.

 

Kérdés: hogyan lehet megoldani, hogy eredmény kerüljön át egy munkafüzetre?

 

A kiinduló, egy táblázatban három munkafüzet van. Az első az adatokat tárolja (termékek, normatívák, nevek, dátum lista). A második munkafüzeten van két lista érvényesítés egy dátum és egy név. Ez legördíthető ennyi. 

 

Azt szeretném elérni, hogy ha kiválasztom a dátumot a listából, a nevet a listából és az alatta lévő részen a napi teljesítményt kiszámolom, akkor a harmadik munkafüzetbe a szintén kiválasztott naphoz és személyhez rendelje azt az összeget a dátum név metszésében lévő cellához, és az eredmény maradjon is ott meg állandó jelleggel.

 

Remélem megfelelő volt a leírás. Nem nagyon találtam rá megoldást, mert megpróbáltam, de abban a pillanatban hogy a második munkafüzeten a listán nevet és dátumot váltok kitörli az eredményt.

 

Előre is köszönöm, az elolvasást is. :)

 

 

Törölt nick Creative Commons License 2019.05.07 0 0 32760

De nem is kell, azt hiszem megvan, teljes cellatartalomra kerestem. Na de itt egy javított változat.

https://data.hu/get/11816003/szokereso_v1001.exe

 

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

Fel tudnád tölteni valahová azt a jelszavas fájlt, amiben a programom nem talált meg semmit? És megírni, hogy mit kell keresni benne? Letesztelném, hogy miért nem működik, Nekem ugyanis mindig megtalálta, amit kellett.

Előzmény: Veeyyl (32758)
Veeyyl Creative Commons License 2019.05.07 0 0 32758

Elsőre úgy gondoltam, de csak azért mert nem tudtam, hogy úgy bonyolultabb :)

Majd egy szimpla másolással megoldom, hogy a fájlok egy könyvtárban legyenek, az nem gond.

 

 

A szókereső program tesztelése során arra jutottam, hogy a jelszóval védett fájlban nem találja meg a keresett stringet, amellett, hogy a megnyitható oszlopban az igaz szó szerepel. Tehát elvileg a jelszavast is meg tudja nyitni. A jelszót nem ronthattam, el, teszt jelleggel csak egy "a" betű volt.

(3db xls fájlt csináltam, az egyik nem jelszavas, a másik kettő jelszavas eltérő tartalommal, de a nem jelszavas adatai is szerepelnek bennük, a nem jelszavasban megtalál mindent, a jelszavasokban semmit).

Pedig ez a bekérős formula nagyon jó lenne, a még nálam gyengébb userek is használni tudják :)

Előzmény: pimre (32754)
James 42 Creative Commons License 2019.05.07 0 0 32757

Mármint mire nincs kész megoldás? Hiszen Te magad írtad nemrég, hogy a Jimmy által küldött szókereső program elvégzi a dolgot. Én nem próbáltam ki, csak elhittem. Ha tényleg elvégzi, akkor minek kellene ezen görcsölni?

Előzmény: pimre (32756)
pimre Creative Commons License 2019.05.07 0 0 32756

Jogos. Ha szükséges lesz, és nincs kész megoldás rá valahol, akkor megpróbálom. Egyébként a permutációra végül a saját szórakoztatásom céljából megcsináltam. Így már több elem permutálása is megoldható lenne. Csak nem tettem közkinccsé. Gyakorlati haszna úgysem sok lenne.

Előzmény: Sánta Kutya (SK) (32755)
Sánta Kutya (SK) Creative Commons License 2019.05.07 0 0 32755

Szép példa lenne a rekurzióra. :-)

Előzmény: pimre (32754)
pimre Creative Commons License 2019.05.07 0 0 32754

Pontosítom a kérdést: Remélem, nem úgy gondolod, hogy az adott könyvtár összes alkönyvtárában, meg azok alkönyvtáraiban? Mert az túl bonyolult lenne. 

 

A legjobb, ha egy könyvtárban összegyűjtöd a fájlokat. Az nem lesz gond.

 

De ha több könyvtárról van szó, akkor kellene egy lista azokról a könyvtárakról, amelyekben keresni kell a fájlokat. Ez a lista lehetne a programot tartalmazó munkafüzet egyik munkalapján, aminek legyen a neve például "Könyvtárak". Ebben az esetben az eredményt tartalmazó munkalapnak is adjunk nevet, mondjuk "Találatok" (De a neveket majd tetszésed szerint írd meg).

 

Ez alapján meg tudom oldani a programban, az automatikus keresést.

 

Egyébként a Jimmy által küldött szókereső program elvégzi ugyanezt. Megadod a könyvtárat. Szkenneled (ekkor végigmegy az alkönyvtárakon, kigyűjti a fájlokat). Aztán megadod a keresendő kifejezést, a használt jelszót/jelszavakat, majd egy új munkafüzetbe listázza az eredményt.

Előzmény: Veeyyl (32752)
James 42 Creative Commons License 2019.05.07 0 0 32753

Ha az segít, a dir /s parancs kilistázza őket. Bele lehet íratni a listát egy szövegfájlba is, például:

 

dir /B /S *.xl* > xls.txt

Előzmény: Veeyyl (32752)
Veeyyl Creative Commons License 2019.05.07 0 0 32752

WOW, ez működik :) 

Már szinte csak annyi kellene, hogy egy adott könyvtárban (pl d:/) minden xls, vagy xlsx fájlban keressen.

 

 

Előzmény: pimre (32748)
Törölt nick Creative Commons License 2019.05.06 0 0 32751

Nézd meg, hogy ezt tudod-e használni.

https://data.hu/get/11814710/szokereso.exe

Előzmény: Veeyyl (32746)
Törölt nick Creative Commons License 2019.05.06 0 0 32750

Hát, én nem próbáltam ki... szóval lehet, hogy kamu. De ez furcsa, mert nem találtam más, hasonló applikációt, pedig nem tűnik olyan egetrengetőnek a feladat.

Előzmény: pimre (32745)
Törölt nick Creative Commons License 2019.05.06 0 0 32749

Mit is szokás erre mondani? Amíg élünk, remélünk? :-)

Előzmény: zsófi_01 (32747)
pimre Creative Commons License 2019.05.06 0 0 32748

Na akkor küldök egy mintát, hogy milyen úton tudnál elindulni. Persze nem ismerem az adatállományaidat, ezért a programban kézzel kell meghívnod a fájlokat. Ezt nyilván több száz fájllal nem fogod megtenni. De ha majd kitalálsz egy eljárást, hogy milyen módon lehet majd programba írni a feldolgozandó fájlok listáját, ahhoz már könnyű lesz hozzáigazítani a programot.

 

Szóval nyiss egy új excel munkafüzetet, és a következőt másold be a VBA ablakba. A legelső sorban az x-ek helyére írd be a jelszavadat és a keresendő kifejezést.

 

A program kéri, hogy válaszd ki a fájlokat (később majd ezt automatizálhatjuk), megnyitja azokat, végignézi azok munkalapjait, és ahol talál egyezőt, úgy az

A oszlopba kiírja találatokat (munkalaponként csak az elsőt, de ezt is lehet módosítani).

 

Próbáld ki néhánnyal, aztán ha ez jó, akkor majd térjünk vissza az automatizálásra.

 

Const jelszo As String = "xxxx", keresokif As String = "XXXX"

Option Explicit

Sub beolvas()

    Dim hely As String, aktwb As Workbook, aktws As Worksheet, kiirws As Worksheet, filenev As Variant, utolsosor As Long, mf As Long, sor As Long, _

        eredm As Range, mfnev As String

    Set kiirws = ThisWorkbook.Worksheets(1) ' Ide írjuk ki az eredményeket

    utolsosor = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row

    kiirws.Range("A1:A" & utolsosor) = "" ' Az első oszlop adatainak törlése

    hely = "C:"

    sor = 0

    While filekival(hely, filenev)

        Set aktwb = Application.Workbooks.Open(filenev, Password:=jelszo)  ' Ez meg is nyitja

        hely = Left(filenev, Len(filenev) - Len(aktwb.Name))

        For mf = 1 To Sheets.Count

            Set aktws = aktwb.Sheets(mf)

            Set eredm = aktws.Cells.Find(what:=keresokif)

                 ' Ezekkel lehet még pontosítani a keresést: LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=True

            If Not eredm Is Nothing Then

                sor = sor + 1

                mfnev = aktwb.Name & " munkafüzet, "

                kiirws.Cells(sor, 1) = mfnev & aktws.Name & " munkalap: " & eredm.Row & ". sor " & eredm.Column & ". oszlop"

                mfnev = Space(Len(mfnev)) ' Hogy másodszorra már ne írja ki

            End If

        Next mf

        Application.DisplayAlerts = False

        aktwb.Close

        Application.DisplayAlerts = True

    Wend

End Sub

'****************************************************************************************

'                            File kiválasztás GetOpenFilename paranccsal

'****************************************************************************************

Function filekival(path As String, filenev As Variant) As Boolean

ChDrive Left(path, 1)

ChDir path

filekival = False

filenev = Application.GetOpenFilename(FileFilter:="Excel files, *.xls*", Title:="File bekérés")

If filenev <> False Then ' Azért kell variant változó, mert lehet a tartalma string, de lehet False is

    filekival = True

End If

End Function

Előzmény: Veeyyl (32746)
zsófi_01 Creative Commons License 2019.05.06 0 0 32747

Hát én nem is tudom mit mondjak.... nagyon szépen köszönöm, kb 2 órás melóval rendezve van minden..... na nem mintha érteném a függvényedet... de köszönöm😅 

Előzmény: Törölt nick (32683)
Veeyyl Creative Commons License 2019.05.06 0 0 32746

Nem, nem erre készülök, tudom a jelszót a fájlokhoz!! , csak sok-sok fájl van sok-sok adattal, és neveket kell keresni bennük.

Már reggel óta próbálgatom a neten talált megoldásokat, de egyik sem oldja meg teljesen a problémát.

Előzmény: pimre (32743)
pimre Creative Commons License 2019.05.06 0 0 32745

Ezt tudom, olvastam.

 

De szerintem a hivatkozott oldal ugyan azt állítja magáról, hogy jelszóval védett fájlokban keres szövegeket, majd ezután végig a jelszó megtalálás lehetőségéről ír. 

Egyébként meg szerintem ez inkább egy lehúzós oldal, ami kecsegtet egy 30 napos fully-functional verzióval, csak az éppen nem érhető el.  Az meg nem derül ki, hogy ténylegesen mit kap az érdeklődő az 50 ezres befizetés után. Nem hiszem el, hogy tényleg tud keresni a védett dokumentumokban.

 

Egyébként meg egyetértek veled, hogy ha az illetékesek meggyőzése nem megy, akkor programmal oldható meg a dolog. Persze ha a kérdező meg tudja adni a paramétereket, amelyek segítségével meg lehet találni a fájlokat.

Előzmény: Sánta Kutya (SK) (32744)
Sánta Kutya (SK) Creative Commons License 2019.05.06 0 1 32744

"a jelszót természetesen tudom, és minden esetben ugyanaz a jelszó"

Előzmény: pimre (32743)
pimre Creative Commons License 2019.05.06 0 0 32743

Miért működne? Arra készült, hogy keresd meg a biztonsági lyukat a jelszavas védelemmel kapcsolatban. (It was designed to search and find security holes related to password protection.) 

 

Szerintem nem létezik megoldás arra, hogy jelszóval védett Office fájlokat meg lehessen nyitni azok ismerete nélkül. Legfeljebb a nagyon rövid (3 karakter), vagy nagyon primitív (12345) jelszavak megtalálására van esély.

Előzmény: Veeyyl (32742)
Veeyyl Creative Commons License 2019.05.06 0 0 32742

Ez jó lett volna de nem működik :( (rendszergazdaként futtatom)

Előzmény: Törölt nick (32741)
Törölt nick Creative Commons License 2019.05.04 0 1 32741
Előzmény: Veeyyl (32734)
Sánta Kutya (SK) Creative Commons License 2019.05.03 0 0 32740

Akkor mégiscsak programozás lesz, vagy az illetékesek meggyőzése, hogy nekik a célt kellene meghatározniuk, és nem az eszközt.

Előzmény: Veeyyl (32739)
Veeyyl Creative Commons License 2019.05.03 0 0 32739

Ez a megoldás nem kezeli a jelszavas fájlokat (próbáltam).

Előzmény: arkilaszlo (32738)
arkilaszlo Creative Commons License 2019.05.03 0 0 32738

nagyon egyszerűen, a win saját fájlkezelőjével

 

 

 

 

 

Előzmény: Veeyyl (32734)
Veeyyl Creative Commons License 2019.05.03 0 0 32737

Igen erre én is gondoltam, de sajnos az adatokat többen is használják, és évek óta így készítik és használják. Ezen az adott terület illetékesei nem akarnak változtatni. Pl ha valakinek el kell küldeni az adott fájlt, akkor azzal meg vacakolni kell. Olyanok is használják akik nem értenek ezekhez a dolgokhoz. :( (pedig milyen egyszerű lenne)

Előzmény: James 42 (32735)
Eredő Vektor Creative Commons License 2019.05.03 0 0 32736

"Total Commender"-ben lehet fájlon belüli szövegre keresni.

Előzmény: Veeyyl (32734)
James 42 Creative Commons License 2019.05.03 0 0 32735

Ha nekem kéne ezt megoldani, akkor nem vacakolnék programozással, hanem összeszedném ezeket a fájlokat egy helyre (bár nem feltétlenül egyetlen mappába), aztán mindegyikről levenném a jelszót, és gyártanék nekik egy jelszóval védett mappát például TrueCrypt-tel vagy BitLocker-rel (http://truecrypt.sourceforge.net/). Ha ezt a védett mappát megnyitjuk, akkor utána már lehet benne keresni a kulcsszavakra.

Előzmény: Veeyyl (32734)
Veeyyl Creative Commons License 2019.05.03 0 0 32734

Sziasztok

A véleményeteket szeretném kérni, hogy szerintetek ebben az esetben milyen irányba kellene elindulni a megoldással?
Adott, viszonylag sok (több 100) excel fájl,több könyvtárban, ezekben kellene megkeresni egy-egy adott szót (vagy több szót: pl nevet).
Egyesével megnyitogatni nem lenne túl hatékony :)
Eredményként elég lenne a fájl neve, hogy ebben/ezekben megtalálható az adott szó.
A probléma azzal "súlyosbodik", hogy a fájlok jelszavasak, a fájl is és a munkafüzet(ek) is. (a jelszót természetesen tudom, és minden esetben ugyanaz a jelszó).
Mit javasolnátok ?
Köszönöm előre is !

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