Keresés

Részletes keresés

Sánta Kutya (SK) Creative Commons License 2013.07.24 0 0 21722

No, akkor nem is erőlködöm. :-)

Előzmény: Delila10 (21720)
Delila10 Creative Commons License 2013.07.24 0 0 21721

Rendezd a tartományt a gyári szám, majd a dátum szerint emelkedő sorrendbe.

A D3 cella képlete =ÉS(A3=A2;A2=A1), ezt másold végig az adataid mellé. IGAZ értéket ad minden gysz. 2 legújabb dátumánál, a többinél HAMIS-at.

 

Másképpen: =HA(ÉS(A3=A2;A2=A1);1;""). Ez a két utolsó mérés dátumához 1-et ír.

 

Mindkét módszernél szűrheted a tartományt autoszűrővel a D oszlopra, és a szűrt sorokat átmásolhatod más helyre.

Előzmény: Ordas (21719)
Delila10 Creative Commons License 2013.07.23 0 0 21720

Sub Oszlopba()
    Dim ter As Range, sor As Long, CV As Object
    
    Range("A1").Select  '******************
    Set ter = Selection.CurrentRegion
    sor = 1
    
    For Each CV In ter
        CV.Copy Cells(sor, "G")  '***************
        sor = sor + 1
    Next
End Sub

 

Ez a makró az A1 cellában kezdődő táblázatból készít 1 oszlopot a G oszlopba. Csillagokat tettem két sor végére, ahol változtathatsz. Az elsőnél a táblázat bal felső celláját állíthatod át, a másodiknál a kigyűjtés oszlopát.

Előzmény: forzajuve (21710)
Ordas Creative Commons License 2013.07.23 0 0 21719

Sziasztok, újabb érdekes problémában kérem segítségeteket.

 

Adott egy kiexportált adatfájl, 3 oszloppal, töb ezer sorral.

 

A oszlop: mérőóra gyári szám

B oszlop: leolavásás dátuma

C oszlop: óraállás

 

Tehát pl.

 

gy.sz. dátum állás

AB12  07.15   1145

CD34  07.04   3456

AB12  06.22.  1023

EF56  06.30    4545

EF56  06.05.   3367

AB12  06.10.   999

CD34  06.11.   2999

AB12   07.31.   1867

 

stb.

 

Olyan képletet keresek, hogy mérőóránként (gyári szám) kikeresi a két legjabb dátumú óraállást

pl. az AB12-nél ez a 07.31-es (1867) és a 07.15-ös (1145) óraállás.

 

Kimásolnám a gyári számokat (ismétlődések eltávolítását lefuttatom) és a keresett képletet végighúzva mindegyik gyári szám mellé kiírja a keresett óraállásokat.

 

Nyilván a MAX(B:B) és a NAGY (B:B;2) nem megy, mert a mérők gyári számait nem veszi figyelembe

 

forzajuve Creative Commons License 2013.07.23 0 0 21718

Köszönöm! Annyira nem sürgős.

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

Meg lehet csinálni mátrixfüggvényekkel, de kicsit macerás. Később megnézem, csak most kezdődik a film.

Habár lehet, hogy tipikusan ez az az eset, amit egyszerűbb makróval megoldani, mint függvényekkel.

Előzmény: forzajuve (21716)
forzajuve Creative Commons License 2013.07.23 0 0 21716

Ja bocsi:) igen!

Előzmény: Sánta Kutya (SK) (21714)
forzajuve Creative Commons License 2013.07.23 0 0 21715

Nem, 4 oszlop és rengeteg sor.

De ha így nem megy, akkor a lényeg annyi lenne, hogy az a másik program, ahova be akarom illeszteni az excel táblát, A1 Enter, B1 Enter, C1 Enter, D1 Enter, A2 Enter, B2 Enter, stb sorrendben „értelmezze”. Ha minden az A oszlopban lenne, akkor úgy értelmezné…

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

Soronként ugyanannyi oszlop?

Előzmény: forzajuve (21713)
forzajuve Creative Commons License 2013.07.23 0 0 21713

Változó, de sok. Szóval a soronként való másolgatás borzasztó időigényes.

Előzmény: Sánta Kutya (SK) (21711)
Törölt nick Creative Commons License 2013.07.23 0 0 21712

Makro hasznalata nelkul:

 

elso sor kijelol, ctrl+c, jobbklikk -> paste special; transpose opcio bejelolese majd valahova bemasolod.

ugyanezt minden sorral eljatszod.

 

1-2 tucat sornal meg kivitelezheto, de tobbnel szerintem csak makroval megy.

Előzmény: forzajuve (21710)
Sánta Kutya (SK) Creative Commons License 2013.07.23 0 0 21711

Hány sor van?

Előzmény: forzajuve (21710)
forzajuve Creative Commons License 2013.07.23 0 0 21710

Sziasztok!

 

Tud valaki arra módot, hogy egy tábzázatból 1 db oszlopot csináljak, úgy hogy a balról jobbra haladva az értékek mind egymás alatt legyenek, majd a 2. sor ez alá. Valahogy így (persze jóval nagyobb táblázatot kell elképzelni):

 

1234

5678

 

1

2

3

4

5

6

7

8

 

Ha ez nehéz, akkor az is elég lenne, ha az eredeti táblázatot be tudnám illeszteni egy másik programba úgy, hogy mikor beillesztem balról jobbra olvassa be az értékeket és minden érték utána legyen egy Enter.

 

Köszönöm!

pimre Creative Commons License 2013.07.16 0 0 21709

Köszönöm az ötleteket. Mostanra megszállt az ihlet, és megtaláltam a megoldást. Ismeritek a viccet, aminek az a poénja, hogy hogyan fogsz egy elefántot? Fogsz kettőt, és az egyiket elengeded. Na én is ezt fogom csinálni. Miután a felhasználó megnyitotta az adatfájlt, akkor listázáskor az egészet átmásolom új néven. Ez viszi magával az eredeti jelszavakat. Majd ebbe a fájlba írom bele a az elkészítendő új munkalapo(ka)t. (Második elefánt). Majd törlöm az eredeti munkafüzetből származó, itt már felesleges eredeti munkalapo(kat). (Egyik elefánt elengedése).

 

És amint hazaérek a szabadságomról, neki is látok megvalósítani.

Előzmény: E.Istvan (21708)
E.Istvan Creative Commons License 2013.07.16 0 0 21708

Egy ötletem van, de nem tudom megvalósítható-e. Nem akarod a jelszókat kezelni. Ok. A felhasználó kezeli a saját jelszavait. Tehát az elvileg az ő felelőssége, hogy mentéskor is adjon meg jelszót. Én úgy tudom, hogy az excel párbeszédpaneljei meghívhatók VBA-ból is. Párat már én is használtam.

Tehát elvileg a feladat az lenne, hogy nem a programod menti el a fájlt saveas-al, hanem csak meghívja a mentés másként párbeszédpanelt kitöltve a szükséges elemeit (név, elérési út stb). Itt a felhasználó megadhatja a jelszavakat közvetlenül az Excelnek.

Illetve a jelszavak kezelése egy másik beállítás párbeszédpanelon történik, de nem tartom kizártnak, hogy akár azt is meg lehet szólítani közvetlenül, és akkor már maradhat a saveas parancs is, mert a felhasználó már közölte a szükséges jelszavakat az Excellel.

A megvalósítást ne kérdezt, mert ennyire még nem ástam bele magam a témába, de szerintem vannak itt profik akik akár kapásból tudják.

Előzmény: pimre (21707)
pimre Creative Commons License 2013.07.14 0 0 21707

Igazad van, erre a megjegyzésre nem figyeltem. Akkor lehet, hogy nem lesz megoldás a gondomra:-(

 

Előzmény: tbando (21706)
tbando Creative Commons License 2013.07.14 0 0 21706

Megnéztem az MS linkedet. És van ott a lap alján egy megjegyzés, amit a figyelmedbe ajánlok.

 

Note  The Password property is readable and returns ">>**".

 

 

Előzmény: pimre (21704)
tbando Creative Commons License 2013.07.14 0 0 21705

Maradjunk.

 

Ha sikerül, kérlek tedd fel ide az okulásunkra.

 

És elnézést, hogy belekotyogtam.

 

 

Előzmény: pimre (21704)
pimre Creative Commons License 2013.07.14 0 0 21704

Maradjunk abban, hogy én továbbra is a password property MS által leírt tulajdonságát szeretném használni, ha egy mód van rá.

Előzmény: tbando (21703)
tbando Creative Commons License 2013.07.14 0 0 21703

:)))

 

Szerintem semmivel sem nagyobb a biztonsági veszélye, mint hogy pisztollyal fenyegetnek, hogy add meg a jelszót. Mivel a jelszót manuálisan kell megadni, amit csak addig őriz meg a gép, amíg be nem csukod a makrót tartalmazó füzetet. De hát te tudod.

 

Na most ha mindenképp el akarod kerülni, hogy a jelszót tartalmazó változó hozzáférhető legyen, használhatod az első változatot is.

 

Manuálisan bekéred a forrásfilet.

Amit az elindított makró azonnal visszament valami kiegészítéssel és bezár, majd rögvest megnyit. Ekkor persze újra bekéri a jelszót. De innentől van egy forrásfile duplikátumod új névvel, amin megcsinálhatod a generált listádat, majd Mentés másként-tal tetszőleges névvel lementheted. Ez a file is védett lesz az eredeti jelszavakkal. 

 

 

 

pimre Creative Commons License 2013.07.14 0 0 21702

Köszönöm. Ez a megoldás az én agyamon is átvillant egy pillanatra. És persze működne is. De azért nem akartam alkalmazni, mert szerettem volna elkerülni, hogy függetlenítsem a rendszertől a jelszó bekérést. Érzek benne némi biztonsági veszélyt is. Ilyen megoldást csak a legvégső elkeseredésemben fogok alkalmazni. 

Előzmény: tbando (21701)
tbando Creative Commons License 2013.07.14 0 0 21701

Pimre!

 

Kicsit körbejártam a problémádat és oda jutottam, hogy amig nem oldódik meg password property beállítása az alábbiakat lehetne csinálni:

 

Ha a célfile-d  az átírt forrásfüzet, akkor nem kell foglalkozni a jelszókkal, mert a Mentés másként megtartja a füzet védett státuszát, és a jelszavakat is.

 

Ha meg a generált listád új füzetbe kerül akkor az alábbi  makrók is megfelelők lehetnek.  Ezekben a forrásfile bekérése nem a normál módon történik, hanem  inputboxokkal, amelyekkel megadod a forrasfilenevet, meg a jelszavakat, ez  utóbbiak így megőrződnek a mentésekhez, hogy ott csak a célfilenevet kelljen megadni.

 

******** 

Dim forrasfile$, celfile$, pw1$, pw2$   ’ modulváltozók lesznek tehát a makrókon kívül helyezd el őket 

 

*********

Sub forrasbe()

 

forrasfile = Application.InputBox("Forrasfile")

pw1 = Application.InputBox("Password1")

pw2 = Application.InputBox("Password2")

'

Workbooks.Open Filename:=forrasfile, Password:=pw1, WriteResPassword:=pw2

End Sub

 

**************

Sub celki()

celfile = Application.InputBox("Célfile")

ActiveWorkbook.SaveAs Filename:=celfile, FileFormat:=xlNormal, Password:=pw1, WriteResPassword:=pw2, ReadOnlyRecommended:=False, CreateBackup:=False

 

End Sub

 

Előzmény: pimre (21700)
pimre Creative Commons License 2013.07.13 0 0 21700

Az én programom nem látja a jelszavakat. Azokat az Excel kéri be az általam nem kezelt rendszeren keresztül. (Próbáld ki! Védj le egy adatfájlt, majd nyisd meg egy másik munkafüzetben lévő makróval. )

Én csak annyit tudok tenni, hogy a hibakezelő rendszer segítségével megakadályozom, hogy rossz kód esetén az Excel angol nyelvű hibával leálljon. Sőt vissza tudom küldeni (éppen egy korábban Jimmy által javasolt technikával), hogy adja meg újr a jelszót. 

Szóval az excel nem teszi lehetővé - nagyon helyesen -, hogy a programom "lássa" a jelszót. Enélkül könnyű lenne kicselezni a jelszavas védelmet.

Tehát én pusztán azt szeretném, amit a microsoft állít erről a password property tulajdonságnál (http://msdn.microsoft.com/en-us/library/office/aa224992(v=office.11).aspx), hogy visszaadja és beállítsa (returns and sets the password) az egyik munkafüzet objektumból kiolvasva, és a másikban beállítva az - általam ismeretlen - jelszót.

Előzmény: tbando (21699)
tbando Creative Commons License 2013.07.13 0 0 21699

És az miért nem jó, hogy amikor a megnyitáskor kéri a file a jelszavakat, nem csak a filet nyitja meg velük, hanem elhelyezi őket 2 változóba?  Amiket aztán az újonnan generált filek mentésekor felhasználhat. 

Előzmény: pimre (21698)
pimre Creative Commons License 2013.07.13 0 0 21698

A program egy adatfájlt nyit meg. Azt előzőleg a felhasználó közvetlenül a beállítások menüben védte le 2 jelszóval. Az olvasási és az írási használatával. Amikor pedig a program megnyitja a fájlt, a rendszer ugyanúgy bekéri a jelszót(szavakat), mintha program nélkül nyitnád a fájlt. És ezeket a jelszavakat szeretném - nem kiolvasni, csak továbbítani a program által generált listafájloknak. Hogy azokat is csak ugyanazokkal a jelszavakkal lehessen nyitni, amit a felhasználó pötyög be.

Előzmény: tbando (21697)
tbando Creative Commons License 2013.07.13 0 0 21697

Szia!

 

A problémáddal kapcsolatban lenne egy kérdésem. Az írtad:

 

 nem szeretném a forrásszövegben megjeleníteni a titkos jelszavakat

 

Ezek szerint a  nyitóprogramod nem tartalmazza jelszavakat. De így hogyan tudta megnyitni a filet? 

Előzmény: pimre (21696)
pimre Creative Commons License 2013.07.13 0 0 21696

A korábbi kérdésemmel kapcsolatban látszólag találtam egy forrást: http://msdn.microsoft.com/en-us/library/office/aa224992(v=office.11).aspx, ahol a MS azt állítja, hogy ez a property "...Returns or sets the password..."

 

De akárhogy próbáltam, nem teszi meg nekem azt a szívességet, amit ígér, hogy a passworddal megnyitott fájl passwordját átmásolja az új fájlba.

 

Próbálkoztam így:

 

Set forrwb = Workbooks(egyikmunkafuzet)

Set celwb = Workbooks(masikmunkafuzet)

ActiveWorkbook.SaveAs Filename:=celfile, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False

celwb.Password = forrwb.Password

 

Aztán úgy, hogy közvetlenül a save sorába írtam:

 

Set forrwb = Workbooks(egyikmunkafuzet)

Set celwb = Workbooks(masikmunkafuzet)

ActiveWorkbook.SaveAs Filename:=celfile, FileFormat:=xlNormal, Password:= forrwb.Password, WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False

 

De egyikkel sem jött össze. Az eredmény minden esetben az, hogy a másolt fájl passwordja 8 db * karakter.

 

Én rontok el valamit, vagy valóban nincs megoldás a password átadására?

Előzmény: pimre (21679)
tbando Creative Commons License 2013.07.12 0 0 21695

.... megnézni mi jön ki belőle.

 

Ez hasznos. Én is így jöttem rá, hogya change érvénytelen adatmegadással is inditja a makrót. 

Előzmény: Zoxo Whitney (21694)
Zoxo Whitney Creative Commons License 2013.07.12 0 0 21694

Ha a régi és új érték egyezik, akkor nincs miért futtatni a makrót...

Szórakozom, tanulok, megnézem mi jön ki belőle.

Előzmény: tbando (21693)
tbando Creative Commons License 2013.07.12 0 0 21693

Csk érdeklődöm: Miért van szükséged van a régi értékre? Illetőleg miért csak selection change-nél?

Előzmény: Zoxo Whitney (21692)

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