Keresés

Részletes keresés
Így működik

Bővebben az új keresőről

Jules1028 Creative Commons License 2011.01.11 0 0 13798

Az Excel programozásával kapcsolatban még kissé hadilábon állok, de ezt a problémát én nem erről az oldalról fognám meg, hanem inkább webes oldalról, vagyis PHP-t használnék, mivel a dinamikus tartalmak nagyrészét szerver oldalon lefutó scriptek állítják elő. PHP alkalmazásával sokkal megbízhatóbb adatgyüjtést tudsz végezni egy honlapról, és tudod figyelni a tartalomváltozásokat is, és már szerver oldalon képes vagy az adatok ellenörzését elvégezni, és a szükséges adatokat külön fájl(ok)ba, adatbázisba, akár (excel táblázatba) is ki tudod gyűjteni. Persze ez a módszer, akkor a legjobb, ha a weblap adminisztrátora vagy. Ha a weboldalt nem tudod szerkeszteni, akkor is tudsz adatokat gyűjteni, de ebben ez esetben teljesen mindegy, ha maradsz annál a módszernél, amin már elindultál.

Üdv.!

Előzmény: esy.gab (13795)
Törölt nick Creative Commons License 2011.01.11 0 0 13797

ha indítassz egy weblekérdezést, akkor egy böngészhető oldal nyílik meg, itt be is tudsz lépni

Előzmény: esy.gab (13795)
szkripnyik Creative Commons License 2011.01.11 0 0 13796

Sőt!

Még csak nem is egyenes!

A megtett út (s) "a" gyorsulással "t" idő alatt:

S = 0.5*a*t2  Ez lassulásnál (a < 0) is igaz...

:-))

Előzmény: tt65 (13794)
esy.gab Creative Commons License 2011.01.11 0 0 13795

Sziasztok!

 

Adatbekéréssel (weblapról) kapcsolatban...

Hogyan lehet azt megoldani, hogy ha egy olyan oldalról szeretnék adatokat ahová előbb be kell lépni, felhasználónév, jelszó stb. (Sőt még szervert is kell előbb választani.)

Most úgy működik, hogy meg kell nyitnom az "Adatok" fülön a kapcsolatok szerkesztését, stb stb stb, az excel saját böngészőjén (Pl. az internet explorerben, vagy a mozzilában nem jó mert az exel ezt nem látja, vagy fogadja el.) belépni az oldalra, majd bezárni az ablakot, és csak így tudom frissíteni az adatokat.

Jó lenne a belépést automatikusan megoldani, előre megadott adatok szerverszám, felhasználónév, jelszóval.

Vagy ha nem lehet automatikus, legalább valahogy, mert akkor szerkesztenék az excelben egy belépőképernyőt amit a saját böngészője lát, és be lehet lépni az oldalra és utánna frissíteni az adatokat.

De hogyan? (Programozásban nem vagyok otthon! Az exelt értem talán egy picit.) Tud valaki segíteni?

tt65 Creative Commons License 2011.01.11 0 0 13794

érdekes! Nagyobb sebességnél, a fékezésnél lassabban fékeződik az autó? (a fékezésnél lehajló egyenesek nem párhuzamosak)

 

Előzmény: Lesleee (13785)
Sztai Creative Commons License 2011.01.10 0 0 13793

Ha azt szeretnéd, hogy megmaradjon számnak (mert pl. sorszámozni szeretnél) akkor egyéni számformátumot alkalmazz.

ha a cella értéke 1 és azt szertnéd, hogy 0001 látszódjon a formátumkód 0000. A 00-0146 alakhoz pedig a kód 00-0000

üdv

 

Előzmény: andzsin (13790)
Sznida Creative Commons License 2011.01.10 0 0 13792

Szia Adzsin,

 

A legegyszerűbb, ha egy aposztrófot '-ezt (magyar billentyűzeten shift+1) írsz be legelőször, akkor szövegként fogja értelmezni a utána lévő karaktereket.

 

Üdv: Szndio

Előzmény: andzsin (13790)
Törölt nick Creative Commons License 2011.01.10 0 0 13791

tegyél elé 'aposztrófjelet', vagy állítsd szövegre a cellaformátumot

Előzmény: andzsin (13790)
andzsin Creative Commons License 2011.01.10 0 0 13790

sziasztok, kérdésem van:) azt hogyan tudom elérni, hogy ilyen formátumot is be lehessen írni a cellába: "0001", "00002", vagy "00-0146"...stb. ahányszor 0-át írok egy számsor elejére, mindig kijavítja és elhagyja a 0-át. kerestem a beállításoknál, meg a cellatulajdonságpknál, de nem találtam.

Sznida Creative Commons License 2011.01.09 0 0 13789

Bocsánat :)

Az előző hozzászólásom nincs ott!!!

 

Elnéztem egy változót, és működik a szkripnyik változata!

 

Köszönöm szépen!

 

Előbb ki kellett volna próbálnom! Bocsánat!

 

Szép estét!

 

Üdv: Sznido

Előzmény: Sznida (13788)
Sznida Creative Commons License 2011.01.09 0 0 13788

Szia szkripnyik,

 

Köszi, ismerem a for ciklust, ebből hiányzik az éppen aktuális HianyzoSzamlaSzam tömb eleme... azt akarom kiíratni.

A Te ciklusod végeredménye, ha o=13:

 

Ez(eke)t a számlaszámo(ka)t nem találtam az '1' nevű fájlban:

12

 

A hiányzó számla számok egy-egy cellából vannak feltöltve, egy szmlaszám így néz ki pl.:00000012, nemcsak az utolsó számot akarom kiíratni, hanem az összes hiányzó számlaszámot!

Sajnos ezzel nem fog menni!

 

Üdv: Sznido

Előzmény: szkripnyik (13787)
szkripnyik Creative Commons License 2011.01.09 0 0 13787

Nem erre találták ki a For ciklust?

 

If o > 1 Then

    Szoveg1 = "Ez(eke)t a számlaszámo(ka)t nem találtam az '1' nevű fájlban:"

     for i = 1 to o - 1

        Szoveg1 = szoveg1 & chr(13) & i

     next i

     msgbox Szoveg1

End if

Előzmény: Sznida (13786)
Sznida Creative Commons License 2011.01.09 0 0 13786

Sziasztok,

 

Van egy kérdésem:

 

Van egy HianyzoSzamlaSzam(1 to 21) tömböm. Ezeket ki akarom íratni egy msgbox-ba.

Egyszerűbb ha bemásolok pár sort:

 

    Szoveg1 = "Ezt a számlaszámot nem találtam az '1' nevű fájlban:"
    Szoveg2 = "Ezeket a számlaszámokat nem találtam az '1' nevű fájlban:"
    Select Case o
    Case 1
         Mentes = True
    Case 2
        Szoveg3 = Szoveg1 & " & Chr(13) & HianyzoSzamlaSzam(o)"
        MsgBox (Szoveg3)
    Case 3
        Szoveg3 = Szoveg2 & Chr(13) & HianyzoSzamlaSzam(o - 1) & Chr(13) & HianyzoSzamlaSzam(o)
        MsgBox (Szoveg3)
    Case 4
        Szoveg3 = Szoveg2 & Chr(13) & HianyzoSzamlaSzam(o - 2) & Chr(13) & HianyzoSzamlaSzam(o - 1) & Chr(13) & HianyzoSzamlaSzam(o)
        MsgBox (Szoveg3)
    Case 5
        Szoveg3 = Szoveg2 & Chr(13) & HianyzoSzamlaSzam(o - 3) & Chr(13) & HianyzoSzamlaSzam(o - 2) & Chr(13) & HianyzoSzamlaSzam(o - 1) & Chr(13) & HianyzoSzamlaSzam(o)
        MsgBox (Szoveg3)

    .

    .

    .

     Case 21
        Szoveg3 = Szoveg2 & Chr(13) & HianyzoSzamlaSzam(o - 19) & Chr(13) & HianyzoSzamlaSzam(o - 18) & Chr(13) & HianyzoSzamlaSzam(o - 17) & Chr(13) & HianyzoSzamlaSzam(o - 16) & Chr(13) & HianyzoSzamlaSzam(o - 15) & Chr(13) & HianyzoSzamlaSzam(o - 14) & Chr(13) & HianyzoSzamlaSzam(o - 13) & Chr(13) & HianyzoSzamlaSzam(o - 12) & Chr(13) & HianyzoSzamlaSzam(o - 11) & Chr(13) & HianyzoSzamlaSzam(o - 10) & Chr(13) & HianyzoSzamlaSzam(o - 9) & Chr(13) & HianyzoSzamlaSzam(o - 8) & Chr(13) & HianyzoSzamlaSzam(o - 7) & Chr(13) & HianyzoSzamlaSzam(o - 6) & Chr(13) & HianyzoSzamlaSzam(o - 5) & Chr(13) & HianyzoSzamlaSzam(o - 4) & Chr(13) & HianyzoSzamlaSzam(o - 3) & Chr(13) & HianyzoSzamlaSzam(o - 2) & Chr(13) & HianyzoSzamlaSzam(o - 1) & Chr(13) & HianyzoSzamlaSzam(o)
        MsgBox (Szoveg3)

 

és ezek a sorok ismétlődnek, bővülnek egészen case 21-ig.

A kérdés, ezt hogyan lehet egyszerűbben, mondjuk egy ciklusban feltölteni.

 

Remélem érthető a kérdés. :)

 

Köszönettel: Sznido

Lesleee Creative Commons License 2011.01.09 0 0 13785

Kedves Sztai!

 

Köszönöm a segítségedet. Több vonalat kellett felvennem, de azok már sikerültek. Nektek is megmutatom, mert maga a téma érdekes :-)

 

Adott sebességgel haladva a vízszintes rész a reakcióidő alatt megtett távolság (amíg a jármű sebessége nem változik), az ez utáni rész lesz a fékút.

 

Nagyon jól szemlélteti ez pl.,  hogy ha 50 km/h sebességgel halad valaki és 30 méternél elé lép egy gyalogos, pont meg tud állni. Azonban 80 km/H sebességgel már az ugyanúgy 30 méternél 60 km/h (!) sebességgel üti el a személyt.

 

 

Neked is köszönöm Delila az ötletelést

 

Üdv:

 

Leslee

 

Előzmény: Sztai (13783)
tt65 Creative Commons License 2011.01.09 0 0 13784

OFF Ezeknek nagyon szabályozástechnika ize van, brrr , szörnyű egy tudomány!

Előzmény: Sztai (13783)
Sztai Creative Commons License 2011.01.09 0 0 13783

Készíts egy ilyen tartományt:

x   y

0  20

5  20

8   0

Jelöld ki, és szúrj be egy pont (xy) diagrammot (biztosan megtalálod a beszúrás fülön, a diagramm csoportban)

üdv

 

Előzmény: Lesleee (13781)
Delila_1 Creative Commons License 2011.01.09 0 0 13782

 

Ezek közül valamelyikre gondoltál?

Előzmény: Lesleee (13779)
Lesleee Creative Commons License 2011.01.09 0 0 13781

Pontosan :-) :-)

Előzmény: Sztai (13780)
Sztai Creative Commons License 2011.01.09 0 0 13780

Ilyenre gondolsz?

Előzmény: Lesleee (13779)
Lesleee Creative Commons License 2011.01.09 0 0 13779

Sziasztok!

 

Diagramot szeretnék készíteni, de nem adja azt a képet, amit én szeretnék.

 

Azt szeretném jelölni, hogy a függőleges tengelyen egy 20-as érték a vizszintes 5 értékig egyenesen marad (tartja a 20-at), majd innen lemegy a vízszintes tengelyig. Ez a "lemegy" kezdődik az előző 5-nél és befejeződik a vízszintes 8-nál.

 

Nme tudom mennyire érthető :-)?

tt65 Creative Commons License 2011.01.09 0 0 13778

A meredekség akkor 0, ha tetszőleges x értéknél, ugyanakkora y érték járul, magyarul a pontok egy az x tengellyel párhuzamos egyenesbe esnek.  y= b alakú fv. 

Ennek párja a függőlegesbe eső pontok, aminek x= const az alakja. De ez nyilván nem igazán fordul elő a gyakorlatban ...

Előzmény: Sztai (13773)
erdeiboroka Creative Commons License 2011.01.08 0 0 13777

Igen, én is arra jutottam, hogy a bemeneti adatokat kell vizsgálnom.

Sajnos közben rájöttem, hogy mégsem értem azt a képletet, de már felvettem a kapcsolatot egy barátnőmmel, aki statisztikát tanít :-)

 

Az Excelnek meg toll a fülébe, amiért nem tud egy hibakódot adni valahol.

De az Excel nálam már amúgy is elásta magát, amikor a 2003-asban írt macroim nem futottak 2007-es alatt.

 

Köszönöm mindenkinek, aki segített gondolkodni :-)

Előzmény: Sztai (13773)
johannes. Creative Commons License 2011.01.07 0 0 13776

Köszönöm!

 

sikerült.

Előzmény: erdeiboroka (13775)
erdeiboroka Creative Commons License 2011.01.07 0 0 13775

Kijelölöd a táblázatot. (Előtte mentsd el.)

Adatok / rendezés. Itt megadod azt az oszlopot, am szerint abc sorrendbe kell tenni.

 

Előzmény: johannes. (13774)
johannes. Creative Commons License 2011.01.07 0 0 13774

Sziasztok!

 

Segítséget szeretnék kérni tőletek.

Excel táblázatban,hogyan lehet a táblazatokat (a benne lévő címeket) ABC sorrendbe helyezni.Remélem nem kell újra írnom az egészet mert ABC sorrendbe kellene tennem utólag.

 

Köszönöm!

Sztai Creative Commons License 2011.01.07 0 0 13773

A meredekségre akkor kapsz 0 értéket, ha vagy x vagy y összes értéke változatlan. Ebben a két esetben viszont nincs értelme trendről beszélni. Ha a két m=0 érték között szertnél különbséget tenni, szerintem vizsgáld a bemeneti adatokat. Persze ez csak egy ötlet.

Előzmény: erdeiboroka (13770)
Sztai Creative Commons License 2011.01.07 0 0 13772

Az =INDEX(LINEST(adatok),1) tényleg megadja a meredekséget, ha pedig 2-est írsz akkor az y metszését (b), csak azt nem értem miért kell bonyolítani, hiszen ha csak a meredekségre vagy kivácsi, akkor a SLOPE is jó, ha pedig csak a b-t akarod kiszámolni arra ott az INTERCEPT :-)

Előzmény: SQLkerdes (13768)
erdeiboroka Creative Commons License 2011.01.07 0 0 13771

A főrum a hozzászólásból kihagyta a képletet. Megtekinthető a helpben a LIN.ILL leírásánál. Úgy kezdődik, hogy m= és utána teli van szummákkal.

Előzmény: erdeiboroka (13770)
erdeiboroka Creative Commons License 2011.01.07 0 0 13770

Megcsináltam arra a három pontra a trendvonalat, és az Excel nem ábrázolt semmit. (Szerintem mert speciális eset és leakad)

De ha a (3,1), (2,4), (1,5) pontokat ábrázolom, akkor a trendvonal jól  látszik, és a lényege is talán érthető.

Ez nem felsőbb matematika. Egyenes egyenletről van szó.

Meg arról, hogy az Excel hogyan kezeli a nullával osztást.

Nem akarom lekódolni a

 

 

képletet!!!!!! (help : LIN.ILL függvény) Szerintem akkor van gond, ha a nevezőben nulla van.

 

Biztos, hogy amikor az Excel a nullával osztást észreveszi, nem rak le valahol egy rejtett hibakódot?

Ez volt az eredeti kérdésem.

Mert létezik egy On Error GoTo parancs, de az itt nem működik.

Valami hasonlót keresek.

Előzmény: SQLkerdes (13764)
Sztai Creative Commons License 2011.01.07 0 0 13769

Ha mindkét érték (x;y) mért adat és az egyiket állandónak mérik, míg a másik változik az arra is utalhat, hogy van egy harmadik paraméter (z) ami befolyásolja y értékét.

pl. mérem a hőmérsékletet és a nyomást és mindig azt kapom, hogy a hőm. nem változik de a nyomás igen. Ez még nem jelenti azt, hogy a hőm. nincs hatással a nyomásra, csupán arra utal, hogy van még egy másik tul. ebben az esetben a térfogat ami közben változik.

Előzmény: erdeiboroka (13761)
SQLkerdes Creative Commons License 2011.01.07 0 0 13768

Igen, ez igaz.

Viszont a trend alapján számolja a forecast értékeket, és így ha a TREND által előállított két "pont" koordinátáira alkalmazzuk azt az egyszerű képletet amit lentebb angolul bemásoltam, akkor megkapjuk a trend meredekségét.

 

Másik megoldás az =INDEX(LINEST(adatok),1) alkalmazása, mert a LINEST egy tömböt ad eredményül, aminek az első eleme a trendvonal slope-ja, vagyis meredeksége.

Előzmény: Sztai (13767)
Sztai Creative Commons License 2011.01.07 0 0 13767

A TREND arra jó, ha jól tudom, hogy ismert x és y értékek esetén megadja az új x értékekhez tartozó y értékeket, tehát forcast.

Előzmény: Törölt nick (13763)
SQLkerdes Creative Commons License 2011.01.07 0 0 13766

Igazából ha a trendvonal függőleges akkor az azt jelenti, hogy az y érték semmilyen módon nem függ az x értékektől, vagyis színek (RGB) esetében nincs semmilyen  összefüggés az RGB kódok között.  Ezért a nulla eredmény.

Előzmény: erdeiboroka (13761)
SQLkerdes Creative Commons License 2011.01.07 0 0 13765

Itt is van az általános iskolai matek, vonal meredeksége:

 

Excel help:

 

The equation of a straight line is y = mx + b.
You can describe any straight line with the slope and the y-intercept:

Slope (m):
To find the slope of a line, often written as m, take two points on the line, (x1,y1) and (x2,y2); the slope is equal to (y2 - y1)/(x2 - x1).

 

Y-intercept (b):
The y-intercept of a line, often written as b, is the value of y at the point where the line crosses the y-axis.

 Once you know the values of m and b, you can calculate any point on the line by plugging the y- or x-value into that equation. You can also use the TREND function.

 

 

SQLkerdes Creative Commons License 2011.01.07 0 0 13764

Asszem itt a megoldás:  "Az (1,1), (1,2), (1,5) pontok trendvonala is függőleges."

 

Az a vonal szerintem nem trendvonal (excelben csinálj a fenti három pontból egy x-y scatter-chart-ot és rakasd rá a trendvonalat!).  Most már csak azt kellen előásnom kitudjahányévtávlatából, hogy akkor mi :-)

 

Arra gyanakszom, hogy valami általános iskolai szintű dologról beszélünk és majd mind a lábfejünket bámuljuk vöröslő arccal, amikor rájövünk a megoldásra...

Előzmény: erdeiboroka (13759)
Törölt nick Creative Commons License 2011.01.07 0 0 13763

a TREND() függvényt ismered?

Előzmény: erdeiboroka (13761)
SQLkerdes Creative Commons License 2011.01.07 0 0 13762

Mindkettőtöknek igazatok van, ami úgy lehetséges, hogy nem ugyanarról beszéltek.

 

Erdeibóróka három pont legjobban közelítő egyeneséről beszél, Sztai meg két három számból álló vektor közötti korrelációról (1, 1, 1) és (1, 2, 5).

Sztainak igaza van, mert ha az első vektor ugyanazt a számot tartalmazza háromszor akkor nagy a valószínűsége, hogy nem korrelál a három különböző számból álló második vektorral.

 

Borókának is igaza van, mert a vektorok n-edik számpárjait ha koordinátának fogom fel (1,1) (1,2) és (1,5) akkor az így kapott három koordináta valóban egy függőleges vonalra "esik".

 

Szerintem a LINEST függvény a Sztai féle megközelítést alkalmazza, ezért ad az azt máshogy értelmező Borókának értelmezhetetlen (0) eredményt.  A kapott nulla eredmény pontosan azt mutatja amit Sztai mond, vagyis hogy a két vektor között egyáltalán nincs korreláció.

 

A kérdés mostmár csak az, hogy hogyan állítsuk elő azt a számot amit Boróka szeretne látni :-)

erdeiboroka Creative Commons License 2011.01.07 0 0 13761

Nem így merül fel.

Mérnek kétdimenziós adatokat. Mindkét eredmény mért érték.  Ezeket ábrázolják egy síkon. Nem lehet tudni milyen értékeket fognak mérni,de ezek lehetnek egy vonalban. Vagy lehetnek olyan eloszlásban, hogy a trendvonaluk függőleges. A programnak bármilyen mérési eredményeknél korrektül kell működnie. Kellene.

 

(Tulajdonképpen színeket mérnek és rgb, azaz red, green, blue értékeket kapunk, de ezeket hála istennek levetítik egy síkra, és így csak kétdimenziós a probléma) Tartok tőle, hogy minél többet magyarázok, annál érthetetlenebb vagyok.

Előzmény: Sztai (13760)
Sztai Creative Commons License 2011.01.07 0 0 13760

Igaz. Azonban ha arra vagyok kiváncsi, hogy két érték között (x;y) van e összefüggés, akkor nem állandó x értéknél mérem y-t. Legalább is józan paraszti ésszel így látom, az elméleti matematika pedig egy külön állatfaj :-)

Üdv

Előzmény: erdeiboroka (13759)
erdeiboroka Creative Commons License 2011.01.07 0 0 13759

Nem ez a lényeg. Bármilyen értékek lehetnek a mért adatok. Csak azért adtam mintának egyszerű pontokat, hogy érthetőbb legyen.

Az (1,1), (1,2), (1,5) pontok trendvonala is függőleges.

És az Excel erre is m= 0-t fog adni.

Előzmény: Sztai (13758)
Sztai Creative Commons License 2011.01.07 0 0 13758

Úgy gondolom, hogy akár x akár y értékét mindenhol nullára állítani értelmetlen, mert az azt jelenti, hogy a két érték között nincs összefüggés tehát nem is érdemes keresni.

Előzmény: erdeiboroka (13756)
erdeiboroka Creative Commons License 2011.01.07 0 0 13757

Köszi, az angolom gyenge, de a lényeget értettem, tényleg erről van szó, de nem taglalják a speciális eseteket :-(

Az a megoldás, hogy m=0 esetén feldobok egy hibaüzenetet "Dögölj meg!" szöveggel :-)

Na jó, csak vicc volt.

Előzmény: SQLkerdes (13755)
erdeiboroka Creative Commons License 2011.01.07 0 0 13756

Ige, jogos, fordítva vannak az argumentumok.

A probléma az, ha megadom a (x,y) szerint (0,1), (0,2), (0,3) pontokat, amik egy függőleges egyenesen vannak, a legjobb trendvonal az y tengely lesz, tehát m = végtelent kellene kapnom. De nullát kapok.

Ugyanúgy, mint a (1,0), (2,0) (3,0) pontokra, ahol a trendvonal az x egyenes, és a meredeksége valóban nulla.

Előzmény: Sztai (13753)
SQLkerdes Creative Commons License 2011.01.07 0 0 13755

Nézd meg ezt a videót, hátha segít.

Pont erről szól, de egy kicsit angolul van katt ide

Előzmény: erdeiboroka (13754)
erdeiboroka Creative Commons License 2011.01.07 0 0 13754

Vannak pontok a síkon, akármilyenek, tipikusan felhőszerű elrendezésben.

És azt az egyenest keresem, aminek az egyenlete y= m*x +b és a legközelebb van az összes ponthoz. (trendvonal)

Előzmény: Sztai (13751)
Sztai Creative Commons License 2011.01.07 0 0 13753

Ha igen, akkor jó a LINEST (LIN.ILL) fv, csak Te sztem rossz sorrendben adtad meg az argumentumokat:

m = Application.index(Application.LinEst(Xtomb, YBtomb), 1)

 A LINEST fv-ben előbb van az y tömb és utána az x

Tehát jelölj ki két cellát és ezt írd be: =LINEST(Ytömb;Xtömb) majd shift+enter, mert ez tömbfv tehát ezt kapod: {=LINEST(A2:A5;B2:B5)}

De lehet, hogy nem értettem meg a problémát.

Üdv

 

Előzmény: erdeiboroka (13736)
coniglio01 Creative Commons License 2011.01.07 0 0 13752

Nagyon köszönöm a megoldásokat. :))))

 

Még két kétrésem lenne. Az egyik, amit korábban már írtam, hogy tudom levédeni a munkalapot úgy, hogy a dinamikus lista működjön. Egyrészt szeretném lekorlátozni max 40 kiadványra, azaz hogy max. csak ennyit vihessenek be, másrészt meg nem szeretném, ha a formátumon, a képleteket, sorokon és oszlopokon változtatni tudna a felhasználó, hanem csak azt, hogy adatot töltsön be. Bármilyen védelmet állítok be a munkalapra vagy a file-ra, onnantól kezdve nem megy lejjebb a dinamikus lita, ha ujabbat próbálok hozzáadni.

 

A másik meg az - ami az elsőhöz azért valamilyen formában kapcsolódik is -, hogy tudom a felhasználó arra ösztökélni, hogy minden esetben a következő sorba írjon. Tehát, ha a kiadványokból már benn van kettő, akkor a harmadik sorba írjon. Ugyanis, ha nem így tesz, és a negyedikbe ír, akkor is megakad a dinamikus lista... (még nincs levédve, úgyis...)

 

 

Előzmény: Sztai (13749)
Sztai Creative Commons License 2011.01.07 0 0 13751

Jól értem a problémát?

Van két tömb pl.

x és y

0     1

4     9

2     5

3     7

y értéke függ x változótól és még két értéktől m és b, az egyenlet pedig y=m*x+b

és Te az m és b értékét szeretnéd meghatározni?

    

 

 

 

 

 

 

 

 

 

 

Előzmény: erdeiboroka (13736)
erdeiboroka Creative Commons License 2011.01.07 0 0 13750

Nemigen tudom csatolni. Ez egy icipici része egy jónagy (többezer sor) macronak.

Csak letisztítva ez a probléma lényege.

Közben lett egy ötletem, az Excel valami négyzetösszeges képlettel számolja a lineáris illesztést, azt kellene kiszámolnom nekem is. Rögtön látnám hol van nullával osztás. (Elméletem szerint a számoláskor valahol nullával osztásnak kell lennie, mire az Excel nem hibát ad, hanem nulla eredményt.)

Amúgy mérési adatokról van szó, akármi lehet. Valós számok.

Aztán akármit mérünk, azzal kell tudnom számolni, és kell tudnom ábrázolni.

Előzmény: Sznida (13744)
Sztai Creative Commons License 2011.01.07 0 0 13749

Szerintem ez nem megfelelő, mert az adatérvényesítésnél üres sorok is vannak és a kérdező pont ezt szerette volna elkerülni. Másodszor abba az oszlopba már alá nem lehet írni semmit, mert az is megjelenik a legördülő listában. Egyébként az Ofset nél is ez gondot jelent, mert egy lejjebb található adat módosítja a tartományt.

Én mindenkinek melegen ajánlom a listává ill. 2007-ben táblává történő konvertálást.

Üdv

 

Előzmény: Delila_1 (13746)
coniglio01 Creative Commons License 2011.01.07 0 0 13748

Szuper!!! Nagyon-nagyon köszönöm :)

 

Mennyit agyaltam rajta... Megkérdeztem a Microsoftot is.. Valószínűleg nem olvasták el rendesen, mertz "üres mezők mellőzése"-t javasolták kipipálásra...

 

Lehet még egy kérdésem? Le tudom védeni a munkalapot azért? Próbáltam az adott cellákat levédeni, úgyhogy engedélyeztem a nem védett cellákba a klikkelést, és úgy is, hogy új sorok létrehozását is engedélyeztem, de nem megy...

 

A cél az lenne, hogy max 40-et vihessenek be, és a formátumon, az érvényesítéseken (pl, hogy csak x hosszúságú szöveg, vagy csak 1 és 50 közötti szám legyen bevihető) ne tudjanak változtatni!

Előzmény: Sztai (13742)
Sztai Creative Commons License 2011.01.07 0 0 13747

Az OFSET fv is tökéletes (régen így tudtunk din. listát készíteni), de aki nem ismeri, annak nehéz az argumentumokat megadni a név managerben, hiszen fejből kell tudni. Ezt könnyíti meg a listának (2003), ill. a táblázatnak (2007-10) a használata.

Üdv

 

Előzmény: Delila_1 (13745)
Delila_1 Creative Commons License 2011.01.07 0 0 13746

Még egyszerűbb dinamikus lista:

 

Címsor nélkül beviszem az adatokat, a teljes oszlopot kijelölöm, és úgy adok nevet, akár a szerkesztőléc bal oldalán lénő Név mezőben.

 

Az érvényesítésnél mindig a teljes lista látszik, kevés adatnál plusz 3-4 üres sorral.

Előzmény: Sztai (13742)
Delila_1 Creative Commons License 2011.01.07 0 0 13745

A dinamikus listát (szerintem) egyszerűbben is létre lehet hozni.

A Munka1 A oszlopába bevittem az adatokat – címsor nélkül.

Adatok - Definiált nevek - Név megadása.

Név -> kiadványok, Hivatkozás -> =OFSZET(Munka1!A1;0;0;DARAB2(Munka1!A:A);1)

 

A beszúrandó helyre Adatok - Érvényesítés - Megengedve: Lista - Forrás: =kiadványok

 

Ha mégis akarsz címsort adni a Munka1!A1-be, a Hivatkozás képlete:

=OFSZET(Munka1!A1;0;0;DARAB2(Munka1!A:A)-1;1)

 

Úgy vettem észre, hogy a 2007-es verziónak van egy (?) betegsége. Miután bevittem az ofszetes függvényt a megadott névhez, önkényesen megváltoztatja a képletet. Ezt a Képletek - Definiált nevek - Névkezelőjében korrigálom, ezután már megmarad.

Előzmény: Sztai (13742)
Sznida Creative Commons License 2011.01.07 0 0 13744

Sikerült reprodukálnom, gondolkodom..... gondol...... :)

Előzmény: Sznida (13743)
Sznida Creative Commons License 2011.01.07 0 0 13743

Szia,

 

Milyen értékeid vannak abban a tömbben?

Tudsz csatolni egy képet erről a munkafüzetről?

Értem a kérdést, de nem sikerült még reprodukálnom.

 

Köszi!

Előzmény: erdeiboroka (13736)
Sztai Creative Commons License 2011.01.07 0 0 13742

1. Azon a mlapon ahol a kiadványok vannak és már elnevezted a tartományt (b1:B40) kiadványoknak de még nem írtál be könyveket, hozz létre egy táblát: jelöld ki a b1:b2 tartományt:

insert tab/tables csoport/table, jelöld be, hogy van fejléc és ok

Automatikusan kapsz egy formázott táblát, a jobb alsó sarkában egy kis háromszög jelzi, hogy addig tart. Ha most b2-be majd b3 ba beírsz valamit a tartományod  nő (a háromszög most már b3-ban van. Ha formátum nem kell, eltávolíthatod ill módosíthatod a Table tools - Design tab/Table Styles csoportban válassz mást.

2. módosítsd a már meglévő nevet pl. kiadványok: Formulas tab/Defined names/Name Manager. A névhez tartozó tartományt módosítsd kijelöléssel ($b$2:$b$3) ok.

Ettől kezdve a kiadványok tartomány dinamikus lesz.

3. A másik munkalapon, ahol rendezvények vannak, jelöld ki azt a tartományt, amelyikre az adatérvényesítést állítod be és a lista forrásaként a tartomány nevét add meg (F3-at nyomva megkapod a létező nevek listáját és onnan is beszúrhatod) List Data Source:=kiadványok

Ettől kezdeve a legördülő lista panelod mindíg azokat a könyveket ajánlja föl amelyek a névhez tartozó dinakus listában szerepelnek. Próbáld ki, írj be a kiadványok munkalapon a b4-be valamit-->enter és ellenőrizd a rendezvények munkalapon a legördülő listádat.

Ha nem működik, ellenőrizd a Name Manager-ben, hogy a Kiadványok tartomány ugyan az e mint a TableX (pl. Table1) Ha nem akkor a névhez tartozó tartományt módosítsd ugyan arra mint a TableX

4. A kiadványok mlapon kitörölheted a próbaként megadott három címet:

jelöld ki a b2:b4 tartományt-->jobb klikk és Delete-->Table rows

Ha mindent jól csináltál: a Name Managerben lesz TableX és Kiadványok és mindkettőnek a tartománya ua: $b$2:$b$2. Ez a lényeg és hogy az adatérvényesítésnél erre a névre hivatkozz.

 

 

Remélem sikerült világosan leírni

Üdv

 

Előzmény: coniglio01 (13741)
coniglio01 Creative Commons License 2011.01.07 0 0 13741

Jaj, nagyon köszönöm :)

2007-est.

Előzmény: Sztai (13740)
Sztai Creative Commons License 2011.01.07 0 0 13740

Leírom lépésenként a megoldást de előtte mond meg lszives, hogy milyen excel verziót használsz.

Üdv

Előzmény: coniglio01 (13739)
coniglio01 Creative Commons License 2011.01.07 0 0 13739

Nagyon köszönöm a segítséget!

 

Az a baj viszont, hogy mivel ez űrlapként funkcionál, amit kiküldünk egy-két helyre, a 40 üres mező már adva van az az elején. Ezt a 40-et neveztem el "kiadvanyok"-nak (mondjuk B1:B40). Viszont, amikor eljut a felhasználóhoz, vagy bevisz 40-et, vagy csak 10-et. A többi üresen marad. Hogy mennyit, azt előre nem tudom. (Azaz csak B1:B10-ig lesz benne kiadvány, B11:B40-ig semmi.) De mivel a legördülő lista a "kiadvenyok"-ra(B1:B40) vonatkozik, ezért kijön a listában egy rahedli üres sor :(((

 

Ezért tűmik számomra megoldhatatlannak a dolog...

 

 

Előzmény: Sztai (13738)
Sztai Creative Commons License 2011.01.07 0 0 13738

2003-as verzióban:

A beírt könyvcímeket jelöld ki és rendelj hozzá nevet, majd alakítsd át listává úgy, hogy a fejléc is legyen kijelölve. Ha ezek után az adatérvényesítésnél a listát választod és forrásként a lista nevét adod meg az csak a listában meglévőket fogja mutatni. Ha a lista bővül, akkor a legördülőben is megjelennek az újab címek.

2007-ben annyi a különbség, hogy a listát táblázatnak nevezi Create List helyett format vagy insert table.

Üdv

Előzmény: coniglio01 (13737)
coniglio01 Creative Commons License 2011.01.07 0 0 13737

Sziasztok!!!

 

Erre nem tudtok egy logikai függvényt?

 

Adott egy táblázat 2 munkalappal. Az egyikben a felhasználónak lehetősége van 40 egymás alatti mezőbe 40 könyvcímet (vagy akár kevesebbet, ha nem tölti ki az összes mezőt) bevinni.
A másik munkalapba bevezetheti a rendezvényeit, és azokhoz legördülő menüvel hozzárendelheti a kiadványok címeit (1 rendezvényhez 1 kiadványt).
A kérdésem az, hogy hogyan tudnám megoldani, hogy az Adatok/Érvényesítés paranccsal létrehozott legördülő menüben a 40 mezőből csak azok jelenjenek meg, amelyek nem üresek. (A felhasználó ugyanis ha bevisz 15 kiadványt a 40 helyett, akkor 25 üres sor jelenik meg a listában a 15 kiadvány mellett.)

 

Van egy olyan opció az adatok/érvényesítés /beállítások fül alatt, hogy "Egyéni" ide elvileg logikai függvényt be lehet írni a legödülő lista tartalmának megállapításához. Erre nem tudtok esetleg valamit?

 

Ha tudtok, segítsetek légyszi, mert megakadtam ennél... :(

 

Előre is nagyon köszönöm Nektek!

erdeiboroka Creative Commons License 2011.01.07 0 0 13736

Az a megoldás a profibb :-)

 

Az én kérdésem:

x,y adatokkal vannak megadva pontok egy x,y síkon, az Xtomb, Ytombben találhatóak.

Keresem az ezekre a pontokra illesztett trendvonal meredekségét.

Az egyenes egyenlete y=mx+b, ahol m a meredekség.

 

m = Application.index(Application.LinEst(Xtomb, YBtomb), 1)

 

Ha cellákban számolok, egy ilyen képlettel próbálkoztam 3 mintaadaton:

=INDEX(LIN.ILL(S[-4]O[-1]:S[-2]O[-1];S[-4]O:S[-2]O);1)

 

Az a problémám, hogy az Excel mind a két módszerrel nullát ad a függőleges egyenes meredekségére, ami ugye végtelen lenne egyébként.

Ez jó, mert nem száll el a program ilyen estetben, viszont nem tudom megkülönböztetni attól, amikor az m tényleg nulla és az egyenes vizszintes.

Ez pedig fontos lenne, márcsak a diagramon ábrázolás kedvéért is.

 

Kérdés:

Van valami ötlet, hogyan tudnám a két esetet megkülönböztetni?

Van valami belső hibakód, vagy valami error változó ami igazba áll, ha m= végtelen lenne?

Nem biztos, hogy elég érthető voltam :-(

 

Előzmény: Sznida (13735)
Sznida Creative Commons License 2011.01.07 0 0 13735

Szia Erdeiboroka,

 

Köszönöm szépen a fáradozásaid, szép megoldásaid voltak, tetszik a logikád!

Bár a Jimmy the Hand megoldása rövidebb, és talán rugalmasabb, de ügyesen megoldottad Te is a feladatot! :)

 

Köszi még egyszer!

 

Szép napot!

 

Üdv: Sznido

Előzmény: erdeiboroka (13731)
Sznida Creative Commons License 2011.01.07 0 0 13734

Szia Jimmy the Hand,

 

Csak ámulok bámulok! Tökéletes megoldás, nagyon tetszik! Megtartom :)

 

Nagyon szépen köszönöm!!!!!

Ismét sikerült megtanulnom valamit. :)

 

Szép napot!

 

Üdv: Sznido

Előzmény: Jimmy the Hand (13733)
Jimmy the Hand Creative Commons License 2011.01.07 0 0 13733

Sőt, ez még jobb:

 

Function Rendezett_tomb(bemeneti_tomb)
    Dim Result, i As Integer
    
    ReDim Result(LBound(bemeneti_tomb) To UBound(bemeneti_tomb))
    For i = LBound(bemeneti_tomb) To UBound(bemeneti_tomb)
        Result(i) = Application.WorksheetFunction.Small(bemeneti_tomb, i)
    Next
    Rendezett_tomb = Result
End Function

Előzmény: Jimmy the Hand (13732)
Jimmy the Hand Creative Commons License 2011.01.07 0 0 13732

Próbáld ki ezt is:

 

Function Rendezett_tomb(bemeneti_tomb)
    Dim Result(1 To 50) As Integer, i As Integer
    
    For i = 1 To 50
        Result(i) = Application.WorksheetFunction.Small(bemeneti_tomb, i)
    Next
    Rendezett_tomb = Result
End Function

 

 

Előzmény: Sznida (13707)
erdeiboroka Creative Commons License 2011.01.07 0 0 13731

Na, azért csak összeszedtem magam és írtam egy olyan algoritmust, ami már tetszik is :-)))

Ez sokkal egyszerűbb és rövidebb is.

 

Sub TombRendezesCsereBerevel()

Dim tomb(1 To 50) As Integer
Dim adat As Integer
'beolvassuk az adatokat az elso oszlop első 50 sorából
    For i = 1 To 50
        tomb(i) = Cells(i, 1)
    Next i
' 49-szer csereberélünk
    For j = 1 To 49
' végignézzük a tömböt, ha van szomszédos elem rossz sorrendben, megcseréljük
        For i = 1 To 49
            If (tomb(i) > tomb(i + 1)) Then
                adat = tomb(i)
                tomb(i) = tomb(i + 1)
                tomb(i + 1) = adat
            End If
        Next i
    Next j
' a rendezett adatokat visszaírjuk a 3. oszlopba
        For i = 1 To 50
            Cells(i, 3) = tomb(i)
        Next i
End Sub

Előzmény: Sznida (13730)
Sznida Creative Commons License 2011.01.06 0 0 13730

Gyönyörű megoldás! Örülök, hogy sikerült megoldanod!

 

Köszönöm szépen! :)

 

Üdv: Tom!

Előzmény: erdeiboroka (13729)
erdeiboroka Creative Commons License 2011.01.06 0 0 13729

Írtam egy még bonyolultabb megoldást.

Kicsit szépséghibás, de nekem működött :-)

 

Sub TombRendezes()

Dim tomb(1 To 50) As Integer
Dim rendezetttomb(1 To 50) As Integer
Dim kesz(1 To 50) As Boolean
Dim min As Integer
Dim ind As Integer
'beolvassuk az adatokat az elso oszlop első 50 sorából
    For i = 1 To 50
        tomb(i) = Cells(i, 1)
    Next i
' a kesz tomb osszes elemét hamisra állítjuk
    For i = 1 To 50
        kesz(i) = False
    Next i
' 50-szer megkeressük a legkisebb elemet
    For j = 1 To 50
'a min változó kezdeti értéke legyen nagyobb, mint bármelyik adat
    min = 10000
' megkeressük a legkisebb elemet a tömbben
        For i = 1 To 50
            If ((min > tomb(i)) And Not kesz(i)) Then
                min = tomb(i)
                ind = i
            End If
        Next i
'ezt elmentjük a rendezettombbe
        rendezetttomb(j) = min
'a kesz tombben ezen indexű elemet megjelöljük
        kesz(ind) = True
    Next j
' a rendezett adatokat visszaírjuk a 3. oszlopba
        For i = 1 To 50
            Cells(i, 3) = rendezetttomb(i)
        Next i
End Sub

Előzmény: Sznida (13700)
Sznida Creative Commons License 2011.01.06 0 0 13728

OK, de tudjuk, igaz én nem szeretem, mert egy időpontról van szó, ami a dátummal együt teljes.

Ettől függetlenül olyanra csinálom, ahogy szeretnéd! :)

 

Holnap e-mail-ben jelentkezem!

 

Üdv: Sznido

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

igen!

Köszi, jó éjt!

Amúgy a dátumot és az órát nem tudjuk külön oszlopba rakni?

De csak holnap:)

 

Péter

Előzmény: Sznida (13726)
Sznida Creative Commons License 2011.01.06 0 0 13726

A 0:30, az fél órának számít? A többi egyértelmű.

Holnap küldöm!

 

Üdv: Sznido

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

Igen!

Ezt én is el felejtettem:))

0:29-ig lefele,0:31-től felfele keekítünk

Amúgy pont olyan mint amit szerettem volna

Köszönöm!

Előzmény: Sznida (13724)
Sznida Creative Commons License 2011.01.06 0 0 13724

Elküldtem!

 

Ja, azt elfelejtettem, hogy sajnos csak egész órákat számol, azaz nem számolja a tört órákat! :( Ha gondolod, akkor lehet még fejleszteni, de azt már csak holnapra! :)

 

Szép estét!

 

Üdv: Sznido

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

Na erre mondtam,hogy tök sötét vagyok az excelhez. fogalmam sincs mit kezdjek ezzel amit írtál. ha elküldöd az excel file-t akkor tudom,hogy ezt akartam vagy nem.

persze ezzel nem követelni szeretnék csak másképp nem értem amit írsz:))

Előzmény: Sznida (13722)
Sznida Creative Commons License 2011.01.06 0 0 13722

Szóval, csatoltam egy képet, remélem látszik majd. Csak azért, hogy a hivatkozott celláim egyértelműek legyenek.

 

B2 és a C2-es cella formátuma "éééé.hh.nn ó:pp"

 

D2 cella képlete: =HA(NAP(B2)=NAP(C2);HA(ÓRA(B2)>=6;HA(ÓRA(B2)<22;HA(ÓRA(C2)>=22;22-ÓRA(B2);ÓRA(C2)-ÓRA(B2))));HA(NAP(C2)-NAP(B2)>1;16;0))+HA(NAP(B2)=NAP(C2);0;HA(ÓRA(C2)>6;HA(ÓRA(C2)<22;ÓRA(C2)-6;16);0)+(NAP(C2)-NAP(B2)-1)*16)

 

E2 cella képlete: =HA(ÓRA(B2)<6;HA(NAP(B2)=NAP(C2);HA(ÓRA(C2)>6;6-ÓRA(B2));6-ÓRA(B2));HA(ÓRA(B2)>=22;HA(NAP(C2)>NAP(B2);24-ÓRA(B2);ÓRA(C2)-ÓRA(B2));0))+HA(NAP(C2)>NAP(B2);HA(ÓRA(C2)<=6;ÓRA(C2);HA(ÓRA(C2)>22;24-ÓRA(C2)+6;6));0)+HA(NAP(C2)-NAP(B2)=0;0;(NAP(C2)-NAP(B2)-1)*8)

 

F2 cella képlete: =D2+E2

 

G2 cella képlete: =D2*750+E2*1000

 

Ezután ezt lemásolhatod a többi cellákba is.

 

Teszteltem, és nem találtam hibát benne, de ez nem jelenti azt, hogy tljesen tökéletes.

Teszteld, és javítom, ha van még benne hiba! :)

 

Üdv: Sznido

Előzmény: Sznida (13719)
coniglio01 Creative Commons License 2011.01.06 0 0 13721

Igen, először én is azt hittem, hogy az arra jó (logikus lenne), de kkiderült, hogy azt arra használják, hogy az adatbevitelnél a felhasználó, ha rákattint a mezőre, azt követően ne mehessen el onnan úgy, hogy nem töltötte ki a mezőt (persze egy del-lel még ezt is ki lehet játszani).

 

Talán ott lehet a kutya elásva, hogy az adatok/érvényesítés/beállítások fülnél a "lista" helyett az "egyéni" opciót kéne választani, ahova logikai függvény vezethető be. De én nem találtam egy megfelelő logikai függvényt sem erre... :(

Előzmény: Törölt nick (13718)
Törölt nick Creative Commons License 2011.01.06 0 0 13720

vagyok.

Küldd el az excel file-t nekem és akkor látom rendesen.

kigjuju@citromail.hu

 

Péter

 

Előzmény: Sznida (13719)
Sznida Creative Commons License 2011.01.06 0 0 13719

Vagy még?

 

Megpróbálom leírni... nem lesz egyszerű, kár, hogy nem lehet file-t csatolni... :(

Előzmény: Törölt nick (13717)
Törölt nick Creative Commons License 2011.01.06 0 0 13718

van ott olyan hogy "üres cellák mellőzése"

Előzmény: coniglio01 (13715)
Törölt nick Creative Commons License 2011.01.06 0 0 13717

Igazából az a gáz, hogy egy honlapot összerakok nagyon hamar pedig tele van forráskódokkal meg minden okossággal de ez az excel, hááááát nem mondom....

Előzmény: Sznida (13714)
Törölt nick Creative Commons License 2011.01.06 0 0 13716

Azé Én még itt vagyok ügyeletben:)))

Előzmény: Sznida (13714)
coniglio01 Creative Commons License 2011.01.06 0 0 13715

Sziasztok!

 

TUd valaki segíteni nekem excel legördülő menü esetén hogy szűrhetem ki az üres menüket?

 

 

Adott egy táblázat 2 munkalappal. Az egyikben a felhasználónak lehetősége van 40 egymás alatti mezőbe 40 könyvcímet (vagy akár kevesebbet, ha nem tölti ki az összes mezőt) bevinni.
A másik munkalapba bevezetheti a rendezvényeit, és azokhoz legördülő menüvel hozzárendelheti a kiadványok címeit (1 rendezvényhez 1 kiadványt).
A kérdésem az, hogy hogyan tudnám megoldani, hogy az Adatok/Érvényesítés paranccsal létrehozott legördülő menüben a 40 mezőből csak azok jelenjenek meg, amelyek nem üresek. (A felhasználó ugyanis ha bevisz 15 kiadványt a 40 helyett, akkor 25 üres sor jelenik meg a listában a 15 kiadvány mellett.)

Segítsetek nekem a megoldásban, ha tudtok, egyszerűen nem találok rá semmit...! :((((

Sznida Creative Commons License 2011.01.06 0 0 13714

Már olvad a hó, szerintem már nincs is rá szükséged! :) :)

Dolgozom rajta! Érdekes lesz, egy csomó ha függvény :)

 

Szívesen segítek!

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

Sőt!

 

Hóeltakarításról van szó, ilyenkor általában 30-40 órákat dolgoznak az emberek, ezért lenne jó különválasztani az éjjeli és nappali időt. Az órabér természetesen nem változik. nappali 750, éjjeli 1000.

Péter

 

Köszi, hogy foglalkozol velem!!):)

Előzmény: Sznida (13711)
Törölt nick Creative Commons License 2011.01.06 0 0 13712

-i

Előzmény: Sznida (13709)
Sznida Creative Commons License 2011.01.06 0 0 13711

Előfordulhatnak extrém körülmények?

pl. valaki este 20:00-másnap 12:00 dolgozik?

Nem a sok órán van a hangsúly, hanem azon, hogy éjszakai műszakból reggel 6-kor még nem végez, hanem dolgozik még egy kicsit.

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

Szia Szindo!

 

 

A nappali műszak reggel 06:00-tól este 22:00 ig tart az éjszaka pedig este 22:00-06:00 ig.

 

A délelőtti és délutáni órabér ugyanaz.

 

Péter

Előzmény: Sznida (13709)
Sznida Creative Commons License 2011.01.06 0 0 13709

Szia Péter,

 

Hánytól hányig gondolod nappalnak a napppalt, és hánytól hányig az éjszakát? Délutános műszak nincs?

 

üdv: Sznido

Előzmény: Törölt nick (13704)
Sznida Creative Commons License 2011.01.06 0 0 13708

Igazad van, először arra gondoltam, hogy a cella tulajdonságát veszem alapul, de az nem működik, ahopgy Te is írtad. Akkor marad a feltételes formázás függvényeinek VB-be való fordítása, azok feltételei alapján megszámolni, az járható út! :)

 

Üdv: Sznido

Előzmény: SQLkerdes (13703)
Sznida Creative Commons License 2011.01.06 0 0 13707

Szia SQLkerdes,

 

A tömb az egy VB tömb, amit így deklaráltam Dim tomb(1 to 50) As Integer, és egy for ciklusban töltöm fel adatokkal. Az adatokat cellákból veszi, de azt nem rendezhetem sorba, ezért megy sorba, és ahogy sikerül úgy tárolja.

 

Köszi

 

Üdv: Sznido

Előzmény: SQLkerdes (13701)
Törölt nick Creative Commons License 2011.01.06 0 0 13706

Na jahh! De azt már unom:))

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

összeadás, szorzás, kivonás :)

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

Sziasztok!

 

Egy kérdésem, illetve egy kérésem lenne hozzátok akik kenitek-vágjátok az excelt.

Szükségem lenne egy táblázatra ami kiszámolja az emberek munkaidejét nappali és éjszakai múszakban is, adott dátumtól dátumig. A nappali órabér 750ft az éjszakai 1000ft. Megpróbálok egy képet berakni, hogyan is képzeltem el. Jó lenne ha tudna valaki segíteni mert sík hüje vagyok az excel függvényekhez.

Előre is köszönöm,

Péter

SQLkerdes Creative Commons License 2011.01.06 0 0 13703

Én úgy tudtam, hogy ha egy cella háttérszínét a feltételes formázás adja, akkor azt VBA-ból nem lehet kiolvasni.

Milyen object-et használnál v. milyen megközelítést alkalmaznál?

Előzmény: Sznida (13699)
SQLkerdes Creative Commons License 2011.01.06 0 0 13702

Meg persze egy makrót is lehet rá írni, az helyben megcsinálja, de elnézve az eddigi hozzászólásaidat nem gondolom, hogy ebben segítségre lenne szükséged :-)

Előzmény: Sznida (13700)
SQLkerdes Creative Commons License 2011.01.06 0 0 13701

Tömb alatt azt érted, hogy több cella amelyek valamely módon határosak egymással, de nem 1 sor v. 1 oszlop a dimenziójuk?  Pld:  A1:C3 (9 cella)?

Nos, helyben nem nagyon lehet őket sorrendbe rakni.

 

De a LARGE (NAGY?) függvény használatával függvényileg sorrendbe tudod őket rakni egy másik helyen a fenti példánál maradva pld az A10:C13 tömbben.

 

Mondjuk fontos eldönteni, hogy egy 3x3 méretű tömbben hogyan legyenek elrendezve a számok (pld egyre csökkenő számokkal töltjük fel a sorokat v. az oszlopokat?)

Előzmény: Sznida (13700)
Sznida Creative Commons License 2011.01.06 0 0 13700

Sziasztok,

 

Nekem is van egy kérdésem.

Van egy tömb, amiben számok vannak, sajnos nincsenek sorban.

Hogyan lehet egyszerűen növekvő sorba rendezni őket?

Egy bonyolult módszer van, hogy egy-egy cellába beíratom őket, az excel-lel sorba rendezem, és utána a cellákból feltöltöm ismét a tömbbe, de ez szerintem macerás!

 

Tud valaki egy egyszerűbbet?

 

Köszönettel: Sznido

Sznida Creative Commons License 2011.01.06 0 0 13699

Szia FaniApu,

 

Robbantomester jó ötletet adott, de ha esetleg makróval szeretnéd, akkor arra is van megoldás! :)

 

Üdv: Sznido

Előzmény: FaniApu (13697)
Törölt nick Creative Commons License 2011.01.06 0 0 13698

Én erre inkább a DARABTELI függvényt használnám, mégpedig a feltételes formázásnál használt kritérummal. (Ha a feltételes formázás alatt tényleg AZT érted)

Előzmény: FaniApu (13697)
FaniApu Creative Commons License 2011.01.06 0 0 13697

Kedves Valaki!

Segítséget szeretnék kérni hogyan lehet megszámolni egy adott tartományban lévő olyan cellák barabszámát aminek a háttérszíne pl. narancsárga (vagyis feltételes formázással színezett)?

Üdv:Fani

Delila_1 Creative Commons License 2011.01.06 0 0 13696

Úgy van! Ezért jobb a Ctrl+c, Ctrl+v-s beírás ide. A "gyalogos" bemásolásnál ilyen hibák fordulhatnak elő. :(

 

Köszi a javítást!

Előzmény: SQLkerdes (13695)
SQLkerdes Creative Commons License 2011.01.05 0 0 13695

=SZORZATÖSSZEG(--(KÖZÉP(B2;SOR(B2:INDIREKT("A"&HOSSZ(B2)));1)="s"))

 

A boldolt B2 helyett gondolom A1-et akartál írni :-)

 

Előzmény: Delila10 (13694)
Delila10 Creative Commons License 2011.01.05 0 0 13694

Akkor itt a szorzatösszeges, ami összeszámlálja a B2-ben a s betűket:

 

=SZORZATÖSSZEG(--(KÖZÉP(B2;SOR(B2:INDIREKT("A"&HOSSZ(B2)));1)="s"))

Előzmény: SQLkerdes (13693)
SQLkerdes Creative Commons License 2011.01.05 0 0 13693

Mondjuk én a HA-t kihagynám és sima boolean-t csinálnék belőle, valahogy így:

=SUM(--(MID(A1,ROW(A1:INDIRECT("A"&LEN(D27)),1="W"))))

 

Lehet a zárójelek számát elcsűrtem, de az elv gondolom látszik.  

Előzmény: Jimmy the Hand (13682)
SQLkerdes Creative Commons License 2011.01.05 0 0 13692

Ez tévedés, Delila szokta szorzatösszeggel csinálni a dolgokat, én vagyos a SUM-os, de azt most lenyúltad :-)

Előzmény: Jimmy the Hand (13683)
Jimmy the Hand Creative Commons License 2011.01.05 0 0 13691

Nagyjából.

Karakterekre van szedve a szöveg (ciklusban) a KÖZÉP függvénnyel, és 1 értéket kapnak a "w" karakterek.

A SOR függvény azért kell, mert ezzel állítom elő a ciklusváltozót. Ha tudnék nála (mármint a SOR-nál) jobbat, nem keverném bele.

 

Előzmény: Törölt nick (13689)
Törölt nick Creative Commons License 2011.01.05 0 0 13690

Rosszul fogalmaztam. Cellából kapja, de nem "úgy", hanem a felhasználói függvény adott argementumában van az megadva.

Előzmény: Sznida (13688)
Törölt nick Creative Commons License 2011.01.05 0 0 13689

Értem már. Sorokra van szedve a szöveg és 1 értéket kapnak azok a sorok ahová a tömbképlet "w"-t tesz. A szum meg ezeket adja össze. Fifikás.

Előzmény: Törölt nick (13685)
Sznida Creative Commons License 2011.01.05 0 0 13688

Én is úgy gondoltam, hogy cellákból adod be az értéket! :)

 

Örülök, hogy működik! :)

 

Igazán nincs mit!

 

Szép napot!

 

Üdv: Sznido

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

Ja, köszönöm a fáradozást!

Előzmény: Sznida (13684)
Törölt nick Creative Commons License 2011.01.05 0 0 13686

Erre közben már készítettem egy felhasználói fgv-t. Majdnem ugyanez, csak persze inputbox helyett cellából kapja.

Előzmény: Sznida (13684)
Törölt nick Creative Commons License 2011.01.05 0 0 13685

A D27  elírás, de értem. (A működését még nem, de nem semmi az okfejtés :) Megy is. Köszönöm.

Hogy a fenébe működik ez?

Előzmény: Jimmy the Hand (13682)
Sznida Creative Commons License 2011.01.05 0 0 13684

Szia,

 

Van egy új megoldás:

bekéri a szöveget, de azt Te bárhonnan beadhatod neki, aztán bekéri a keresett karaktert, amit szintén bárhonnan megadhatsz neki, aztán a végén kiírja a darabszámot (j) egy ablakba, amit akár máshol is felhasználhatsz! :)

 

Sub szamolas()
    Dim i As Integer
    Dim j As Integer
    Dim myStr As String
    Dim myNewStr As String
    Dim mychar As String
    Dim myStrLen As Integer
    j = 0
    myStr = InputBox("Add meg a szöveget!")
    mychar = InputBox("Add meg a számlálandó karaktert!")
    myStrLen = Len(myStr)
    For i = 1 To myStrLen
        myNewStr = Mid(myStr, i, 1)
        If myNewStr = mychar Then
            j = j + 1
        End If
    Next i
    MsgBox ("darabszám=" & j)
End Sub

 

Remélem segítettem!

 

Üdv: Sznido

Előzmény: Törölt nick (13681)
Jimmy the Hand Creative Commons License 2011.01.05 0 0 13683

Ugyanez szorzatösszeggel is megoldható, de azt majd SQLkerdes kolléga szállítja ;-)

Előzmény: Jimmy the Hand (13682)
Jimmy the Hand Creative Commons License 2011.01.05 0 0 13682

Ha mondjuk A1-ben van a szöveg, és "w" betűket kell számolni, akkor:

 

{=SZUM(HA(KÖZÉP(A1;SOR(INDIREKT("A1:A"& HOSSZ(D27)));1)="w";1;0))}

Előzmény: Törölt nick (13679)
Törölt nick Creative Commons License 2011.01.05 0 0 13681

Köszönöm, nem. Biztos vagyok benne hogy nem lesz használható az én esetemben. (Az általam írt rövid példa egyáltalán nem hasonlít a valósra)

Előzmény: Sznida (13680)
Sznida Creative Commons License 2011.01.05 0 0 13680

Szia Robbantomester,

 

Én egy csúnya megoldást tudok, az excel képleteit, illetve cellái felhasználásával! :(

Érdekel?

 

Küldjem?

 

Üdv: Sznido

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

Sziasztok,

hogy számolnátok meg egy string-ben egy adott karaktert?

Pl.: Hány darab "w" karakter van ebben a string-ben: "wweeeerrr"

 

Elvileg function-os megoldát kell rá írnom, de kíváncsi vagyok tud e valaki beépített függvényest.

 

Törölt nick Creative Commons License 2011.01.04 0 0 13678

írd a backslash-t duplán:

\

akkor megmarad

Előzmény: Sznida (13677)
Sznida Creative Commons License 2011.01.04 0 0 13677

Szia Ciripke,

 

Ha ugyanabban a könyvtárban van az excel file, akkor arra itt egy megoldás.

Ha jól értem, akkor word-ben akarsz hiperhivatkozást, akkor egy tetszőleges word file-hoz rendelt visual basic eseménykezelőjébe "ThisDocument"-be másold be. Aztán metsd el a word file-t ugyanabba a mappába ahol az exceled is van.

A word megnyitáskor beolvassa ezt a makrót, és egy hiperlinket ír be a kursor helyére, arra ctrl-al kattintva már nyílik is meg az excel file.

A "fileName helyére írd be az excel file nevét.

A Cim = kezdetű sorban van középen egy per jel, az nem per, hanem fordított per, azaz backslash, csak az sajnos törlődik! :(

A word bezáráskor töröl mindent, és ment.

 

Private Sub Document_Open()
    Eleresi_ut = Application.ActiveDocument.Path
    FileName = "12345.xls"
    Cim = Eleresi_ut & "/" & FileName
    ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:=Cim, SubAddress:="", _
        ScreenTip:="", TextToDisplay:=Cim
End Sub
Private Sub Document_Close()
    Application.DisplayAlerts = False
    Selection.WholeStory
    Selection.Delete Unit:=wdCharacter, Count:=1
    Application.ActiveDocument.Save
End Sub

 

Remélem segítettem!

 

Üdv: Sznido

Előzmény: Ciripke (13676)
Ciripke Creative Commons License 2011.01.04 0 0 13676

Szia!

 

Én nem arrag ondotlam, hogy a fájlt mindíg keresse, hanem azt, hogy a forrás fájl helyét magához viszonyítva adhassam meg.

 

Tehát, hogy a célfájlhoz képes egy szinttel feljebb, lejjebb, vagy u azon könyvtárban találnám meg.

Ehhez nem kell állandóan figyelni, hogy hol a fájl.

Ha nincsott, ahova mutat, pl. abban a könyvtárban, amiben a célfájl is, akkor persze nem tudja megnyitni, de én úgy küldeném a hálózaton, hogy a mappában mindkét fájl is megvan.

 

Az a baj, hogy ez nem olyan hivatkozás, mint pl. a html-ben, ahol könnyen meg tudom oldani, itt a csatolt adatok elérését kéne módosítani.

 

 

Előzmény: Törölt nick (13664)
SQLkerdes Creative Commons License 2011.01.04 0 0 13675

Vagy, ha linkelt érték van a cellában, akkor a (workbook).changelink method is használható.

Előzmény: SQLkerdes (13666)
Sznida Creative Commons License 2011.01.04 0 0 13674

Köszi! :)

Én is üdvözlök mindenkit a Klubban!

 

Örülök, hogy rátaláltam erre a fórumra, sokat tanultam már a bejegyzésekből.

 

Üdv: Sznido

 

 

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

Amúgy üdv. a Klubban :)

Előzmény: Sznida (13672)
Sznida Creative Commons License 2011.01.04 0 0 13672

Szia Lesleee,

 

Akkor sajnos csalódnod kell, mert ...

Amúgy az else az nem parancs, hanem az egy elágazása az if parancsnak (if-ha, then-akkor, else-ellenben, endif-ha ciklus vége)

 

Örülök, hogy segíthettem! :)

 

Minden jót!

 

Üdv: Sznido

Előzmény: Lesleee (13671)
Lesleee Creative Commons License 2011.01.04 0 0 13671

Kedves Sznida!

 

 

Amikor átnézem a kódodat, akkor már értem, hogy mi miért történik, és az else parancsról is már hallottam, de egyedül még nem megy.

 

Köszönöm, imádlak...bízom benne, hogy nem pasi vagy :-)

 

 

Üdv, Leslee

 

Előzmény: Sznida (13670)
Sznida Creative Commons License 2011.01.04 0 0 13670

Szia Lesleee,

 

Erre gondoltál?

 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("h8:h157,i8:i157,j8:j157,k8:k157,l8:l157")) Is Nothing Then
    Target.Value = Cells(Target.Row, 4).Value
    For i = 8 To 12
        If Target.Column <> i Then
            Cells(Target.Row, i).ClearContents
        End If
    Next i
    Cancel = True
End If
If Not Intersect(Target, Range("m8:m157,n8:n157,o8:o157,p8:p157,q8:q157")) Is Nothing Then
    Target.Value = Cells(Target.Row, 5).Value
    For i = 12 To 17
        If Target.Column <> i Then
            Cells(Target.Row, i).ClearContents
        End If
    Next i
    Cancel = True
End If
If Not Intersect(Target, Range("g8:g157")) Is Nothing Then
    Target.Value = ClearContents
    If Cells(Target.Row, 4).Value <> "" Then
        Target.Value = 0 - Cells(Target.Row, 4).Value
    ElseIf Cells(Target.Row, 5).Value <> "" Then
        Target.Value = Cells(Target.Row, 5).Value
    Else
        MsgBox ("Mindkét cella üres")
    End If
    Cancel = True
End If
End Sub

 

Remélem igen!

 

Sok szerencsét!

 

Üdv: Sznido

Előzmény: Lesleee (13669)
Lesleee Creative Commons License 2011.01.04 0 0 13669

 

Sziasztok!

 

 

 

Pár nappal ezelőtt már kaptam itt egy makrót, amit picit átalakítottam, és most egyébként remekül működik. De egy újabb funkciót is jó lenne, ha tudna, de nem tudok rájönni.

 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

 

If Not Intersect(Target, Range("h8:h157,i8:i157,j8:j157,k8:k157,l8:l157")) Is Nothing Then
Target.Value = Cells(Target.Row, 4).Value

 

For i = 8 To 12
    If Target.Column <> i Then
        Cells(Target.Row, i).ClearContents
    End If
Next i
Cancel = True
End If

 

If Not Intersect(Target, Range("m8:m157,n8:n157,o8:o157,p8:p157,q8:q157")) Is Nothing Then
Target.Value = Cells(Target.Row, 5).Value
For i = 12 To 17
    If Target.Column <> i Then
        Cells(Target.Row, i).ClearContents
    End If
Next i
Cancel = True

 

End If

 

End Sub

 

Ez két különböző cella tartalmát másolja át két különböző helyre. Eddig rendben van.

  

Most azt szeretném, ha duplán kattintok a g8-ba, akkor 2 cella közül (d8 és e8), amelyikben érték van, azt másolja át a G8-ba. De ráadásul, ha a d8-ban van érték, akkor azt mínusz előjellel másolja át.

 

 

 

Előre is köszönöm, ha valaki segít.

 

Sznida Creative Commons License 2011.01.04 0 0 13668

Bocs, de kicsit sok lett benne a hiba..., mert eltűntek a fordított per-ek, azaz a blackslash-ek :(

 

Még egyszer:

 

Szia Ciripke,

 

Ezt az Excel sugójában találtam, akár hasznos is lehet...

 

"A könyvtár betűjelének eltávolítása a kiszolgáló címéből:       Lehet, hogy már nem érvényes az a betűjel, amelyet a hiperhivatkozás létrehozásakor a megosztott hálózati könyvtárhoz rendeltek. Ha a hiperhivatkozást a könyvtárakhoz rendelt betűjelektől függetlenné szeretnénk tenni, módosítsuk a hiperhivatkozás céljának címét, és a betűjel helyett a kiszolgáló és a megosztott könyvtár nevét adjuk meg. A G:/saját.xls címet például a //kiszolgáló/könyvtár/saját.xls címre cserélhetjük."

 

A per helyet a fordított per-t használd, csak sajnos azok eltűnnek... :(

 

Ha az excel file-t a hálózatra mented, és megadod a kiszolgáló, illetve a mappák nevét "/"-el elválasztva, utána pedig a file nevét, akkor szerintem működhet a dolog.

Igaz nem relatív hivatkozás lett, de mindenki gépe a hálózaton fogja keresni az excel file-t!

 

Remélem használható lesz!

 

Üdv. Sznido

Előzmény: Sznida (13667)
Sznida Creative Commons License 2011.01.04 0 0 13667

Szia Ciripke,

 

Ezt az Excel sugójában találtam, akár hasnos is lehet...

 

"A könyvtár betűjelének eltávolítása a kiszolgáló címéből:       Lehet, hogy már nem érvényes az a betűjel, amelyet a hiperhivatkozás létrehozásakor a megosztott hálózati könyvtárhoz rendeltek. Ha a hiperhivatkozást a könyvtárakhoz rendelt betűjelektől függetlenné szeretnénk tenni, módosítsuk a hiperhivatkozás céljának címét, és a betűjel helyett a kiszolgáló és a megosztott könyvtár nevét adjuk meg. A G:saját.xls címet például a \kiszolgálókönyvtársaját.xls címre cserélhetjük."

 

Ha az excel file-t a hálózatra mented, és megadodd a kiszolgáló, illetve a mappák nevét ""-el elválasztva, utána pedig a file nevét, akkor szerintem működhet a dolog.

Igaz nem relatív hivatkozás lett, de mindenki gépe a hálózaton fogja keresni az excel file-t!

 

Remélem használható lesz!

 

Üdv. Sznido

Előzmény: Ciripke (13663)
SQLkerdes Creative Commons License 2011.01.04 0 0 13666

Elméletben nem lehetetlen a dolog.

 

A teendők:

- Egy workbook.open eseménykezelő a workbook megnyitásakor kiolvassa annak elérési útvonalát (hívjuk mondjuk Path-nak)

- Az eseménykezelő tartalmazza a wordfile nevét (elérési út nélkül), mondjuk egy változóban (hívjuk mondjuk sFileName-nek)

- Az eseménykezelő egy előre megadott cella tartalmát átalakítja Path/sFileName-re (vagy a Path/sFileName -en elérhető tartalmat beteszi az adott cellába).

 

Vannak itt néhányan akik ilyen eseménykezelőket tudnak írni (én nem tartozom közéjük), hátha tudnak ez alapján segíteni (vagy elmagyarázni, hogy miért baromság amit fentebb írtam :-)

Előzmény: Ciripke (13663)
erdeiboroka Creative Commons License 2011.01.03 0 0 13665

Ha notepaddal létrehozok egy filet, amiben | elválasztójellel vannak adatok, azt utána megnyitom az Excelből, bejön a Szövegbeolvasó varázsló, ahol a Tagolt esetet választom, majd a határoló jeleknél az egyéb helyen megadom a | elválasztójelet, akkor úgy nyitja meg ezt a filet, hogy minden adat külön cellában van.

Lehet, hogy nem értem a kérdést?

Boróka

Előzmény: valakiasokközül (13645)
Törölt nick Creative Commons License 2011.01.03 0 0 13664

Szerintem az általad leírt  módon nem lehet egy fizikai helyre mutató hivatkozást "aktívvá" tenni. Gondolj bele, ehhez szükség lenne egy háttérben folyamatosan futó programra, ami állandóan azt figyeli, hogy mikor hová helyezed át a file-kat.

Meg kell oldani a file-ok lokalitását.

Előzmény: Ciripke (13663)
Ciripke Creative Commons License 2011.01.03 0 0 13663

Sziasztok!

 

Excel 2003-al kapcsolatban szeretnék kérdezni.

Van-e lehetőségem arra, hogy ha mondjuk egy excel fájl tartalmát csatolom egy word fájlhoz, akkor relatív elérési utat adhassak meg, (pl.: exceladatok.xls)  így, bárhova pakolom a két fájlt csak az egymáshoz viszonyított helyzetüket kéne megtartani.

 

Azért fontos ez, mert hálózaton dolgozunk, és hiába készítek el valamit, a másik felhasználó nem látja, hisz nincs hozzáférése az én fájljaimhoz, mert a word az excelt nálam keresi. (kivéve, ha frissítek minden hivatkozást minden felhasználónál, de az nagyon hosszú idő)

 

 

Köszönöm a segítséget előre is!

 

üdv:

    C.

Sztai Creative Commons License 2011.01.02 0 0 13662

Lesleee,

Nincs miért elnézést kérni :-)

A lényeg, hogy érted e a vegyes hivatkozás használatát

Üdv

Előzmény: Lesleee (13661)
Lesleee Creative Commons License 2011.01.02 0 0 13661

Kedves Sztai!

 

Elképzelhető, hogy nem megfelelően fogalmaztam, amiért elnézést kérek.

 

A segítő szándékodat mindenesetre köszönöm :-)

 

Üdv:

 

Leslee

Előzmény: Sztai (13659)
Sztai Creative Commons License 2011.01.02 0 0 13660

Dupla katt a "menüre" gyorsabb megoldás.

Az általad menüsornak nevezett dolog a szalag (ribbon) és rajta a menüpontok a fülek (tabs).

BÚÉK

Előzmény: mafikám (13626)
Sztai Creative Commons License 2011.01.02 0 0 13659

Kedves Lesleee,

Eredetileg ezt kérted:"Azt szeretném, ha abban az esetben, ha egy cella (c1) nem üres, akkor a c2:c7 cellák kitöltése változzon, ha a d1 nem üres, akkor a d2:d7 kitöltése változzon, és így tovább."

Ha jól értem ez azt jelenti, hogy pl. a d2:d7 tartomány szine változzon meg, ha d1 nem üres ill. pl. e2:e7 szine akkor változzon, ha e1 nem üres. Erre az esetre javasoltam az alábbi feltételes formázást: formázandó tartomány pl. c2:f7 és a tartomány amit figyel a c1:f1, a javasolt feltétel pedig ez: =c$1<>"". Ez így helyes.

A példa amit Te most küldtél, egész más. Ebben e2:i2 tartományt formáztad és az itt lévő cellák a d$2 cellát figyelik, hogy üres e. Ebben a példádban nincs különbség d$2 és d2 között. Ha azt szeretted volna, hogy az e2:i2 tartomány minden cellája szines legyen, ha d2 nem üres, akkor a $d2 vegyes hivatkozást kellett volna használnod (a formátumot jobbra másolod és nem akarod, hogy az oszlop módosuljon). 

d$2 jelentése: relativ oszlop, abszolut sor

$d2 pedig abszolut oszlop, relativ sor.

üdv

 

Előzmény: Lesleee (13658)
Lesleee Creative Commons License 2011.01.02 0 0 13658

Köszönöm a magyarázatot. A válaszomban nem írtam rosszul, tényleg így $C1 működött :-)

 

Az általad írt, pedig ilyen érdekesen

 

Előzmény: Sztai (13656)
mafikám Creative Commons License 2011.01.02 0 0 13657

Koszonom szepen, meglett!:)

Előzmény: SQLkerdes (13628)
Sztai Creative Commons License 2011.01.02 0 0 13656

A vegyes hivatkozásnál az egyik elem (oszlop vagy sor) abszolut a másik pedig relativ.

A Te példádnál maradva a cella, amelyiknek a tartalmát vizsgálod (C1 üres e vagy sem) mindig az első sorban lesz, de mindig az aktuális oszlopban. Ezért érdemes abszuolut sort ($1) és relativ oszlopot (c) használni ----> c$1. Ha lefelé (v. fölfelé) másolod a sor nem változik, jobbra/balra másolva az oszlop igen.

Remélem így érthető

(a válaszodban úgy tűnik rosszul írtad $C1, helyesen c$1

Üdv

 

Előzmény: Lesleee (13655)
Lesleee Creative Commons License 2011.01.02 0 0 13655

A =$C1<>"" hivatkozással működött, bár nem tudom pontosan miért :-)

 

Köszönöm az ötletet a vegyes hivatkozásra.

 

Neked is BUÉK

Előzmény: Sztai (13654)
Sztai Creative Commons License 2011.01.01 0 0 13654

Használj vegyes hivatkozást!

=c$1<>""

BUÉK

Előzmény: Lesleee (13653)
Lesleee Creative Commons License 2011.01.01 0 0 13653

Sikítófrászt kapok a feltételes formázástól :-)

 

Azt szeretném, ha abban az esetben, ha egy cella (c1) nem üres, akkor a c2:c7 cellák kitöltése változzon, ha a d1 nem üres, akkor a d2:d7 kitöltése változzon, és így tovább.

 

Beállítottam, de csak a c2-t színezte, majd abszolút hivatkozást csináltam a c1-ből, így már jó volt, de akkor meg nem tudtam másolni lefelé a szabályt.

 

Valakinek ötlet?

Lesleee Creative Commons License 2011.01.01 0 0 13652

Kedves Sznido!

 

Ellenkezőleg, én köszönöm. Tanultam belőle :-)

 

Neked is minden jót!

 

Leslee

Előzmény: Sznida (13651)
Sznida Creative Commons License 2011.01.01 0 0 13651

Szia Lesleee,

 

Én küldtem Neked ezt a makrót, és a Te általad küldött ajánlásban benne volt én csa ezért hagytam benne, gondoltam Te így akarod használni! :)

Bocs a kellemetlenségért!

 

Minden jót!

 

Üdv: Sznido

Előzmény: Lesleee (13650)
Lesleee Creative Commons License 2011.01.01 0 0 13650

Igen, pont azt a sort töröltem teljesen, csak ebben van még benne.

 

 

Köszönöm a segítségedet:-)

 

Üdv:

 

Leslee

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

ebből csak a visszakapcsolást vetted ki, az elején benne van még a manuálisra állítás (Application.Calculation = xlCalculationManual)

akód egyes sorai számítási munkát generálnak a muinkafüzetben és felesleges futás közben ezzel terhelni (lassítani) azt, ezért szokták kikapcsolni.

Előzmény: Lesleee (13648)
Lesleee Creative Commons License 2011.01.01 0 0 13648

...és valóban :-)

 

A makrót itt kaptam, egy kicsit átalakítottam, de a számolás módja benne volt. Most azt a sort kivettem és működik.

De akkor egy ilyen sor mi célból kell? Csak opciós, és ha nem írjuk bele, akkor a program által beállítottként számol?

 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Application.Calculation = xlCalculationManual

if Not Intersect(Target, Range("h8:h150,i8:i150,j8:j150,k8:k150,l8:l150"Is Nothing Then

Target.Value = Cells(Target.Row, 4).Value

For i = 8 To 12    

If Target.Column <> i Then  

Cells(Target.Row, i).ClearContents    

End If

Next i

Cancel = True

End If

 

If Not Intersect(Target, Range("m8:m150,n8:n150,o8:o150,p8:p150,q8:q150")) Is Nothing Then

Target.Value = Cells(Target.Row, 5).Value

For i = 12 To 17    

If Target.Column <> i Then        

Cells(Target.Row, i).ClearContents    

End If

Next i

Cancel = True

End If

End Sub

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

mi van abban a makróban? biztos ott van a kapcsoló a számítás módjára

Előzmény: Lesleee (13646)
Lesleee Creative Commons License 2011.01.01 0 0 13646

Sziasztok!

 

 

2010-es excelt használok. A képletek újraszámolását automatikus számolásra állítottam. Ez kézi beírásnál remekül működik, azonban ha lefut egy makró (dupla klikkes), akkor nem számolja újra, sőt az automatikus számolás opció is visszaállítódik manuálisra.

 

Tud valaki segíteni?

valakiasokközül Creative Commons License 2011.01.01 0 0 13645

Az általam feltett kérdésre a "mester"

 

robbantomester


t ökéletes útmutatást adott. Így a feladatom megoldásra került, s további ötletek nélkül is maximálisan boldogulok.

Ha valaki mégis úgy érzi, hogy remekelni akar, s egyszerűbb, automatikusabb megoldással tud "ragyogni", akkor azt is szívesen fogadom :)

 

Köszönöm mindenkinek, aki esetleg elgondolkodott a feladat megoldásán, s külön köszönet a robbantomester -nek, hogy gyorsan és hatékonyan segített!!!

 

további szép napot mindenkinek

 

valaki a sok közül ....

 

Előzmény: valakiasokközül (13640)
valakiasokközül Creative Commons License 2011.01.01 0 0 13644

A 2. lecke is kész....és nagyban megkönnyítetted a tanácsaiddal a munkám/elképzelésem...

A csv formátumban mentést, s a karakterek cseréjét használtam.....első olvasásra ez volt a számomra is érthető.

 

 

Előzmény: valakiasokközül (13643)
valakiasokközül Creative Commons License 2011.01.01 0 0 13643

Szia

 

Az 1. pontban leírt "házi feladatot" megcsináltam..... kellett egy kis gyakorlás a beállításokhoz, de a leírásod alapján meg tudtam oldani...

Sikerélményben most gazdag vagyok.....

Köszönöm!

 

kezdem a házi feladat 2. részét :)

 

 

Előzmény: Törölt nick (13641)
valakiasokközül Creative Commons License 2011.01.01 0 0 13642

Szia

 

Köszönöm a gyors válaszod.

Sajnos az excell-t nem tanultam soha, s nem is használom...azaz alap user vagyok...bár 5-6 éve a "ti" segítségetekkel kicsit belemerültem a makrózásba és akkor megírt viszonylag egyszerű táblázatkezelőt most is használom....Mára minden t elfelejtettem.... :(

 

Amit beírtál, azon elkezdek gondolkodni, s talán gyakorolgatni....így első olvasásra annyira nem tűnik nekem egyszerűnek, de én is igyekszem valamit tenni, valamilyen irányba elmozdulni... ha konkrétab (egyszerű felhasználónak érthetőbb, szájbarágósabb) megoldásra van időtök, akkor azt megköszönöm

további szép napot!

 

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

1.

"Szövegből oszlopok" menüpont erre való

2007-ben:

menüszalag/adatok/adateszközök.

Vagy:

menüszalag/külsőadatok átvétele/szövegből menüponttal közvetlenül megnyitható a szövegfile és konvertálható oszlopokra.

(Ugyanezek megvannak 2003-ban is)

 

 

2:

Makró nélkül:

Egy másik munkalapra ÖSSZEFŰZ() fgv-el összefűzöd a cellákat, a cellahivatkozások közél berakod a "|"  jelet

Vagy: Elmented *.csv formában a táblázatot, majd a csv-ben kicseréled (nem kézzel!!!) a pontosvesszőket(;) "csere" funkcióval more(|)-ra (Sima notepadban a csere funkciót ctrl+h-val lehet előcsalogatni)

Vagy: makró és egy kattintással megvan minden, idő híján ezt most nem tudom

 

Ezek jutottak eszembe

 

Előzmény: valakiasokközül (13640)
valakiasokközül Creative Commons License 2011.01.01 0 0 13640

sziasztok, BUÉK

 

IGO navigációból akarom a mentett POI-kat excell táblában tárolni, s esetleg excelben módosítani, átírni, kiegészíteni....

 

A dolog működik, csak kicsit macerás.

Amit eddig csináltam:

 

Igo-ból a "save" mappa "user.upoi" kiterjesztésű fájlt kimásoltam. Az excell megnyitja, mert sima szöveges fájl...

A probléma az, hogy ez a szöveges fájl így néz ki az excell-ben:

 

1|Vallalkozasom ügyfelek. Biatorbágy|Noname György||42.470052|14.855459|_HUN||||2951|Biatorbágy|Ismeretlen Zsigmond utca|27|megjegzés|telefonszám||

2|Vállakozásom céges címek. Dunaharaszti|Gebrüder Weiss||47.365358|19.118950|_HUN|||||Dunaharaszti közelében|51-es út|||telefonszám||

 

Az excell egy sort egy cellába rak be. A fenti két sort az A1 és B1 cellákban nyitja meg. Ha belemegyek ezekbe a cellákba, akkor tudom átírni, javítani, stb mert mentés után tökéletesen működik a navigációban...

 

Nekem ennél sokkal többre van szükségem, hisz szeretném az excel előnyeit kihasználni. ( szűrés, rendezett áttekintés)

 

Létrehozta, egy táblázatot ami így néz ki: (minden adat külön cellában)

 

 

Ez így nagyon frankó, mert mappa, almappa, név, stb szerint tudom szűrni, rendezni, hisz külön-külön oszlopban van minden adat...

Budapest, XIX kerület, Lackó ....

Budapest, XX kerület,  Ferences ....

 

Konkrétan 2 dolog lenne, amit nektek "excell zseniknek" meg kellene oldani:

 

1.:

Szöveges fájl formátumot hogy tudok úgy bemásoltatni az excellbe, hogy az külön cellába másolja be az adatokat. Az adatok így vannak a szöveges fájlban (igo-ban) hogy:

adat|adat|adat|adat|adat|adat|......

Az excellbe így kellene átkonvertálni:

A1    A2  A3   A4  A5  A6  A7  A8  A9  A10

adat  |  adat  |  adat  | adat  |  adat  |

ha így van, akkor egyértelmű, hogy az A2, A4, A6 oszlopot kényem-kedvem szerint tudom szűrni, s egy baromira átlátható táblázatom van.....

 

Vagy egy külső program kellene, ami a " | " jel közötti részt külön cellákba rak be, s ügyel arra, hogy a sortörés jó legyen

Vagy egy olyan függvény az excellen belül, ami a szöveges fájl bemásolása után végigmegy az A1, B1, C1... cellákon és onnan kinyert adatokat új táblázatba tölti be ( a " | " jel közötti adatokat, az üres adatot is.... ezzel gyakorlatilag autómatikusan megcsinálná azt ami én manuálisan és nagyon lassan (lásd hozzászólásom eleján betett táblázat)

 

2. feladat...

 

Az 1. feladatban elkészített excell táblázatot konvertálja vissza vagy szöveges formátumban, vagy az elkészített táblázatot alakítsa úgy át, hogy az összes adat (soronkénti adat) egy cellába másolja be:

adat|adat|adat|adat|adat|

 

Az Io csak úgy tudja olvasni, ha az adatok között nincs szóköz.....

 

Eddig ezt úgy oldottam meg, hogy megnyitottam az IGO  "user.upoi" fájlt jegyzetfüzetként, bemásoltam az excell táblázatom szövegként (ekkor a sorokat helyesen töri meg, csak az a baj, hogy minden excell cellát egy szóközzel elválaszt...így az igo nem olvassa...de ha az így kapott szöveges részbe a " | " jelek és az adatok mentén a szóközt kiszedtem, akkor minden rendben van....

 

Ha ezt meg tudjátok oldani, akkor sok-sok ember hasznát vehetné, hisz ezek alapján könnyedén saját poikat is készíthetsz és kezelheted, átírhatod..... sebességmérő kamerák, hasznos helyek, stb

 

Előre is köszönöm azoknak akik a feladaton elgondolkodnak és segíteni próbálnak!

 

szép napot mindenkinek

 

 

 

 

 

 

Törölt nick Creative Commons License 2010.12.31 0 0 13639

+1

Előzmény: tt65 (13638)
tt65 Creative Commons License 2010.12.31 0 0 13638

Sikerekben gazdag, boldog újévet kívánok minden excel fan-nak!

Sznida Creative Commons License 2010.12.31 0 0 13637

Nagyon szépen köszönöm!!!!

Jók működik, igen ezt szerettem volna, bocsánat a nem érthető fogalmazásért!

 

Köszi még egyszer!

 

Boldog új évet kívánok!

 

Üdv: Sznido

Előzmény: Jimmy the Hand (13636)
Jimmy the Hand Creative Commons License 2010.12.31 0 0 13636

2003-ban is kétféle Commandbutton lehet munkalapra tenni. Nézd meg az eszköztárakat. Van egyszer egy "Űrlapok" és egy "Vezérlők eszközkészlete".

A leírásod alapján azt gondolom, Te az utóbbit használtad. Erre az esetre hoztam össze az alábbi megoldást.

 

Van egy Class Module, amit úgy hívnak, hogy "clsButtonGroupElement". Ennek a kódlapjára menjen a következő kód:

 

'---------------------kód eleje-----------------------------------

Option Explicit

Public WithEvents myButton As CommandButton

Private Sub myButton_Click()
    Debug.Print myButton.Name & " clicked."
End Sub
'---------------------kód vége------------------------------------

 

A munkafüzet ThisWorkbook kódlapjára pedig:

'---------------------kód eleje-----------------------------------

Option Explicit

Public myButtonGroup As Collection

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Dim O As Object, BGE As clsButtonGroupElement, S As Shape
    Dim PID As String
    
    Set myButtonGroup = New Collection
    For Each S In Sh.Shapes
        On Error GoTo Hiba
        PID = S.OLEFormat.Object.progID
        If PID = "Forms.CommandButton.1" Then
            Set BGE = New clsButtonGroupElement
            Set BGE.myButton = S.OLEFormat.Object.Object
            myButtonGroup.Add BGE
        End If
Folyt:
    Next
    Exit Sub
Hiba:
    Resume Folyt
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    Set myButtonGroup = Nothing
End Sub
'---------------------kód vége------------------------------------

 

A Class Module kódját nyilván átírod majd, hogy a gombok valami értelmeset csináljanak.

A másik rész dióhéjban annyit tesz, hogy mindig, amikor egy munkalapot aktiválsz, létrehoz egy új Collection-t, amibe beleteszi a munkalapon lévő ActiveX gombokat. Ha többféle Shape objektum volna a munkalapon, nem csak Commandbutton, erre az esetre van egy szűrés a ProgID-vel. Nem vagyok benne 100%-ig biztos, de reményeim szerint csak a gombokat engedi át.

 

 

 

 

Előzmény: Sznida (13630)
Lesleee Creative Commons License 2010.12.30 0 0 13635

Kedves Sznido!

 

 

Köszönöm a fáradozásodat, ez is remekül működik, csak a ....formátumot törli

 

De erre már rájöttem egyedül :-) clearcontents

 

 

Szia, Leslee

Előzmény: Sznida (13634)
Sznida Creative Commons License 2010.12.30 0 0 13634

Szia Lesleee,

 

Tessék parancsolni:

 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.Calculation = xlCalculationManual
If Not Intersect(Target, Range("B13:B2000,c13:c2000,d13:d2000,e13:e2000,f13:f2000")) Is Nothing Then
Target.Value = Cells(Target.Row, 1).Value
For i = 2 To 6
    If Target.Column <> i Then
        Cells(Target.Row, i).Clear
    End If
Next i
Cancel = True
End If
End Sub

Örülök, hogy segíthettem! :)

 

Minden jót!

 

Üdv: Sznido

Előzmény: Lesleee (13633)
Lesleee Creative Commons License 2010.12.30 0 0 13633

Pontosan erre gondoltam, köszönöm.

 

Azzal ki lehetne egészíteni, hogy egyszerre csak az egyik lehetőségbe lehessen írni? Tehát, ha véletlenül másik helyre kattintottam, akkor a jó helyre kattintáskor a másik törlődjön. Vagyis egyszerre csak egy helyen jelenhessen meg összeg.

Előzmény: Sznida (13631)
NeomatiK Creative Commons License 2010.12.30 0 0 13632

íigen,. ezt a múltkor felfedeztem (és írtma is ide), hogy ha 00:.... -val kezdem, akkor jól írja. Csak így hosszadalmassabb a beírás.

Előzmény: SQLkerdes (13627)
Sznida Creative Commons License 2010.12.30 0 0 13631

Szia,

 

Így gondoltad?

 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.Calculation = xlCalculationManual
If Not Intersect(Target, Range("B13:B2000,c13:c2000,d13:d2000,e13:e2000,f13:f2000")) Is Nothing Then
Target.Value = Cells(Target.Row, 1).Value
Cancel = True
End If
End Sub

 

Üdv: Sznido

Előzmény: Lesleee (13629)
Sznida Creative Commons License 2010.12.30 0 0 13630

Szia,

 

A lényeg, hogy van 52 munkalap, minden munkalapon van 30-30 commandbutton. Minden gomb ugyanazt csinálja, csak az éppen aktuális sorral. Megcsináltam már, de csak úgy tudtam, hogy minden egyes commandbutton_click-et létrehoztam, és bemásoltam ugyanazt a kódot mindegyikbe.

Azt szeretném, hogy csak egy kód fusson le például ami a class modulban van. Remélem így érthető.

Ja, Excel 2003-ról van szó, mert most néztem a 2010-ben már két féle commanbutton-t tudok lerakni egy munkalapra egy űrlap-vezérlőt, és egy activeX vetzérlőt. a 2003-ban csak activeX-et tudok lerakni.

 

Köszönöm szépen!

 

Üdv: Sznidó

Előzmény: Jimmy the Hand (13623)
Lesleee Creative Commons License 2010.12.30 0 0 13629

Üdv Mindenkinek!

A segítségeteket kérném.

Adott egy táblázat, amelynek első oszlopába összegeket írunk be. A következő 5 oszlop 5 különböző kategória (pl: egy, kettő három, négy, öt)

A beírt összeget szeretném az 5 kategória valamelyikébe rendelni. Arra gondoltam, hogy ha adott kategória (adott összeg melletti) cellájába kattintok duplán, akkor másolja át oda az összeget.


Egyszerű szöveget már sikerült beírnom dupla klikkes makró segítségével, de az adott feltétellel együtt nem megy.

Ebből ki lehetne indulni?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Application.Calculation = xlCalculationManual
If Not Intersect(Target, Range("B13:B2000")) Is Nothing Then
Target.Value = Date
Cancel = True
End If

If Not Intersect(Target, Range("Q13:AA2000, G13:G2000, K13:K2000")) Is Nothing Then
Target.Value = "IGEN"
Cancel = True
End If
End Sub

 

Előre is köszönöm

SQLkerdes Creative Commons License 2010.12.30 0 0 13628

Jobb klikk bármelyi menü pontot (pld Home) és ott kattints KI a Minimise the Ribbon opciót.

Előzmény: mafikám (13626)
SQLkerdes Creative Commons License 2010.12.30 0 0 13627

Azt írd be, hogy 00:12:27.

Ha csak azt írod be, hogy 12:27 akkor úgy veszi mintha 12 óra 27 perc 00 másodpercet rögzítenél be és pp:mm formátumban csak a 27:00-t mutatja.

Előzmény: NeomatiK (13624)
mafikám Creative Commons License 2010.12.30 0 0 13626
Sziasztok!

2007-es (angol) excelem van es valami elallitodott, ha rakattintok az egyes menupontokhoz tartozo funkciok (pl. file - cut, insert - pivot table, stb), csak akkor jelennek meg, ha a menure kattintok, ha az excel tablaba, akkor pedig eltunnek a funkciok, csak a menusor latszik. Mit kell beallitani, hogy a funkciok is fixen latszodjanak? Koszi a segitseget!
NeomatiK Creative Commons License 2010.12.29 0 0 13625

Egyelőre beírom "szöveg"-nek formázva a cellát, ahogy eddig. Oszt kész. Csak műveletet nem tudok így végezni.

Előzmény: NeomatiK (13624)
NeomatiK Creative Commons License 2010.12.29 0 0 13624

Sziasztok!

 

Korábban már volt problémám az időformátummal amikor pp:mm formátumban akartam beírni.

Megint ez a gondom (Excel2002-ben) eddig az adott oszlopban be tudtam írni pp:mm formában írni. De most bővíteni akartam az oszlopot újabb adatokkal, de nem sikerült :-/ Ugyanaz a jelenség adódott, mint amire válaszolok. 12:27 -et akartma beírni a cellába, erre 27:00 jelenik meg. 

 

Ha a korábbi jól megírt (és jól megjelenő) céllába írtam be felülírván az ott szereplő adatot, akkor az is ezt a 27:00 -t jeleníti meg.

 

A windowsos időformátum szerintem jó, ahogy korábban felhívtátok rá a figyelmem.

 

Továbbra se tudom, hogy mi lehet a gebasz.

Van valami ötletetek?

Előzmény: NeomatiK (13550)
Jimmy the Hand Creative Commons License 2010.12.27 0 0 13623

Nem tudom, hogy tudok-e, mert nem értem pontosan, hogy mit szeretnél.

Van egy munkalapod tele Commandbutton-okkal, ez eddig világos. Mit szeretnél velük csinálni? Mit értesz az alatt, hogy "egy osztályba sorolni"?

Előzmény: Sznida (13621)
wawabagus Creative Commons License 2010.12.24 0 0 13622

                                                                                               

 

                                                                                                 *

   

                                         * * *  NAGYON BOLDOG KARACSONYT MINDENKINEK!!!!!!!!!!!  * * *

                                                                                                 

                                                                                                 *

Sznida Creative Commons License 2010.12.23 0 0 13621

Jimmy the Hand,

 

Olvastam, és persze ki is próbáltam ezt a makrót, nagyon jól működik.

Nekem most olyan problémám van, és remélem tudsz segíteni.

A munkalapom van teli commandbutton-okkal, összesen 30-al, és ezeket szeretném egy osztályba sorolni, de sajnos nem sikerült. Azt gondolom, hogy az a baj, hogy ezek nem userform-on vannak, illetve OLE objektumok.

Tudsz segíteni?

 

Előre is köszönöm!

 

Üdv: Sznido

Előzmény: Jimmy the Hand (9698)
boraka Creative Commons License 2010.12.23 0 0 13620

Áldott békés karácsonyi ünnepeket és egészségben, örömökben, sikerekben gazdag Boldog Új Évet Kívánok!

Delila_1 Creative Commons License 2010.12.23 0 0 13619

Minden kedves fórumtársnak kellemes ünnepeket, és boldog újévet kívánok.

 

Nem találnak meg a keresők bennünket, ha ilyen csend van itt.

 

Törölt nick Creative Commons License 2010.12.20 0 0 13618

rámutatsz a megfelelő ikonra akkor kiírja a billentyűfunkciót. pl szűrőnél írja is hogy ctrl shift L

Előzmény: Tbrigitt (13617)
Tbrigitt Creative Commons License 2010.12.20 0 0 13617

Ma telepitették fel a gépemre a 2007-es excelt, eddig 2000-es volt, szóval elég nagy ugrás....

Kezdem egész jól megtalálni hogy a már megszokott dolgokat hol keressem/találom, DE a gyorsbillentyű kombinációk, melyek tök jól müködtek a 2000-es verzióban, itt egyáltalán nem müködnek, ugyanazokra a kombinációkra - pld Alt+D+F re a filtert hoztam be - a 2007-es nem reagál. Hogy lehet ezeket a funkciókat "előhozni"?

Előre is köszi bármilyen segitséget!

 

quetzalcoaatl Creative Commons License 2010.12.20 0 0 13616

megvaaaaannnn:))) thx

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

Naaaaa.

Az egyik helyen jól csináltad, egy centivel arébb meg már rosszul. Hiányzik egy &

Előzmény: quetzalcoaatl (13614)
quetzalcoaatl Creative Commons License 2010.12.20 0 0 13614

annyira hüje vagyok ehhez az excelhez...hol a hiba? A5&" "&B5" "&C5

nem akarja csinálni....

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

Hát fűzz bele egy szóközt, így: " " (Idézőjel, szpész idézőjel) --> ...&" "&...

Előzmény: quetzalcoaatl (13612)
quetzalcoaatl Creative Commons License 2010.12.20 0 0 13612

lenne egy megoldhatatlan kérdésem:) van három cell, betű, szám, betű, három oszlopban, össze kellene vonnom őket &-el működik (A5 & B5 &C) csak az a baj, hogy úgy vonja őket össze, hogy nem hagy szóközt a három cella között pedig kéne, mit írjak a képletbe? kösz.

Törölt nick Creative Commons License 2010.12.17 0 0 13611

Lehet át kell struktúrálnod azt a táblát....Nemtom...  A Lista funkciót (több) összefüggő tartományra lehet használni. Vagy talán még jó neked az irányított szűrő is.... Sőt.

Előzmény: nyuffo (13610)
nyuffo Creative Commons License 2010.12.17 0 0 13610

Valóban enged, a listát létrehozza pl. ABC-ben és EFG-ben is. Az egymás melletti oszlopokkal - tehát ABC-n vagy EFG-n belül - működik a két feltétel szerinti szűrés, de úgy látom, hogy mondjuk A és F oszlopok használatával már nem. "A és B"-nél jól listáz, de "A és F" esetén nem. Itt csak az F szerint végzi a szűrést, és már nem veszi figyelembe az A oszlop korábbi szűrését, azaz nem tudok két szempont szerint keresni. Ennyire megzavarná, hogy van közöttük egy D oszlop, ami nem lista, nincs hozzáadva szűrő?

 

 

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

biztos h enged, akkro vmit rosszul csinálhatsz

Előzmény: nyuffo (13608)
nyuffo Creative Commons License 2010.12.16 0 0 13608

Megpróbáltam a listával, de itt sem enged több oszlopcsoportra szűrőt tenni, egyszerre csak egyre. Úgy szeretném, hogy pl. A-B-C oszlopban van szűrő, D-nél nincs, E-F-G-nél van, H oszlopban nincs, stb.

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

2003-asban Listává, (2007-esben asszem "tábla"-nak hívják - "Formázás Táblázatként)" alakítsd azt a tartományt (oszlopot) ahová a szűrőt akarod rakni

Előzmény: nyuffo (13583)
nyuffo Creative Commons License 2010.12.16 0 0 13606

SQLkerdes: Köszönöm a választ.

 

1. Sajnos nem csak szomszédos oszlopokra szerettem volna szűrőt tenni. Majd megpróbálom úgy átalakítani a táblázatot, hogy mégis szomszédosak legyenek, vagy minden oszlop kap szűrőt.

2. Akkor inkább nem mozgatom. :)

 

Az Excel amúgy 2007-es, de 2003-as verzióban is kell működnie, mert melóban csak az van.

Előzmény: SQLkerdes (13584)
SQLkerdes Creative Commons License 2010.12.15 0 0 13605

Gondoltam érdekességként benyomom ide ezt a videót.

Múltkor szó volt róla, hogy miért nem lehet pivot táblát heti csoportosításban készíteni.  Nos itt mondják el, hogy hogyan lehet.  Kell hozzá egy kis VBA meg nem egy kicsi angol, de megéri, mert jó trükk.

Törölt nick Creative Commons License 2010.12.15 0 0 13603

ctrl+alt+del --> taskmanager. Magyarul :). De látod Jimmy lefordított mindent "magyarra"

Előzmény: Gavriel (13599)
Jimmy the Hand Creative Commons License 2010.12.15 0 0 13600

13585-ben azt írtad, nem akarod, hogy a munkafüzet látszódjék... Akkor most akarod látni, vagy nem akarod látni? ;-)

 

Egy kis háttérinfó.

 

Amikor a

Set xls = CreateObject("Excel.Application")   (illetve Set objExcel = CreateObject("Excel.Application"))

sor lefut, elindul az Excel egy új példánya, ami az éppen futó Exceltől független. Az új példány alapértelmezésben nem látható. Ha azzá akarod tenni, akkor (mint Robbantómester már megmutatta):

objExcel.Visible = True

Újra eltüntetni nyilván így kell:

objExcel.Visible = False

 

Lényeges dolog, hogy a makró végén az új Excel példányt vagy láthatóvá kell tenni, vagy pedig a Quit paranccsal bezárni (lásd: 13591). Ha egyik sem történik meg, akkor az Excel kvázi láthatatlanul ott marad a memóriában, és fölöslegesen köt le erőforrást. Ha nem törődsz vele, úgy a makró minden egyes futtatásakor újabb láthatatlan Excel keletkezik, és előbb utóbb megeszik az összes RAM-ot. És mivel a makró végeztével az objExcel objektumváltozó elveszíti értékét, már többé nem tudsz vele hivatkozni a láthatatlan Excel példányokra, tehát nem tudod bezárni sem őket. (Ha látható, akkor a szokott módon be tudod zárni.) Ekkor már csak a Task Managerből tudod kilőni. Ott viszont gondban leszel, hogy melyik Excel.exe a láthatatlan, és melyik az, amelyikben éppen dolgozol....

 

Előzmény: Gavriel (13597)
Törölt nick Creative Commons License 2010.12.15 0 0 13598

Igen, mert csak a feladatkezelőben látszik. Onnan láthatóvá tudod tenni ("Átváltás")

Sajnos nem tudom fejből a makróját és most nincs időm utánanézni.

Talán:

xls.Visible = True vagy P.Visible = True

Előzmény: Gavriel (13597)
Törölt nick Creative Commons License 2010.12.15 0 0 13596

Ne törődj vele. Add meg a saját elérési utadat idézőjelek között. (Ebből a fórummotor kihagyta a backslash-t)

Előzmény: Gavriel (13595)
Törölt nick Creative Commons License 2010.12.14 0 0 13592

Na, szóval nem xls.close, hanem P.close

 

Dim Path As String
Dim xls As Object, P As Object
Path = "i:-=DTP & Office=-MeloPMP Bakony900228.xls"
Set xls = CreateObject("Excel.Application")
Set P = xls.Workbooks.Open(Path)
'code....
P.Close

 

a végére meg berakod amit Boraka írt az utolsó két sorában, hogy ne kíváncsiskodjon, hogy mit akarsz meg mit nem. (Persze jó az övé is)

Előzmény: Gavriel (13589)
boraka Creative Commons License 2010.12.14 0 0 13591

Sub RejtettMegnyitas()
Dim objExcel As Object
Dim FileHelyeNeve As String

 

  Set objExcel = CreateObject("Excel.Application")

  objExcel.Visible = False
  objExcel.Workbooks.Open Filename:=FileHelyeNeve
 
  '....

  objExcel.Quit
  Set objExcel = Nothing

 

End Sub

Előzmény: Gavriel (13589)
Törölt nick Creative Commons License 2010.12.14 0 0 13590

Ha jól emlékszem, akkor

xls.close

(Utána nézek, ha kell pontosítok (mást is)

Majd utána nézek még.

Ha másik munkafüzetben kell turkálni, akkor mindig így szokták megoldani. Szerintem teljesen felesleges open-el megnyitogatni, visible-t + egyebeket állítgatni.

 

 

Előzmény: Gavriel (13589)
Törölt nick Creative Commons License 2010.12.14 0 0 13588

Dim Path As String
Dim xls As Object
Path = "a teljes elérési út"
Set xls = CreateObject("Excel.Application")
Set P = xls.Workbooks.Open(Path)

 

Háttérben nyílik meg az alkalmázás. A végén ki is kell pucolnod onnan.

Előzmény: Gavriel (13585)
E.Istvan Creative Commons License 2010.12.14 0 0 13586

Azt nem írtad, hogy makróból akarod-e. Ott simán csak le kell tiltani a képernyő frissítést a művelet idejére

application.screenupdating=false

az ablakot is el lehet rejteni.

windows("Munkafüzet.xls").visible=false

 

Makró nélkül is van egy trükk.

Megnyitod az elrejteni kívánt táblát. Valamilyen adatot, cellát változtatsz benne. Majd az ablakot elrejted és az egész Excelt bezárod. Ekkor az Excel rákérdez, hogy mentse-e a táblát. Így legközelebbi megnyitáskor automatikusan rejtettként fog megnyílni.

Előzmény: Gavriel (13585)
SQLkerdes Creative Commons License 2010.12.13 0 0 13584

1.) csak ha az érintett oszlopok szomszédosak.  Vagyis egy 5 oszlops táblázatból (A:E) tudsz szűrni pld az A:C oszlopokra, de nem az A:B + D oszlopra.  A teendő csak annyi, hogy kijelölöd a megfelelő oszlop fejlécét (esetünkben mondjuk az A1:C1 tartományt és így aplikálod a szűrőt (nem írtad milyen exceled van).

2.)  kétlem, hogy ez lehetséges.  Az excel ezt az adatot nem "hiperlinkként" kezeli, hanem sima adatként, neki nem számít, hogy megváltozott a "környezet"

Előzmény: nyuffo (13583)
nyuffo Creative Commons License 2010.12.13 0 0 13583

Sziasztok,

 

Két kérdésben szeretném a segítségeteket kérni.

 

1. A táblázatban szeretnék szűrőt elhelyezni, de csak bizonyos oszlopokban. Csoportos kijelöléssel nem engedi, illetve vagy mindenhova, vagy sehova nem tesz szűrőt. Hogyan lehet ezt csak bizonyos oszlopokra megoldani?

 

2. A táblázatban hiperhivatkozásként szerepelnek fájlok, melyek kattintásra megnyithatók. Kérdésem, hogy az Excel tudja-e követni valamilyen módon az elérési útvonalban történő változásokat? Pl. könyvtár átnevezése, xls fájl valamint a hozzá linkelt fájlok kiírása dvd-re, ezáltal az elérési út változása.

 

Előre is köszönöm.

 

 

tt65 Creative Commons License 2010.12.10 0 0 13582

köszönöm, értem. ki fogom próbálni!

Előzmény: Sztai (13581)
Sztai Creative Commons License 2010.12.10 0 0 13581

Egy másik megoldás a két egymástól független pivot tábla készítése ua-ból az adatforrásból problémára:

1. Készítsd el a két Piv. táblát

2. a másodikat jelöld ki és vágd ki (ctrl+x) és illeszd be egy új munkafüzetbe

3. módosítsd a kedved szerint pl. csoportosítsd másként az adatokat

4. jelöld ki a P.táblát, vágd ki és illeszd be az eredi munkafüzetedbe

ennek a két piv táblának már két egy mástól független data cache-e van

remélem segítettem

Üdv

 

Előzmény: tt65 (13573)
Sztai Creative Commons License 2010.12.10 0 0 13580

Ha ugyanabból az adatforrásból készítesz két v. több pivot táblát, akkor az excel 2007 automatikusan ua-t az adat-gyorsítótárat (data cache) használja, hogy csökkentse a memória használatot és a fájl méretet. Ha szertnél két pivotot csinálni amelyek függetlenek egymástól, módosítsd a tartományt, pl. hagyd ki a D oszlopot, hiszen úgysem használod ezt a mezőt (arány), mert készítesz egy számított mezőt és azt teszed be a pivot tábládba. Ez után már a két tábla független egymástól és tudod másként csoportosítani (persze a számított mezőt ismét létre kell hoznod)

Remélem segítettem

Üdv

Előzmény: tt65 (13573)
tt65 Creative Commons License 2010.12.07 0 0 13579

visszavontam, az más...

Előzmény: tt65 (13578)
tt65 Creative Commons License 2010.12.07 0 0 13578

nálam HÉT.NAPJA a fv. neve :-)

Előzmény: Delila10 (13577)
Delila10 Creative Commons License 2010.12.07 0 0 13577

 

WEEKNUM helyesen a függvény neve.

 

Előzmény: Delila10 (13576)
Delila10 Creative Commons License 2010.12.07 0 0 13576

 

A WEEKNUMBER függvényt tartalmazó oszlopnak a 0".hét" formátumot adnám.

 

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

én nem foglalkoznék a kimutatás heti/havi bontásával, hanem annak adathátterébe beraknék egy WEEKNUMBER(), meg egy HÓNAP() függvényt plusz oszlopként (Ami a dátumaidból kiyneri a hetet meg a hónapot). Aztán idővel szükség lehet az ÉV()-re is.

Előzmény: tt65 (13573)
Jimmy the Hand Creative Commons License 2010.12.06 0 0 13574

Próbálkoztam, és azt tapasztalatam, hogy az EOF akkor is False eredményt ad, ha a fájl utolsó bájtját is beolvastam már, és utána a Get még tud olvasni egy 0-t. Nekem ezt teszi a 2-es fájl végére. Fogalmam sincs, miért. Passzolom a kérdést.

Előzmény: Törölt nick (13570)
tt65 Creative Commons License 2010.12.06 0 0 13573

készítettem két kimutatást, az egyiket a havi bontásra, a másikat a hetire. Igen, de ha egyiket állítom, megy vele a másik is!

ti ezt értitek?

Előzmény: Delila10 (13571)
tt65 Creative Commons License 2010.12.06 0 0 13572

Igen, de ha havi bontást kérek, akkor azt írja január, február , stb.

Ha ezen a módon hetit kérek, akkor azt írja 2010.01.04- 2010.01.10 ahelyett, hogy azt írná 1. hét !

Mennyivel szebb az utóbbi!

Előzmény: Delila10 (13571)
Delila10 Creative Commons License 2010.12.06 0 0 13571

Szívesen.

 

Ezért nem tartalmaz hetit, mert megadhatod a 7-essel. :)

Előzmény: tt65 (13569)
tt65 Creative Commons License 2010.12.06 0 0 13569

köszönöm nektek, ez lett a megoldás!

 

ehhez kapcsolódik, ha negyedéves, havi , napi csoportosítást tud az excel, akkor hetit miért nem tud?

végül si a napit választottam, a napok száma 7 opcióval ...

Előzmény: Delila10 (13568)
Delila10 Creative Commons License 2010.12.06 0 0 13568

Ha jól látom, 2007-es verziót alkalmazol.

 

A kimutatásba az első 3 oszlopot veszed be.

Kiválasztod a Kimutatáseszközök/ Eszközök/ Képletek/ Számított mező almenüt.

A Név rovatba beírod az előállítandó mező nevét (Arány), a Képlethez pedig =100*intézett ügy/érkezett ügyfél.

Előzmény: tt65 (13564)
Törölt nick Creative Commons License 2010.12.06 0 0 13567

tegyél be egy számított mezőt a pivotba ugyanazzal a matekkal. (Kimutatáseszközök/Képletek/Számított mező)

Előzmény: tt65 (13565)
joe.bacsi Creative Commons License 2010.12.06 0 0 13566

Előzmény: tt65 (13564)
tt65 Creative Commons License 2010.12.06 0 0 13565

bocs, "ennek lennék kiváncsi a napi átlagértékére" helyesen "ennek lennék kiváncsi a heti átlagértékére"

 

tt65 Creative Commons License 2010.12.06 0 0 13564

kis segítséget kérnék.

van egy naponta vezetett táblázat

két adat alapján napi értéket számol a kettő hányadosából

ennek lennék kiváncsi a napi átlagértékére

Sajnos azonban a napi hányadosok átlaga nem egyezik meg a hetti összértékekből képzett hányadossal.

 

lsd. alább:

 

nekem a 101% érték felel meg.

az alsó részen lévő pivot táblában is ezt az adatot szeretném látni, nem tudom mi a megoldás?

köszi előre is

szkripnyik Creative Commons License 2010.12.06 0 0 13563

Anyám!!!

 

De rég volt a hagyományos Basic program, és az ő filekezelése!

Miért lőjek ágyúval (FileSystemObject) verébre (hagyományos filekezelés)

:-)))

Előzmény: szkripnyik (13560)
szkripnyik Creative Commons License 2010.12.06 0 0 13562

Köszi!!!

 

Pont párhuzamosan írtuk!

 

Előzmény: Jimmy the Hand (13559)
Jimmy the Hand Creative Commons License 2010.12.06 0 0 13561

Hogy kell Backslast megadni ahhoz, hogy a fórummotor ne törölje ki? Már az sem jó, ha kettőt írok be?

"C:mappaalmappaakármi.txt" helyett minden esetben "C:*mappa*almappa*akármi.txt" értendő, és a * helyett backslash-t kell írni.

Előzmény: Jimmy the Hand (13559)
szkripnyik Creative Commons License 2010.12.06 0 0 13560

Szeretnék filet olvasni makróból:

 

Sub olvas()
    Const ForReading = 1, ForWriting = 2, ForAppending = 3
    Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
    Dim fs, f, ts, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    fs.OpenTextFile "d:moricka1.txt"            'Ellenőrzi egy file létezését
    Set f = fs.GetFile("d:moricka2.txt")         'Olvas egy másik filét
    Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)
    For i = 1 To 1000
    s = ts.ReadLine
    MsgBox s
    Next i
    ts.Close
End Sub

 

Kérdéseim a professzor urakhoz:

1. Hogyan lehet " On Error"-ral vagy valami mással lekezelni, ha nem létezik a file és a filevéget?

2. Miért térhet el az fs.OpenTextFile sorban és a Set f= fs.Getfile sorban a filenév?

    Gyakorlatilag leellenőrzöm az első létezését és olvasgatom a másodikat.

3. Hogyan tudnék bináris filet is végigolvasgatni?

 

A file létezés ellenőrzését megtaláltam: If (fs.FileExists("móricka.txt")) Then ......

Folyamatos olvasást megtaláltam:  s = ts.Read(1000) beolvassa (a következő) 1000 karaktert.

Maradt a filevég lekezelése....

Előzmény: szkripnyik (13535)
Jimmy the Hand Creative Commons License 2010.12.06 0 0 13559

1. Erre a célra a Dir függvényt használnám.

    If Dir("C:mappaalmappaakármi.txt", vbNormal) = "" Then
        MsgBox "Not exist."
    End If

 

A másik lehetőség, FileSystemObject használatával:

Set fs = CreateObject("Scripting.FileSystemObject")
If Not fs.fileexists("C:mappaalmappaakármi.txt") Then
MsgBox "Not exist."
End If

 

2. A FileSystemObject egy összetett objektum, nem egy fájlra vonatkozik. Inkább egy interfész a fájlrendszer elérésére. Ugyanazon FileSystemObject-en keresztül akárhány fájlt megnyithatsz. Másrészt, az OpenTextFile és a GetFile két különböző dolog. A GetFile egy fájl típusú változóhoz rendel hozzá egy konkrét fájlt, és akkor arra a fájlra ezen a változón keresztül tudsz hivatkozni, és vele (rajta) műveleteket végezni. Az OpenTextFile pedig megnyit egy szövegfájlt, vagy ha nincs, akkor létrehozza azt. Ez tehát nem a fájl meglétének ellenőrzése. Igazából az OpenTextFile-t úgy tudnád használni, ha TextStream típusú változóhoz rendelnéd a megnyitott fájlt, másképp nem tudom, hogyan hivatkoznál rá:

Dim ts As TextStream

Set ts = fs.OpenTextFile("d:moricka1.txt")

 

3. A FileSystemObject-ben nincs meg a lehetőséged bináris fájlolvasásra. Másképp kell megoldani:

 

    Dim FNumber As Long, NextValue As Byte
    FNumber = FreeFile
    Open "C:mappaalmappaakármi.dat" For Binary Access Read As FNumber
     While Not EOF(FNumber)
        Get FNumber, , NextValue
        Debug.Print NextValue
    Wend
    Close FNumber

 

Ha a NextValue változót Byte helyett Integer-ként deklarálod, akkor kétbájtonként olvassa a fájlt, ha Long-ként, akkor négyesével, stb.

 

Előzmény: szkripnyik (13535)
Delila10 Creative Commons License 2010.12.06 0 0 13558

Valami olyan beállítási lehetőségre gondoltam, amit egyszer megadva minden dokumentumomban rám bízza a formátum megadását. :)

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

a cellaformátum "szöveg"-re állításával

Előzmény: Delila10 (13556)
Delila10 Creative Commons License 2010.12.06 0 0 13556

 

Hol választhatom meg?

 

 

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

 

ps. azért megjegyzem, hoyg a felhasználó megválaszthatja, hoyg akarja é ezt az automatizmust avagy nem

Előzmény: Delila10 (13548)
NeomatiK Creative Commons License 2010.12.05 0 0 13554

Igen, ott néztem.

Így néz ki, kiloptam a képet:

 

Előzmény: Delila10 (13553)
Delila10 Creative Commons License 2010.12.05 0 0 13553

Nem Exceles beállítás.

Start menü-> Beállítások-> Vezérlőpult -> Területi és nyelvi beállítások-> Területi beállítások fül -> Idő

Pl. 16:56:33

Előzmény: NeomatiK (13552)
NeomatiK Creative Commons License 2010.12.05 0 0 13552

Nem találok a beállítások között ami rossz lenne.

Előzmény: Delila10 (13551)
Delila10 Creative Commons License 2010.12.05 0 0 13551

Azt hiszem, a Vezérlőpulton a Területi beállításokat kellene ellenőrizned, ha már az Excelnek 2 verziójában is hibásan jelentkezik az idő jelzése.

Előzmény: NeomatiK (13550)
NeomatiK Creative Commons License 2010.12.05 0 0 13550

Excel 2007-ben is ugyanez a heklyet, azaz pp:mm formátum ellenérre 0:12:34-et kell beírni, hogy 12:34 jelenjen meg a cellában.

Ha csak 12:34-et írok bele, akkor 34:00 lezs a cellában. A 12 meg megy az órákhoz, szerkesztőlécben 12:34:00 lesz.

 

Itt ezt nagyon elcseszték a programozók szerintem.

Előzmény: Delila10 (13548)
NeomatiK Creative Commons License 2010.12.05 0 0 13549

Csináltam már pár lapon, de ugyanaz az eredmény, kéne elé a 0:

 

Excel 2002-nél.

Előzmény: Delila10 (13548)
Delila10 Creative Commons License 2010.12.05 0 0 13548

Próbálkozz egy új lapon. Előfordul néha 1-1 hibás lap, többször találkoztam már ilyennel.

 

A kettőspontot mindenképp be kell vinni, másképp dátum + idő formátumra áll át a cella. Sajnos a fejlesztők olykor túlzásba viszik a felhasználó kiszolgálását, amivel több kárt okoznak, mint hasznot. Időnként direkt hátrányos a program "önállósága".

Előzmény: NeomatiK (13547)
NeomatiK Creative Commons License 2010.12.05 0 0 13547

De mint írtam előbb, nem az jelenik meg a cellában amit beírtam.

 

.

.

.

.

 

Közben most kipróbáltam, ha pl 14:15-öt akarok a cellába, akkor 0:14:15-öt kell beírnom.

 

Nincs valami olyan módszer, hogy a 0: -t ne kelljen az elején beírni. Nem is értem, hogy miért igényli így a beírást, hiszen pp:mm formátumot adtam meg neki.

Előzmény: Delila10 (13546)
Delila10 Creative Commons License 2010.12.05 0 0 13546

Csak az összegző cella formátuma legyen [pp]:mm, a többié pp:mm.

 

Robbantómester: szívesen.

Előzmény: NeomatiK (13545)
NeomatiK Creative Commons License 2010.12.05 0 0 13545

Eddig szöveg formátumban volt megadva az idő.

De így, hogy átállítottam pp:mm-re, beírni se tudom az időt.

Ha kettősponttal írom (xy:wz) be akkor nem az xy:wz jelenik meg. Ha vesszővel (xy,wz) így se az jelenik meg.

 

Ha [pp]:mm -re állítom a cella formátumát 15:16 -ot akarván

"15:16"-ot beírva 916:00 jelenik meg a cellában, a szerkesztőlécben 15:16:00 van.

 

Ha "15,16"-ot írok be 21830:24 jelenik meg, a szerkesztőlécben "1900.01.15  3:50:24" van.

Törölt nick Creative Commons License 2010.12.05 0 0 13544

Köszönöm.

Előzmény: Delila10 (13543)
Delila10 Creative Commons License 2010.12.05 0 0 13543

Nem számolja át az alapértelmezett napra az időt, hanem ami a szögletes zárójelek között van, azt teljes egészében kiírja.

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

a [] mit csinál pontosan?

Előzmény: Delila10 (13541)
Delila10 Creative Commons License 2010.12.05 0 0 13541

Az összegző függvény legyen =SZUM(tól:ig)/60, ennek a cellának a formátuma pedig [pp]:mm, ahogy joe.bacsi írta.

Előzmény: NeomatiK (13536)
joe.bacsi Creative Commons License 2010.12.05 0 0 13540

[pp]:mm

 

:)

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

csak mert nekem összeadja.

Nem csak az a baj, hogy pl. 15:30:00 + 15:30:00 az = pp:mm formátummal 00:00 lesz

Előzmény: NeomatiK (13538)
NeomatiK Creative Commons License 2010.12.04 0 0 13538

Nincs, csak pp:mm formátum van benne.

 

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

nézd meg a szerkesztőlécet, mi van benne? Van benne év, hónap, nap?

 

Előzmény: NeomatiK (13536)
NeomatiK Creative Commons License 2010.12.04 0 0 13536

Sziasztok!

 

Van egy oszlop....

benne "Egyéni" formátumon belül "pp:mm" -nak formázva (perc:másodperc) a cellák.

Szeretném összeadni, de nem sikerült. 0-t ad eredményül a szumma függvény, pedig ugyanaz pp:mm formátumra van állítva a cella.

Mi lehet a gubanc?

Köszi előre is!

szkripnyik Creative Commons License 2010.12.04 0 0 13535

Szeretnék filet olvasni makróból:

 

Sub olvas()
    Const ForReading = 1, ForWriting = 2, ForAppending = 3
    Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
    Dim fs, f, ts, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    fs.OpenTextFile "d:moricka1.txt"            'Ellenőrzi egy file létezését
    Set f = fs.GetFile("d:moricka2.txt")         'Olvas egy másik filét
    Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)
    For i = 1 To 1000
    s = ts.ReadLine
    MsgBox s
    Next i
    ts.Close
End Sub

 

Kérdéseim a professzor urakhoz:

1. Hogyan lehet " On Error"-ral vagy valami mással lekezelni, ha nem létezik a file és a filevéget?

2. Miért térhet el az fs.OpenTextFile sorban és a Set f= fs.Getfile sorban a filenév?

    Gyakorlatilag leellenőrzöm az első létezését és olvasgatom a másodikat.

3. Hogyan tudnék bináris filet is végigolvasgatni?

 

A választ előre is köszönöm.

Ba_G Creative Commons License 2010.12.03 0 0 13534

Kösz mindenkinek a gyors segítséget, tanulmányozom az irodalmat.

Előzmény: SQLkerdes (13533)
SQLkerdes Creative Commons License 2010.12.02 0 0 13533

Mégsem.

 

Az itt leírt módszer jobb megoldás.

SQLkerdes Creative Commons License 2010.12.02 0 0 13532

Ezt a kódot alkalmazd alkotó módon:

 

Sub valami()

Range(Columns(7), Columns(Columns.Count)).Hidden = True

End Sub

Előzmény: Ba_G (13530)
Törölt nick Creative Commons License 2010.12.02 0 0 13531

1. rejtsd el az összes többi oszlopot/sort.

2. cellavédelemnél állítsd be hogy ne lehessen kijelölni a többi cellát

Előzmény: Ba_G (13530)
Ba_G Creative Commons License 2010.12.02 0 0 13530

Előre is bocs a láma kérdésért:

 

Van egy piszlicsáré 3 oszlop 8 soros táblám (x2: magyar, angol), aminek csak 7 cellájába (1 oszlopba) szeretném engedélyezni az adatbevitelt. Megoldottam "érvényesítéssel", még azt is, hogy mondjuk egy képernyőnyi felületen belül ne lehessen beleírni ill. a meglévő fix adatok ne legyenek változtathatók (+ némi VBA machinációval, hogy kitöltetlenül ne lehessen elmenteni vagy bezárni), de nyilván elegánsabb lenne, ha csak a 3x8(x2 , azaz mondjuk 3x18) as mátrix lenne aktív, vagy egyáltalán: látható. Erre van egyszerű megoldás?

 

A VBA alighanem ágyúval verébre volt, annál is inkább, mert kiderült, menteni nem is szükséges, csak e-mailen küldeni Excelen belülről (azaz Groupwise-on, de most ez talán mindegy), a levelek kerülnek archívumba mellékletestül. (Remélem jól vettem le a feladatot és már nemigen változik a "kiírás". Hozzátenném, hogy nem vagyok pogromozó, szoftvermérnök stb., csak szükségmegoldás :) arra, hogy egy üzemviteli hibanaplózást megoldjunk...)

 

EIK!

Törölt nick Creative Commons License 2010.12.02 0 0 13529

 

Köszönöm a válaszokat, így végre sikerült a nyomtatás. A combobox -ot, pedig megnézem.

A régebbi excell-ben mindent pillanatok alatt megtaláltam, de ez a 2007-es a sok csiribiriséggel néha nagyon kiakaszt. Nem vagyok profi a témában, nem tudom miért nincs legalább egy "váltás a hagyományos nézetre" opció vagy ilyesmi. Köszönöm még 1x! Üdv. Kr

Törölt nick Creative Commons License 2010.12.02 0 0 13528

Ez: by súgó

 

Oldalak számozási sorrendjének módosítása

Az Excel alapértelmezésben a munkalapon fentről lefelé, majd balról jobbra számozza és nyomtatja az oldalakat, de a számozás és nyomtatás iránya módosítható balról jobbra, majd fentről lefelé irányúra.

  1. Váltson arra a munkalapra, amelynek a számozási sorrendjét módosítani szeretné.
  2. A Lap elrendezése lap Oldalbeállítás csoportjában kattintson a párbeszédpanel-megnyitó gombra az Oldalbeállítás párbeszédpanel megnyitásához.

  1. A Lap lap Oldalak sorrendje csoportjában jelölje be a Le, majd jobbra folytatva vagy a Jobbra, majd lefelé folytatva választógombot.

 Tipp   A választott irány az előnézeti mezőben látható.

 

Vagy átírod kézzel

Előzmény: Törölt nick (13526)
SQLkerdes Creative Commons License 2010.12.01 0 0 13527

Az első probléma megoldásához sok szerencsét kívánok, a második esetében a combobox a barátod.

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

Sziasztok

Egy kérdés: 2007-es excell-ben hogyan lehet felcserélni a nyomtatásra szánt oldalak sorszámát? Amit első lapon szeretnék nyomtatni az ok, de a másodikat 3.-nak adja, a 3.-at 2.-nak, stb. Az a gondom, hogy néha csak 2 oldalt szeretnék, de így meg kell keresnem a táblázatban hol kezdődik a következő. A fél netet végignéztem, de nem találom a konkrét leírást, szétvet már az ideg.

Még egy: az érvényesítés után a legördülő lista elemeinek a számát lehet változtatni valahogy? Van egy 300 tételes lista, de mire végiggörgetem és megtalálom amit keresek, kihullik a hajam. Alapból csak 8 elemet jelenít meg, nem lehet ezt bővíteni?

Köszönettel:Kr

 

Törölt nick Creative Commons License 2010.12.01 0 0 13525

van hát, hisz lehet konvertálni sap-ból ;)

Előzmény: E.Istvan (13524)
E.Istvan Creative Commons License 2010.12.01 0 0 13524

Elég sokat. Nem biztos, hogy felhasználó létemre helyesen tudom a nevüket. 

PS, PM, FI, CO, HR

De kivágnak innen minket. Vagy a kérdésnek Exceles vonatkozása is van? :o)

Előzmény: Törölt nick (13514)
missparker Creative Commons License 2010.11.30 0 0 13523

Köszönöm! Ki fogom próbálni, beszámolok a - remélhetőleg - sikerről.

Előzmény: Törölt nick (13510)
wawabagus Creative Commons License 2010.11.30 0 0 13522

Köszi mind kettőtöknek a tippeket!!!

:-)

 

Nincs a cégnek 2007-es excele :-DDD...

 

SQLkerdes Creative Commons License 2010.11.30 0 0 13521
Előzmény: wawabagus (13516)
boraka Creative Commons License 2010.11.30 0 0 13520

Az Excel 2007 -> 1 048 576 sort tud kezelni

Előzmény: wawabagus (13519)
wawabagus Creative Commons License 2010.11.30 0 0 13519

A 250.000-et sikerült 95.000-re csökkenteni

:-DDDD

 

hát még ezzel sem megyek sokra :-)!

Előzmény: wawabagus (13518)
wawabagus Creative Commons License 2010.11.30 0 0 13518

Szia!

Jessszus, ez nem hangzik jól :-(((((((((((((((((...

SQL tudásról nálam nem beszélhetünk...

HMMM...

Hát akkor el kell gondolkodjak valami más megoldáson :-((.

 

250.000 sorom van ezt excelbe nem tudom bepaszírozni.

Nincs valami alternatív ötleted?

 

Nekem most nem jut eszembe semmi...

 

Talán valahogy összevonhatnám access alatt a sorokat...

 

Próbálkozom...

 

Köszi az infót!!

 

:-)

Yo

 

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

Hát én sajnos elég gyakran találkozom ezzel.

A pivotot újra meg kell csinálni (Adatkapcsolatot létrehozni (ConnectionString, sql kódot átmásolni MSQUERY-be.)

Nem egyszerű. Mélyebb tudást igényel adatbáziskezeles szinten, mint egy sima excelezés

Előzmény: wawabagus (13516)
wawabagus Creative Commons License 2010.11.30 0 0 13516

Sziasztok!

Viszot lenne még egy kérdésem :-(...

 

2003-as excelben szeretnék egy 2007-es access adatbázisra épülő pivotot csinálni.

 

Tehát a pivot excelben lenne, de az adat maga accessben, mert hogy nagyon sok.

 

Valamiért nem akar működni...

 

Kiválasztom hogy milyen mezőket szeretnék, next, next...és nem tudja megcsinálni.

 

Találkoztatok már ilyesmivel?

 

Köszi a tanácsokat!!

Y

wawabagus Creative Commons License 2010.11.30 0 0 13515

boraka, robbantomester, SQLkerdes!!

 

NAGYON KÖSZÖNÖM a megoldást!!

 

Remekül működik!!!!!!!!

 

:-)

 

Örök hála

Törölt nick Creative Commons License 2010.11.30 0 0 13514

modulszinten melyeket?

Előzmény: E.Istvan (13501)
Sir Spangi Creative Commons License 2010.11.30 0 0 13513

Köszönöm!

 

Este kipróbálom, szerintem a 3. variációt fogom használni, ha működik. :-D

 

Előzmény: E.Istvan (13512)
E.Istvan Creative Commons License 2010.11.30 0 0 13512

A cellába nem csak az óra:percet kell felvinni, hanem a dátumot is. Akkor jól fog számolni.

A másik lehetőség, hogy két oszlopot vezetsz, az egyikbe írod a dátumot, a másikba az időpontot. Majd a két értéket összeadod. És az így összeadott értékekre számolod ki a két időpont közötti különbséget.

Egy esetleges harmadik lehetőség, hogy képlettel oldod meg, ekkor nem kell dátum. Például, ha a befejezés időpontja kisebb, mint a kezdés időpontja, akkor feltételezzük hogy egy nap eltelt. =ha(b1<a1;b1+1-a1;b1-a1)

Előzmény: Sir Spangi (13511)
Sir Spangi Creative Commons License 2010.11.30 0 0 13511

Sziasztok!

 

Egy Excel táblázattal kapcsolatos problémámra szeretnék segítséget kérni.

 

Csináltam egy táblázatot, amellyel a munkaidőmet(kezdés-végzés), km-ert, men.levél sorszámot stb. vezetem évek óta. Az Excel göngyölíti, kiszámolja a fogyasztást meg mindent amit akarok.

Eddig minden rendben ment, kiszámolta az óráimat (is), a kezdés-végzés adatok alapján.

Mostanában viszont vannak olyan műszakjaim, amikor éjszakás vagyok, pl. 19.00-kor kezdek, és másnap reggel 7.00-kor végzek. Ezt jelenleg nem tudja feldolgozni.

Nem találok megoldást, nem tudom kezeltetni a táblázattal.

Azt szeretném megkérdezni, hogy mi a módja annak, hogy nappali, és éjszakás, másnapra átnyúló időpontokat is tudjak vele számoltatni?

 

Előre is köszi a segítséget!

P.S.: Valószínűleg csak késő délután leszek, mert sajnos menni kell a 2. munkába. :-D

Törölt nick Creative Commons License 2010.11.29 0 0 13510

Kimutatás varázsló - Több tartomány (összesítés) Ha nem találod a 2007-esben, akkor fel kell tenned a gyorselérési eszköztárra: Excel beállításai - Testreszabás - Kimutatáseszközök|Beállítás lap

 

Ez pontosan jó erre amit írsz.

Előzmény: missparker (13509)
missparker Creative Commons License 2010.11.29 0 0 13509

Sziasztok,

 

Bocs, hogy így ismeretlenül, de szeretném a segítségeteket kérni, ebbe beletört a bicskám:

 

Adva van 20 sheet, rajta sok-sok sor és oszlop (többezer sor, 90 oszlop). Minden sheet-en van egy vagy két oszlop ("leírás1" és "leírás2"), ami tartalmazhat egy bizonyos karatersort (cellaformátum: szöveg), ami nekem most érdekes ("cukor"). Csinálnom kell egy olyan összesítő sheet-et, ami az összes sheet összes olyan sorát tartalmazza, ami tartalmazza a "leírás1" és/vagy "leírás2" oszlopban a  "cukor"-t.

 

Vmi ötlet esetleg? (magyar 2007-ben próbálkozom...)

boraka Creative Commons License 2010.11.29 0 0 13508

Szerintem is jó kis feladat, az eseménykezelős már müxik, kiváncsian várom a végleges UDF-es megoldást. ;-) Jó lenne megtudni, hogy MixM topictárs tudta-e hasznosítani az eddigieket.

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

Viszont tény, hogy érdekes feladat ;) Számomra  főleg az UDF-es.

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

ps. egyébként teljesen feleslegesnek tartok erre scriptes megoldást (legyen az UDF vagy eseménykezelős) mert ha jól értem a cél itt csupán a figyelem felkeltése, hogy túl sok munkanap követné egymást - ami gondolom PTK-ba is ütközik. Erre tökéletesen elég, ha az a "P" betű lesz színes, ami után 6-nál több munkanap van. Ezt pedig feltételes formázással meg is lehet csinálni a beépített függvények segítségével. (Lsd "Előzmény")

Előzmény: Törölt nick (13466)
Törölt nick Creative Commons License 2010.11.29 0 0 13505

Ezt a függvényt nem egészen értem. Leírásodból azt véltem kivenni, hogy a cella feltételes formázásában, a "képlet értéke" módban kell használni.

Ez logikusan azt jelentené, hogy ha pl. a C3 cella formázásánál használom, akkor a függvénynek a C3 cellára vonatkozóan kellene meghatároznia IGAZ vagy HAMIS értéket, és a feltételes formázás ettől függően pirosít vagy nem pirosít.


 - Így van.

 

És egy észrevétel: a 'sor' változót szerintem Byte helyett Long típusra kellene beállítani, mert Byte-ként legfeljebb 255 lehet az értéke, egy excel munkafüzet pedig legalább 65536 sort tartalmaz.

 - Ez szándékos volt, mert tudtam, hogy nem leszz 255-nél több.

 

 

 

  De mivel a függvény Volatile, újra kiszámolja C3-ra, amivel újra felülírja C4-et, és ez így szerintem végtelen ciklus. Nekem lefagyott az Excelem, amikor kipróbáltam.

 - Ha az utolsó If... End If nélkül próbálod, akkor működik, ez esetben csak azokat a "P"-ket színezi, amelyek után 6-nál több <> "P" van.

Ezzel az If-el az volt a célom, hogy True értéket kapjanak azok a cellák is, amelyeknél a "P" után 6-nál több <> "P" van.

Hogy végtelen az lehet... Nem tudtam hogy fog viselkedni a volatile, ha az utolsó If .... End If -ben lévő sorokkal "utólag" "belepiszkálok"

 

 

 

 

Előzmény: Jimmy the Hand (13498)
mouser Creative Commons License 2010.11.29 0 0 13504

egyébként tényleg működik, bár egyelőre nem volt időm megérteni, hogy mitől :-)

 

és köszi :-)

Előzmény: Jimmy the Hand (13503)
Jimmy the Hand Creative Commons License 2010.11.29 0 0 13503

Köszi, az tényleg kimaradt :)

Előzmény: Delila10 (13502)
Delila10 Creative Commons License 2010.11.29 0 0 13502

Bocsi, kimaradt egy "kacsa csőre".

 

=SZORZATÖSSZEG((Munka1!$A$1:$A$365<=B1)*(Munka1!$A$1:$A$365>=A1)*(Munka1!$B$1:$B$365))

Előzmény: Jimmy the Hand (13500)
E.Istvan Creative Commons License 2010.11.29 0 0 13501

Igen, például SAP R/3

Előzmény: Törölt nick (13445)
Jimmy the Hand Creative Commons License 2010.11.29 0 0 13500

Tegyük fel, hogy Munka1 lapon, A1:A365-ben vannak a dátumok, B1:B365-ben az értékek, továbbá Munka2 A oszlopában vannak az intervallumok kezdő dátumai, B oszlopban pedig a végdátumok.

Ez esetben pl. C1-be ez a képlet kerül:

=SZORZATÖSSZEG((Munka1!A1:A365<=B1)*(Munka1!A1:A365=A1)*(Munka1!B1:B365))

Előzmény: mouser (13497)
E.Istvan Creative Commons License 2010.11.29 0 0 13499

Ha 2007-es Exceled van akkor:

=SZUMHATÖBB(értéket tartalmazó oszlop;dátum oszlop;">="&dátum eleje cella;dátum oszlop;"<="&dátum vége cella)

Előzmény: mouser (13497)
Jimmy the Hand Creative Commons License 2010.11.29 0 0 13498

Ezt a függvényt nem egészen értem. Leírásodból azt véltem kivenni, hogy a cella feltételes formázásában, a "képlet értéke" módban kell használni.

Ez logikusan azt jelentené, hogy ha pl. a C3 cella formázásánál használom, akkor a függvénynek a C3 cellára vonatkozóan kellene meghatároznia IGAZ vagy HAMIS értéket, és a feltételes formázás ettől függően pirosít vagy nem pirosít.

Mivel ezt a formázást az összes cellára be kell állítani, nem értem, hogy a függvény miért akarja a szomszédos cellák értékét felülírni? Egyrészt, nem biztos, hogy csak P betű és üres cella van ebben a táblázatban, így a függvényed adatvesztést okozhat. Másrészt, a szomszédos cellák pirosságát ugyanezzel a függvénnyel kellene meghatározni, nem?

Tegyük fel, hogy C3 és C4 cellák feltételes formázásában szerepel ez a függvény, tehát C3 piros, ha ErrRed(C3)=IGAZ, C4 pedig piros, ha ErrRed(C4)=IGAZ

Excel kiszámolja C3-ra. Közben felülírja C4 értékét. Erre, mivel a C4 feltételes formázás bemenő értéke megváltozott, kiszámolja C4-re is. De mivel a függvény Volatile, újra kiszámolja C3-ra, amivel újra felülírja C4-et, és ez így szerintem végtelen ciklus. Nekem lefagyott az Excelem, amikor kipróbáltam.

 

Lehet, hogy nem jól értem a felhasználás módját, de nekem itt valami nem gömbölű...

 

És egy észrevétel: a 'sor' változót szerintem Byte helyett Long típusra kellene beállítani, mert Byte-ként legfeljebb 255 lehet az értéke, egy excel munkafüzet pedig legalább 65536 sort tartalmaz.

Előzmény: Törölt nick (13493)
mouser Creative Commons License 2010.11.28 0 0 13497

helló mindenki!

 

excel problémám a következő. van egy munkalapom az év napjaival, hozzárendelve minden naphoz egy érték. egy másik munkalapon pedig minden sorban egy időintervallum egy kezdő és egy végdátummal. (tetszőleges számú nappal egy intervallumban,).

 

namost a feladat az, hogy minden sorban adjam össze az ahhoz az intervallumhoz intervallumhoz tartozó értékeket egy új oszlopban vmi függvénnyel, de eddig nem jött össze, úgyhogy hilfe!

Törölt nick Creative Commons License 2010.11.28 0 0 13496

az (As Boolean)  a fgv-hez nem jó, mert futásközben ettől eltérő értéke is van. Az (ER As Range) jó, de szerintem emiatt sem lehet hiba (illetve nem is volt)

 

Ha nincs a kommentezett sor, akkor megy szépen a függény, helyesen true értéket ad azokra a cellákra, amelyekben "P" van és utána 6-nál több egyéb cella. A kommentezett sor előtti sorban meghatározott Range tartalmazza  azt a tartományt, amelyekre még true-t kell kapni, hogy a feltételes formázás érvényesüljön.

Ezt akarom a kommentezett sorral true-ra állítani, de a függvény hibaértékekkel tér vissza. (Nem vba hiba)

 

Előzmény: boraka (13494)
Törölt nick Creative Commons License 2010.11.28 0 0 13495

ErrRedColor változó tényleg nem volt deklarálva de hibát nem okoz ettől.

ERRange -vel az a tartományt határozom meg, amelyben a (következő) "P" betűt kell keresni

 

 

Előzmény: boraka (13494)
boraka Creative Commons License 2010.11.28 0 0 13494

Dehogy haragszunk, sőt, a több különböző megoldás jó tanulási lehetőség.

Elsőként az alábbit javasolnám, ill. kérdezem:

 

Function ErrRed(ER As Range) As Boolean

Dim ERRange As Range, oszlop As Byte, sor As Byte, ERRangeColor As Range
Dim ErrRedColor As Byte 'ez nem volt definiálva

Ezt nem igazán értem miért kell:

Set ERRange = Range(Cells(sor, oszlop + 1), Cells(sor, oszlop + 31))

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

Ne haragudjatok, egy kicsit belecsaptam én is...

Az a helyzet, hogy ezt szerintem pár soros UDF-el meg lehet csinálni, amit feltételes formázásként kell megadni és boolean-t ad vissza a fgv.

Most így néz ki, de szeretném a segítségeteket kérni:

 

Function ErrRed(ER)


Dim ERRange As Range, oszlop As Byte, sor As Byte, ERRangeColor As Range
oszlop = ER.Column
sor = ER.Row
Set ERRange = Range(Cells(sor, oszlop + 1), Cells(sor, oszlop + 31))
Application.Volatile
If ER = "P" Then ErrRed = Application.Match("P", ERRange, 0) Else ErrRed = 6
ErrRedColor = ErrRed
ErrRed = ErrRed > 7
If ErrRed Then


Set ERRangeColor = Range(Cells(sor, oszlop + 1), Cells(sor, oszlop + ErrRedColor - 1))
ERRangeColor.Value = ErrRed ' ez az egy sor nem jó, nem tudom hogy kell a "range" cella értékeit "IGAZ"-ra állítani


End If


End Function

Előzmény: boraka (13492)
boraka Creative Commons License 2010.11.28 0 0 13492

Na, akkor az alábbi a megoldási javaslatunk MixM topictárs felvetésére:

 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim meddig As Integer
Dim figyel As Integer

 

  meddig = Cells(Target.Row, Columns.Count).End(xlToLeft).Column

  figyel = 1
 
  Range("A" & Target.Row).EntireRow.Interior.ColorIndex = xlNone
   
  For i = 1 To meddig
    If UCase(Cells(Target.Row, i)) = "P" Then
      If i - figyel >= 6 Then
        Range(Cells(Target.Row, figyel), Cells(Target.Row, i)).Interior.ColorIndex = 3
        figyel = i
      Else: figyel = i
      End If
    End If
  Next i
 
  If meddig - figyel >= 6 Then Range(Cells(Target.Row, figyel), Cells(Target.Row, meddig)).Interior.ColorIndex = 3

 

End Sub

  

Előzmény: Delila10 (13491)
Delila10 Creative Commons License 2010.11.28 0 0 13491

A sor végének színezéséhez még kell egy sor a Next után.

 

If meddig - figyel >= 6 Then Range(Cells(Target.Row, figyel), Cells(Target.Row, meddig)).Interior.ColorIndex = 3

 

Szerintem az első feltételnél is 6-tal kell vizsgálni: If i - figyel >= 6 Then

(#13426)

Előzmény: boraka (13490)
boraka Creative Commons License 2010.11.27 0 0 13490

Ja, vagy úgy, akkor itt egy következő javaslat:

 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim meddig As Integer
Dim figyel As Integer

 

  meddig = Cells(Target.Row, Columns.Count).End(xlToLeft).Column 

  figyel = 1
 
  Range("A" & Target.Row).EntireRow.Interior.ColorIndex = xlNone
   
  For i = 1 To meddig
    If UCase(Cells(Target.Row, i)) = "P" Then
      If i - figyel >= 7 Then
        Range(Cells(Target.Row, figyel), Cells(Target.Row, i)).Interior.ColorIndex = 3
        figyel = i
      Else: figyel = i
      End If
    End If
  Next i
 
End Sub

Előzmény: Delila10 (13489)
Delila10 Creative Commons License 2010.11.27 0 0 13489

Ezt én úgy értelmezem, hogy nem pihenőnap nem lehet több, vagyis ha a sor elején több nem P-s cella van, az sem jó. Mondjuk csak a 8. napot akarják kiadni szabadnapnak.

Lehet, hogy nem jó a meglátásom.

Előzmény: boraka (13488)
boraka Creative Commons License 2010.11.27 0 0 13488

Szia!

 

Nem értem. A nem "P"-t tartalmazó cellákat miért kellene színezni? A feladatban nem az van, hogy a "P"-k közötti cellákat kell színezni, ha az több mint 6?

Előzmény: Delila10 (13487)
Delila10 Creative Commons License 2010.11.27 0 0 13487

Szia!

 

Ha a sor 6, vagy több nem P-t tartalmazó cellával kezdődik, vagy végződik, azokat nem színezi a makró.

Előzmény: boraka (13484)
boraka Creative Commons License 2010.11.27 0 0 13486

Rosszul látod ;-)

Előzmény: Jimmy the Hand (13485)
Jimmy the Hand Creative Commons License 2010.11.27 0 0 13485

Nem vagyok passzív, csak mostanában annyi dolgom van, hogy nem nagyon marad időm ilyesmire.

De úgy látom, nagyon jól elvagytok nélkülem is :)

Előzmény: boraka (13477)
boraka Creative Commons License 2010.11.27 0 0 13484

"ennek is az a hibája, hogy a sorok elejét és végét nem rúzsozza ki."

 

Nem értem mire gondolsz

Előzmény: Delila10 (13483)
Delila10 Creative Commons License 2010.11.27 0 0 13483

Ez nagyon jól néz ki, de ennek is az a hibája, hogy a sorok elejét és végét nem rúzsozza ki.

Ha megoldod ezeket, nem bajlódom az enyémmel, úgyis csak este felé leszek számítógép közelében. Az is jó, hogy eseményt kezelsz, nem kell külön indítani.

 

Az én makrómnál a sor eleji ellenőrzéshez a Next oszlop mögé be kell tenni a t=False sort.

 

Előzmény: boraka (13479)
MixM Creative Commons License 2010.11.26 0 0 13482

Nagyon szépen köszönöm mindenkinek az ötleteket és a segítséget!!!

Örülök, hogy létezik még olyan fórum, ahol nem csak lehet segítséget kérni, de kapok is:)

Mindenkinek további szép napot!!!

SQLkerdes Creative Commons License 2010.11.26 0 0 13481

De az enyém végéről nem maradt le!

 

Na, jóccakát mindenkinek én mára szögre akasztom a klaviatúrát!

Előzmény: boraka (13480)
boraka Creative Commons License 2010.11.26 0 0 13480

Csupa kisbetűvel írtam, igaz a végéről lemaradt a ;-))

Előzmény: SQLkerdes (13478)
boraka Creative Commons License 2010.11.26 0 0 13479

Remélem, már ez is egy jó megoldás lesz:

 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim meddig As Integer
Dim figyel As Integer

 

  meddig = Cells(Target.Row, Columns.Count).End(xlToLeft).Column 

  figyel = 0
 
  Range("A" & Target.Row).EntireRow.Interior.ColorIndex = xlNone
   
  For i = 1 To meddig
    If UCase(Cells(Target.Row, i)) = "P" Then
      Select Case figyel
        Case 0
          figyel = i
        Case Else
          If i - figyel >= 7 Then
            Range(Cells(Target.Row, figyel), Cells(Target.Row, i)).Interior.ColorIndex = 3
            figyel = i
          Else: figyel = i
          End If
      End Select
    End If
  Next i
 
End Sub

Előzmény: boraka (13470)
SQLkerdes Creative Commons License 2010.11.26 0 0 13478

Jól!

De azért nem kell velem ordítani :-)

 

(ezt a technikát már használtam máskor, de validation-nel nem tűnik működni, hm...)

Előzmény: boraka (13476)
boraka Creative Commons License 2010.11.26 0 0 13477

Jimmy! Nagyon passzív vagy mostanában.

Előzmény: Jimmy the Hand (13427)
boraka Creative Commons License 2010.11.26 0 0 13476

Jól sejtem, hogy nem próbáltad ki?

Előzmény: SQLkerdes (13473)
boraka Creative Commons License 2010.11.26 0 0 13475

Próbáld ki ezt, nálam hibakezelés nélkül sem akad ki:

 

ActiveSheet.UsedRange.Validation.Delete

Előzmény: wawabagus (13468)
Törölt nick Creative Commons License 2010.11.26 0 0 13474

Ez nem jó a validációs listák megkereséséhez?:

 

.SpecialCells(xlCellTypeAllValidation).Select

 

makrórögzítő...

(ctrl+g, irányított, Adatérvényesítés bejelöl...)

 

 

Előzmény: wawabagus (13472)
SQLkerdes Creative Commons License 2010.11.26 0 0 13473

Ez a kód itt (a lenti linkről másolva):

Sub a()

Dim r As Range

Set r = Intersect(ActiveSheet.UsedRange.SpecialCells(xlCellTypeAllValidation), ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible))

If Intersect(ActiveCell, r) Is Nothing Then MsgBox "Cell has no validation"

Else MsgBox "Cell has validation"

End If

End Sub

 

Szerintem ha a fenti Activecell object helyett a worksheets(akarmennyi).usedrange objectet használod, akkor is működik (azt nézi meg, hogy van-e közös halmaza két range-nek, a range-ek akármekkorák lehetnek).

 

Szóval nem kell cellánként megnézni.

Előzmény: wawabagus (13472)
wawabagus Creative Commons License 2010.11.26 0 0 13472

Szia!

Köszi.

Pont ezen a site-on jártam már és olvasgattam. De nem találtam ott megoldást.

 

Megnézem mégegyszer, de amiket kínálgatnak az cellánkénti ellenőrzés...

 

Az a baj, hogy kb 50 db fájlt akarok összemásolni egy helyre és ha elkezdi őket cellánként ellenőrizgetni...háááát...

 

Na, hétfőn újult erőkkel :-)))...

 

Köszi a segítséget!!

 

És jó hétvégét mindenkinek!!

Y

 

Előzmény: SQLkerdes (13471)
SQLkerdes Creative Commons License 2010.11.26 0 0 13471

Itt:  http://www.mrexcel.com/forum/showthread.php?t=353536 van néhány érdekes technika a validation list létezésének ellenőrzésére.

Nem tűnik nativ lehetőségnek...

Előzmény: wawabagus (13469)
boraka Creative Commons License 2010.11.26 0 0 13470

De igen, próbáltam, de szerettem volna egy másik megoldást is.

Második nekifutásra ezt szögeltem össze:

 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim meddig As Integer
Dim figyel As Integer

 

  meddig = Cells(Target.Row, Columns.Count).End(xlToLeft).Column 'oszlopok száma az aktuális sor értékei alapján
  figyel = 0
 
  Range("A" & Target.Row).EntireRow.Interior.ColorIndex = xlNone
   
  For i = 1 To meddig
    If UCase(Cells(Target.Row, i)) = "P" Then
      Select Case figyel
        Case 0
          figyel = i
        Case Else
          If i - figyel >= 7 Then
            Range(Cells(Target.Row, figyel), Cells(Target.Row, i)).Interior.ColorIndex = 3
            figyel = i
          End If
      End Select
    End If
  Next i
 
End Sub

 

  

 

Előzmény: Delila10 (13457)
wawabagus Creative Commons License 2010.11.26 0 0 13469

Fordítva:

 

 

    On Error Resume Next

    Selection.validation.Delete
   

Előzmény: wawabagus (13468)
wawabagus Creative Commons License 2010.11.26 0 0 13468

Szia!

 

Sehol nem találtam arra kódot hogyan lehet megállapítani van-e validációs lista vagy sem a sheeten...

 

De arra gondoltam, hogy be lehetne vetni egyszerűen egy hiba kezelést...

Ha hiba merül fel /mert ugye nincs mit törölni/, akkor menjen tovább

De nem tudom jó helyre raktam-e...vagy tiszta baromság amivel próbálkozom...

 

 

    Workbooks(1).Activate
    Cells.Select
    
   
    Selection.validation.Delete
    On Error Resume Next

    
    Workbooks(i).Sheets(1).UsedRange.Copy

 

Szerinted van ennek értelme?

Nem működik :-DDD, de nem vagyok biztos abban, hogy emiatt

Előzmény: SQLkerdes (13462)
Törölt nick Creative Commons License 2010.11.26 0 0 13467

Megj.: Ebbe bele kéne tenni azt is feltételes formázással, hogy a hétvégék oszlopa automatikusan sárga legyen

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

Ezt az egyszerű képletet  feltételes formázásnak kell megadnod (a C4 cellára állva január munkalapon):

=HA(C4="P";HOL.VAN("P";D4:AG4;0);6)>6

Ezután a formátum másolóval ("ecset") másold át a teljes táblázatra.

Azok a "P"-k lesznek pirosak, amelyek után hatnál több munkanap van.

Az eredmény ugyanaz, mintha a hatnál több munkanap lenne piros: Rögtön látni fogod hol van hiba.

Visszaküldöm a file-t

 

Előzmény: MixM (13464)
Delila10 Creative Commons License 2010.11.26 0 0 13465

Azt, hogy mi történt az 5. és 36. sorban, csak a füzetben lehetne megnézni.

Volt két hiányosság a makrómban, az elsőt kijavítottam, a másodikra most nem érek rá.

Az első hiba, hogy ha a sorban az első P előtt 6, vagy annál több nem P van, nem színezte a sor elejét.

A második hiba, hogy a sor végét sem, ha az utolsó 6, vagy annál több cella nem P.

 

Sub mm()
    Dim oszlop As Integer, uoszlop As Integer, sor As Integer, usor As Integer
    Dim kezd As Integer, veg As Integer, t As Boolean
    
    Cells().Interior.ColorIndex = xlNone
    uoszlop = ActiveSheet.UsedRange.Columns.Count
    usor = ActiveSheet.UsedRange.Rows.Count
    
    For sor = 1 To usor
        For oszlop = 1 To uoszlop
            If oszlop > 5 And t = False And Cells(sor, oszlop) = "P" Then
                Range(Cells(sor, 1), Cells(sor, oszlop - 1)).Interior.ColorIndex = 3
                kezd = oszlop + 1
            End If
            
            If Cells(sor, oszlop) = "P" And t = False Then
                kezd = oszlop
                t = True
                GoTo Kov
            End If
            
            If Cells(sor, oszlop) = "P" And t = True Then
                veg = oszlop
                If veg - 1 - kezd > 5 Then
                    Range(Cells(sor, kezd + 1), Cells(sor, veg - 1)).Interior.ColorIndex = 3
                End If
                kezd = veg
            End If
            
          
Kov:
        Next oszlop
    Next sor
End Sub

Előzmény: MixM (13464)
MixM Creative Commons License 2010.11.26 0 0 13464

Azt hittem egyszerűbb a feladat, de lehet hogy csak nekem tűnik bonyolultnak amiket írtok. Mindenesetre örülök és köszönöm, hogy foglalkoztok vele és próbáltok segíteni:)

Lefuttattam a makrót, az első 5 sorban ki is pirosította a hibát(szándékosan tettem bele párat:)), de a többin nem jelzi a problémát, majd a 36. sorban ismét pirosított:)

 

Azt hiszem el kezdek komolyabban foglalkozni a makrókkal:)

Előzmény: Delila10 (13457)
wawabagus Creative Commons License 2010.11.26 0 0 13463

Ahaaaaaaaaaaaa...:-)

 

Milyen hülye ez a VBA

 

:-D

 

Köszi!

 

Előzmény: SQLkerdes (13462)
SQLkerdes Creative Commons License 2010.11.26 0 0 13462

Csak tippelek, de azt gondolom, hogy a delete előtt akad el a kivitelezés.

VBA benéz a fiókba, turkál mert keresi a Validation object-et.  Nem találja, panaszkodik.

Annyi esze nincs, hogy észrevegye, hogy úgyis törölni akarod, szóval lényegében nem számít, hogy nincs.  Mivel a VBA nem a lényeget nézi, hanem a formális parancsot, kiakad. 

Előzmény: wawabagus (13461)
wawabagus Creative Commons License 2010.11.26 0 0 13461

Sziasztok!

 

SQL Kérdés és boraka köszi a segítséget!!!

Tök jó így...kijavítottam és már szuperul működik.

 

 

De én egyszerűen nem értem a logikáját az excelnek.

 

Ha ez a kód normálisan működik:

 

    Workbooks(1).Activate
    Cells.Select
    Selection.validation.Delete

 

Akkor a for next ciklusban azért nem működik, mert szintén nem biztos hogy mindenhol van validációs lista?

 

Ha nincs, akkor nem tud törölni?

 

 

 

SQLkerdes Creative Commons License 2010.11.26 0 0 13460

Most vagy nem ugyanarról a kódról beszélünk vagy valami gond van a kognitív funkcióimmal...

 

Szerintem nem keresi meg a következő P-s cellát, csak elugrik 7 cella távolságra és megpillantja, hogy az P-e.

Előzmény: Delila10 (13458)
SQLkerdes Creative Commons License 2010.11.26 0 0 13459

De lefuttattam, csak nem számítógépen, hanem fejben ;-)

Csak egymagos processzora van, de azért bírja a bizalmamat  :-))

Előzmény: Delila10 (13457)
Delila10 Creative Commons License 2010.11.26 0 0 13458

Az eredeti kérdés  "A célja, hogy lelellenőrizze, hogy az adott dolgozónál két pihenő közt nem telik el 6 napnál több."

 

Itt nincs szó üres, és nem üres cellákról. A makróm nem is figyeli, csak azt, hogy az egymást követő, "P" tartalmú cellák között hány nem "P"-s cella van.

Előzmény: SQLkerdes (13456)
Delila10 Creative Commons License 2010.11.26 0 0 13457

Nem próbáltátok ki az én makrómat (#13438)? Mármint Te és Boraka. 

Előzmény: SQLkerdes (13453)
SQLkerdes Creative Commons License 2010.11.26 0 0 13456

Én is ezt mondom.

 

Ha jól olvasom a kódot, akkor nem ellenőrzi, hogy van-e más P 7 távolságon belül, illetve nem ellenőrzi, hogy ha a 7 távolságra lévő cella üres akkor van-e távolabb P-s cella.

Az első esetben nem kell pirosítani, a másodikban igen.

A kód viszont az első esetben pirosít, a másodikban nem.

 

Előzmény: Delila10 (13454)
boraka Creative Commons License 2010.11.26 0 0 13455

Igen, igazad van, ez így nem jó.

Előzmény: SQLkerdes (13453)
Delila10 Creative Commons License 2010.11.26 0 0 13454

Mi van, ha a (target.row,i+3)-ik cella is "P"? Akkor nem kell színezni.

 

Szerintem a "P" betűk a pihenő napot jelentik, és a színezés azért kell, mert nem szabad 2 pihenő nap között 6-nál több napon dolgoztatni a munkavállalókat.

Előzmény: boraka (13446)
SQLkerdes Creative Commons License 2010.11.26 0 0 13453

Vagy nagyon elnézek valamit, vagy amit csinál az az, hogy megnézi egy cella tartalmát és ha az P ÉS a tőle 7 cellára levő cella tartalma is P akkor a kettő között pirosít.

Amit én mondok az az, hogy ha egy cella tartalma P és a tőle 7 cellára eső cella tartalma üres, de a nyolcadik cella P, akkor a fenti IF hamisra értékelődik ki, pedig a két P-s cella közötti távolság nagyobb mint 6.

 

Vagy.  A1=P,  C1=P és G1=P

Bár itt két szomszédos P közötti távolság sem nagyobb hatnál, de az A1 ellenőrzésekor (tartalma P= true) ellenőrzi a G1-et is (tartalma P= true), látszólag megfelel a kódba épített tesztnek, de mégsem olyan eset amit keresünk.

 

Én egy Do While-lal megkeresném a vizsgált cella utáni első P-s cellát és összehasonlítanám az oszlopszámukat.

Előzmény: boraka (13450)
boraka Creative Commons License 2010.11.26 0 0 13452

Próbáld meg így kikapcsolni a szűrőt:

 

' ha a munkalapon az autoszűrő aktív

If ActiveSheet.AutoFilterMode = True Then ActiveSheet.AutoFilterMode = False

Előzmény: wawabagus (13447)
SQLkerdes Creative Commons License 2010.11.26 0 0 13451

Ehelyett:

 

  'Delete hidden sheets
        a = 1
        While a <= Worksheets.Count
        If Not Worksheets(a).Visible Then
        Worksheets(a).Delete
        Else
        a = a + 1
        End If
        Wend

 

Próbált meg ezt:

 

a kód elejére tedd ezt:

 

Dim WS as worksheet

 

utána az a=1 és az azt követő rész helyére (Wend-del bezárólag)

 

For each ws in workbooks(i).worksheets

if not ws.visible then ws.delete

next

 

Ciklusba nem csak számokat lehet tenni, hanem object-eket is, profibb és gyorsabb (pld nem kell minden iterációnál összeszámolnia a sheet-eket).

Előzmény: wawabagus (13447)
boraka Creative Commons License 2010.11.26 0 0 13450

"Azt kellene leellenőrizni, hogy "P" és "P"-t tartalamzó cellák közti cellák száma nem több 6-nál. Amennyiben több jelölje ki a két "P" közti cellákat pirosal."

 

Szerintem ezt csinálja. 

Előzmény: SQLkerdes (13448)
SQLkerdes Creative Commons License 2010.11.26 0 0 13449

Hát ilyennek oka lehet pld ha nem is volt ott filter

Előzmény: wawabagus (13447)
SQLkerdes Creative Commons License 2010.11.26 0 0 13448

Tuti, hogy ez jó?

Mert úgy tűnik, mintha a konkrét cellától számított 7. cella tartalmát nézni, holott ha pld. a 8. cella "P" de a hetedik üres, akkor is pirosítani kell.

Előzmény: boraka (13446)
wawabagus Creative Commons License 2010.11.26 0 0 13447

Fárszthatlak benneteket még egyszer? /és nem utoljára?

Az alsó kódban minden működik kivéve a banális filter show all, ami normál makróban működik, de ebben  a környezetben nem...

 

WHY?????????????

 

Db = Workbooks.Count
Dim ws As Worksheet

For i = 3 To Db

    Workbooks(i).Activate
    'Delete hidden sheets
        a = 1
        While a <= Worksheets.Count
        If Not Worksheets(a).Visible Then
        Worksheets(a).Delete
        Else
        a = a + 1
        End If
        Wend
        
     'Delete filter
    Workbooks(i).Sheets(1).Activate
    ActiveSheet.ShowAllData
    
    Workbooks(i).Sheets(1).UsedRange.Copy
             
    Workbooks("Trackcode merge template.xls").Activate
    Sheets("Combine").Select
    usor = ActiveSheet.UsedRange.Rows.Count
    Cells(usor + 1, 1).Select
    
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    ActiveSheet.Paste
Next i

A baja:

 

boraka Creative Commons License 2010.11.26 0 0 13446

No, akkor íme egy másik megoldási javaslat:

 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim meddig As Integer

 

  meddig = Cells(Target.Row, Columns.Count).End(xlToLeft).Column 'oszlopok száma az aktuális sor értékei alapján
 
  Range("A" & Target.Row).EntireRow.Interior.ColorIndex = xlNone
   
  For i = 1 To meddig
    If UCase(Cells(Target.Row, i)) = "P" And _
       UCase(Cells(Target.Row, i + 7)) = "P" Then
      Range(Cells(Target.Row, i), Cells(Target.Row, i + 7)).Interior.ColorIndex = 3
    End If
  Next i
 
End Sub

Előzmény: Delila10 (13438)
Törölt nick Creative Commons License 2010.11.26 0 0 13445

használtok vmilyen ERP-t? (SAP R/3, MS Navision, SAP SBO, stb...

Törölt nick Creative Commons License 2010.11.26 0 0 13444

Ja! Nem csak Ő nevezte "P"-nek az egyszerűség kedvéért?

Előzmény: SQLkerdes (13442)
Delila10 Creative Commons License 2010.11.26 0 0 13443

Megint javítanom kell magamat. Az elejére beírandó sor Cells().Interior.ColorIndex = xlNone, lemaradt a másolás elejéről a Cells()  :(

 

SQL: üres cellák esetén is színez a makró.

Előzmény: Delila10 (13440)
SQLkerdes Creative Commons License 2010.11.26 0 0 13442

Nem lesz egy komplex file :-)

P betük egy sorban köztük néhány üres cella.

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

küldd el a file-t. Tetszik a feladat, de így látatlanba...

Előzmény: MixM (13426)
Delila10 Creative Commons License 2010.11.26 0 0 13440

Az elejére érdemes betenni az  Interior.ColorIndex = xlNone sort.

 

Valószínűnek tartom, ha MixM kipirosított területet talál, átírja a P-t közelebbi cellába, és akkor töröltetni kell a kiabáló háttérszínt. 

Előzmény: Delila10 (13438)
Törölt nick Creative Commons License 2010.11.26 0 0 13439

hé, az tök barátságos, mosolyagtam amikor írtam csak az nem látszott :)

Előzmény: Or Kán (13434)
Delila10 Creative Commons License 2010.11.26 0 0 13438

Biztos én csinálok valamit rosszul, de ezek a képletek nem jöttek össze nekem. Írtam helyette egy makrót, ami a lapon lévő összes sort, és oszlopot vizsgálja, a "P"-k közötti cellák hátterét pirosra váltja, amennyiben a a darabszámuk eléri, vagy meghaladja a 6-ot.

 

Sub mm()
    Dim oszlop As Integer, uoszlop As Integer, sor As Integer, usor As Integer
    Dim kezd As Integer, veg As Integer, t As Boolean
    
    uoszlop = ActiveSheet.UsedRange.Columns.Count
    usor = ActiveSheet.UsedRange.Rows.Count
    
    For sor = 1 To usor
        For oszlop = 1 To uoszlop
            If Cells(sor, oszlop) = "P" And t = False Then
                kezd = oszlop
                t = 1
                GoTo Kov
            End If
            
            If Cells(sor, oszlop) = "P" And t = True Then
                veg = oszlop
                If veg - 1 - kezd > 5 Then
                    Range(Cells(sor, kezd + 1), Cells(sor, veg - 1)).Interior.ColorIndex = 3
                End If
                kezd = veg
            End If
Kov:
        Next oszlop
    Next sor
End Sub

Előzmény: SQLkerdes (13436)
wawabagus Creative Commons License 2010.11.26 0 0 13437

Na ne mááá :-)...

 

Én mindig is szerettem ide járni, pont mert mindenki tök normális és segítőkész. /ellentétben pl az access forummal, ahol már annyi idióta okostojással találkoztam/.

 

Hát pont azért van ez a fórum, hogy segítséget lehessen kérni, nem?

 

Mindenki jól jár :-), aki kérdez és aki válaszol.

 

Nem tudom, hogy az itt feltett kérdéseim alapján ez mennyire hihető, de a cégünkön belül /200ember :-), engem képzelnek az

"excel" szakértőnek. Ha kérdésük van mindig hozzám jönnek, főleg hogy tanfolyamot is csináltam az embereknek.

 

És én ezt konkrétan tök szeretem, mert pl:

1. nagyon okosnak érzem olyankor magam :-))), hogy mindent meg tudok oldani /majdnem :-d/

2. mindig tanulok valami újat

3. tök jó érzés, hogy meg tudom valakinek könnyíteni az életét

4. a hülye monoton feladataim mellett kifejezettem éhezek apró/ vagy nem apró kihívásokra

 

Szóval mardjon szerintem minden a régiben, ahogy eddig...mindig mindenki segítőkész volt és jófej :-)))

 

 

 

SQLkerdes Creative Commons License 2010.11.26 0 0 13436

Ugyanez másként:

 

=(MIN(IF(A1:$Q1="p",COLUMN(A1:$Q1),1000))-MAX(--($A1:A1="p")*COLUMN($A1:A1))-1>6)

Előzmény: SQLkerdes (13435)
SQLkerdes Creative Commons License 2010.11.26 0 0 13435

Ugyan már, most ez komoly?

 

Nem kell itt villongásokba átcsapni.

 

 

Inkább írjatok jobb megoldást, mint amit én itt javasolok:

 

=(MATCH("p",A1:$Q$1,0)+COLUMN(A1)-1-LOOKUP("p",$A$1:A1,COLUMN($A$1:A1))-1>6)

 

ezt a képletet kell használni a Conditional Formattingban, egyéb tudnivalók:

 

- a képlet feltételezi, hogy a kiértékelendő elemek az 1. sorban vannak

- a Conditional Formatting indításánál az A oszlopból (A1) kiindulva formázunk

- a kiértékelés a Q1 celláig működik, ha ennél nagyobb a kiértékelendő terület, akkor a képlet $Q$1 részét megfelelően ki kell cserélni, pld $AA$1-re

Or Kán Creative Commons License 2010.11.26 0 0 13434

Ha már elkezdted...

 

Ennél a hozzászólásnál miért nem volt problémád a nem barátságos hangnemmel?

 

http://forum.index.hu/Article/jumpTree?a=105148072&t=9009340

Előzmény: Delila10 (13433)
Delila10 Creative Commons License 2010.11.26 0 0 13433

De, azt hiszem, igen. Más fórumoktól csak a jót vegyük át, itt maradjon meg az eddigi barátságos, segítőkész szellem.

 

Nem érdemes ezt tovább ragozni.

Előzmény: Or Kán (13432)
Or Kán Creative Commons License 2010.11.26 0 0 13432

A sok kaptafa között a megoldást nem találtad véletlenül meg?

Előzmény: Delila10 (13431)
Delila10 Creative Commons License 2010.11.26 0 0 13431

Ott is jó helyen van – mondta a suszter a kaptafával kapcsolatban. :)

Lusta voltam az eredetit kikeresni.

Előzmény: Or Kán (13430)
Or Kán Creative Commons License 2010.11.26 0 0 13430

Ezt nem nekem kellett volna elsőként címezni.

Előzmény: Delila10 (13429)
Delila10 Creative Commons License 2010.11.26 0 0 13429

Ne valósítsuk meg itt a prog.hu lekezelő hangnemét!

Lehet segíteni iskolai feladatoknál is, rávezetéssel, nem kész megoldással. Miért baj az, ha valaki itt kér segítséget?

Előzmény: Or Kán (13424)
boraka Creative Commons License 2010.11.26 0 0 13428

;-)

Előzmény: Jimmy the Hand (13427)
Jimmy the Hand Creative Commons License 2010.11.26 0 0 13427

Ez jó! :-)

Előzmény: boraka (13425)
MixM Creative Commons License 2010.11.26 0 0 13426

Szia!

 

 Ez nem iskolai feladat. Kezdő vagyok az excel-ben. Ez egy munkahelyi beosztás elkészítését segítő táblázathoz kell. A célja, hogy lelellenőrizze, hogy az adott dolgozónál két pihenő közt nem telik el 6 napnál több.

 

Előzmény: Or Kán (13424)
boraka Creative Commons License 2010.11.26 0 0 13425

Hol akadtál el?

Előzmény: MixM (13423)
Or Kán Creative Commons License 2010.11.26 0 0 13424

Ez egy iskolai házi? Mert abban nem segítünk...:)

Előzmény: MixM (13423)
MixM Creative Commons License 2010.11.26 0 0 13423

Sziasztok!

 

 Segítségre lenne szükségem!

 Excel-ben adott egy sorban néhány cella, melynek tartalam "P". Azt kellene leellenőrizni, hogy "P" és "P"-t tartalamzó cellák közti cellák száma nem több 6-nál. Amennyiben több jelölje ki a két "P" közti cellákat pirosal.

 

Köszi!

Delila10 Creative Commons License 2010.11.25 0 0 13422

Igen, másik változóval. Pl. az egyik lapon lévő adatokból valamilyen feltételnek megfelelőeket akarsz átmásolni egy másik lapra, mindig a következő sorba.

Az első lapon egy for-next ciklusban figyelteted, megfelel-e az érték a feltételnek, majd minden másolás után növeled a változót, ami a beírás helyét határozza meg.

Előzmény: Törölt nick (13418)
boraka Creative Commons License 2010.11.25 0 0 13421

:-))

Előzmény: wawabagus (13416)
SQLkerdes Creative Commons License 2010.11.25 0 0 13420

Ja, boszorkányság ;-)

Előzmény: wawabagus (13419)
wawabagus Creative Commons License 2010.11.25 0 0 13419

Hát az excel szeszélyes...:-) és szokott furcsán gondolkodni :-)...ezt már többször is tapasztaltam.

 

A másik fajta copy működött tökéletesen az immediate ablakban...

 

Szóval én sem értem néha mit akar...

 

de már csak ilyen, a kedvére kell tenni :-)

 

 

Előzmény: SQLkerdes (13417)
Törölt nick Creative Commons License 2010.11.25 0 0 13418

szerintem for each ciklusban szokták használni, esetleg sima for-ban esetleg  másik változóval

Előzmény: wawabagus (13416)
SQLkerdes Creative Commons License 2010.11.25 0 0 13417

Nem hiszem, hogy én voltam a megoldás, mert nem működött a dolog.

 

Ami egy kicsit meglep, hogy az excel által nem szeretett változatnak is ugyanúgy működnie kellene, mint a szívének kedves usedrange-es megoldásnak...

Előzmény: wawabagus (13416)
wawabagus Creative Commons License 2010.11.25 0 0 13416

Köszi :-)

Hát képzeld én hogy örülök :-DDD...

 

Már a hajamat téptem.

Fogom alkalmazni ezt a kiírásos dolgot, tök prakikus.

 

Köszi szépen!!

Nem már átírtam azt a i+1-et...

 

Biztos rosszul emlékszem, de sokan mintha használtátok volna ezt.../rosszul emlékszem...szerintem nem :-))

 

na mindegy, ma is tanultam valami újat :-)!!!

 

Danke!!!

 

 

 

Előzmény: boraka (13413)
wawabagus Creative Commons License 2010.11.25 0 0 13415

Szia!

de de de kipróbáltam...

csak akkor még egyéb bajok is fennálltak és szerintem ezért nem működött...

annyit javítgattam hogy már nem is emlékszem, de azt hiszem valami olyan volt,  hogy

 

a Cells(usor + 1, 1).Select nem jó helyen volt...

 

De látod te voltál a megoldás :-DDDD!!

Köszi szépen :-)!

 

Persze szívhatok tovább, mert mindig jönnek újabb és újabb megoldandó problémák, úgyhogy még elszórakozom ezzel a makróval egy darabig :-).

 

Még jó, hogy ez szórakozás számba megy kivéve amikor megőrülök, hogy nem találom a megoldás :-DDD...

 

:-)

Köszi a segítséget!!

 

 

 

Előzmény: SQLkerdes (13414)
SQLkerdes Creative Commons License 2010.11.25 0 0 13414

De hisz a #13385-ben pont ezt javasoltam!

Azt hittem ezt is kipróbáltad és nem működött :-(

Előzmény: wawabagus (13411)
boraka Creative Commons License 2010.11.25 0 0 13413

Örülök! :-))

 

Ugye már az a "i = i + 1" sincs a for ciklusban? Mert az nagyon nem jó oda.

Előzmény: wawabagus (13411)
SQLkerdes Creative Commons License 2010.11.25 0 0 13412

Szerintem ezt a problémát az okozza, hogy a UsedRange object-ed még akkor is egy 1x1-es tartomány (az A1 cella) ha üres a worksheet.

Ennek eredményeként:

 

 usor = ActiveSheet.UsedRange.Rows.Count utasítás eredménye usor=1

    Cells(usor + 1, 1).select  eredménye, hogy (usor+1=1+1=2) a második sor kerül kiválasztásra

 

A becsapós, hogy amikor a sheet nem üres, hanem "csak" egy sort foglal el, ugyanez az eredmény áll elő.

Előzmény: wawabagus (13399)
wawabagus Creative Commons License 2010.11.25 0 0 13411

ÉS IGEN ÉS IGEN ÉS IEGN :-DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD...

 

Ez egy tök jó ötlet ezzel a lépésenkénti Msgbox-al :-DDDDDDDDD

Juhhéj

 

Az excel ezt nem szereti:

Range(workbooks(i).sheets(1).cells(1,1), workbooks(i).sheets(1).cells(1,1).end(xltoright).end(xldown)).copy

 

Míg ezt kedveli:

 Workbooks(i).sheets(1).usedrange.copy

 

SZUPER!!!!

 

Köszi köszi köszi!!!!!!!!!!!!!!!!!

:-)

Előzmény: boraka (13410)
boraka Creative Commons License 2010.11.25 0 0 13410

Be kellene határolni, hogy melyik lépésnél akad ki.

 

Tegyél be egy msgbox ""-ot az első utasítás után, majd, ha még jó, akkor így tovább.

 

For i = 3 to Db

...

Workbooks(i).Activate

Msgbox ""

...

Előzmény: wawabagus (13409)
wawabagus Creative Commons License 2010.11.25 0 0 13409

Beírtam és jót csinál mert a sheet1-el manipulál.

De nem megy egyáltalán végig a cikluson.

 

Kinyiffan az elsőnél...

 

Ez csak azért fura mert tök ugyanaz a kód ciklusba rakás nélkül jól működik...

 

 

Előzmény: boraka (13407)
boraka Creative Commons License 2010.11.25 0 0 13408

Ja, bocsi ezt elnéztem, valóban, javítsd ki Worksheets(1).Name-ra

Előzmény: boraka (13407)
boraka Creative Commons License 2010.11.25 0 0 13407

Worksheets(i) nincsen, csak worksheets(1) :-)

 

Nyilván nincs, ezért irattam ki elsőként az i értékét, hogy be lehessen helyettesíteni.

 

Szóval, végigment a ciklus vagy már az elején (az első kiírás után) elszállt?

Előzmény: wawabagus (13406)
wawabagus Creative Commons License 2010.11.25 0 0 13406

Worksheets(i) nincsen, csak worksheets(1) :-)

 

De ha lenne akkor ezt írja ki:

 

Tehát tök jó a kiválasztás. Nekem pont a Book2 kell.

Mivel nálam ugye worksheets(1) van ezért igazából Sheet1 lesz a név :-)...

 

Annyira idegesítő...

Tök nem értem...

Biztos valami banális hiba van a kódban.

 

Előzmény: boraka (13405)
boraka Creative Commons License 2010.11.25 0 0 13405

Javaslom, hogy az alábbi kis módosítással nézzük meg a for ciklus működését:

 

For i = 3 To Db

    MsgBox "i = " & i & Chr(10) & _
           "Workbooks(i).Name: " & Workbooks(i).Name & Chr(10) & _
           "Worksheets(i).Name: " & Worksheets(i).Name

   

    Workbooks(i).Activate

    .......

Előzmény: wawabagus (13404)
wawabagus Creative Commons License 2010.11.25 0 0 13404

Ezzel próbálkoztam tegnap.

De semmi eredmény :-(((((((((

Előzmény: boraka (13403)
boraka Creative Commons License 2010.11.25 0 0 13403

Először is az alábbi módosítást javaslom:

 

i = i+1

Next

 

helyett

 

Next i

Előzmény: wawabagus (13402)
wawabagus Creative Commons License 2010.11.25 0 0 13402

Szia!

Köszönöm az ötletet, de közben rájöttem, hogy azért nem tudta az Excel hova másoljon, mert cellákat töröltem és nem sorokat.

/Persze nem értem miért volt ez baj neki, de mindegy/

 

Az őrület környékez. Kikészülök ettől a #&@&# makrótól. Főleh, hogy szerintem olyan közel vagyok amegoldához és mégis távolt :-D.

 

Minden ami zöld a csodásan működik, mert kipróbáltam.

Ami problémás az a maradék...

DE MIÉRT??????????????????????????????

Megőrülök!!!!!!!!

 

Sub megnyitás()
respond = MsgBox("Do you have other excel file open?", vbYesNo, "Question:")
On Error GoTo Errorcatch
    If respond = vbYes Then
        MsgBox "Please close all excel files except the template!"
        Exit Sub
    Else

útvonal = "S:AdHoc AnalysisMACROKárolyi Krisztateszt"

With Application.FileSearch
    .LookIn = útvonal
    .FileType = msoFileTypeExcelWorkbooks
    .Execute
For i = 1 To .FoundFiles.Count
     Workbooks.Open .FoundFiles(i)
Next

End With
End If

Db = Workbooks.Count


For i = 3 To Db


    Workbooks(i).Activate
    Range(Workbooks(i).Worksheets(1).Cells(1, 1), Workbooks(i).Worksheets(1).Cells(1, 1).End(xlToRight).End(xlDown)).Copy
    Workbooks("Trackcode merge template.xls").Activate
    Sheets("Combine").Select
    usor = ActiveSheet.UsedRange.Rows.Count
    Cells(usor + 1, 1).Select
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    ActiveSheet.Paste


i = i + 1
Next
Exit Sub
Errorcatch:
MsgBox Err.Description
End Sub

 

 

Előzmény: boraka (13401)
boraka Creative Commons License 2010.11.25 0 0 13401

Szia! Próbáld meg az alábbit:

usor = Range("A" & Rows.Count).End(xlUp).Row 'sorok száma az A oszlop értékei alapján

Előzmény: wawabagus (13399)
wawabagus Creative Commons License 2010.11.25 0 0 13400

Mi több, lefuttatom a lenti kódot.

Megcsinálja.

 

A temlétből törlöm a bemásolt sorokat, mentem és becsukok mindent.

 

Újra nyitom a templétet, az excel mintha emlékzne, hogy ott volt korábban pár sor, amit töröltem és folytattja a "kitörölt", tehát fizikailag már nem ott lévő sorok alatt.

 

Ki a hülye? Én vagy az excel?

 

wawabagus Creative Commons License 2010.11.25 0 0 13399

Sziasztok!

Tesztelem továbbra is ezt a #&@&# makrót.

Immediat ablakban csináltam, úgy hogy részenként tesztelem...

Leegyszerűsítettem és kinyitottam a temlétet meg a Book2 fájlt, hogy megnézzem a copy működik-e.

 

Vicces mert úgy tűnik hiányzott egy cell select parancs és most már kopizza, viszont egy dolgot baromira nem értek...

Ahányszor futtatom a makrót mindig lejjebb és lejjebb másol, amit totál nem értek...hiszem ha én kitörlöm az előző bemásolt sorokat, akkor a használt sorok száma marad 1...

 

Nem tudom értitek-e...

 

A lenti részt teszteltem. És működik is. Elvileg hurrá. Viszont, ha újra próbálkozom ennek a kódnak a futtatásával, úgy hogy amit korábban bemásolt 2 sor törlöm, akkor ő mintha úgy látná, hogy ott továbbra is van valami...és a már kitörölt sorok alá másolja be az újat?

De miért?

 

 

Range(Workbooks("Book2").Worksheets("Sheet1").Cells(1, 1), Workbooks("Book2").Worksheets("Sheet1").Cells(1, 1).End(xlToRight).End(xlDown)).Copy
    
Workbooks("Trackcode merge template.xls").Activate
    
    Sheets("Combine").Select
    usor = ActiveSheet.UsedRange.Rows.Count
    Cells(usor + 1, 1).select    
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    ActiveSheet.Paste

a=usor + 1
?a

 

wawabagus Creative Commons License 2010.11.25 0 0 13398

Jaj...nem fejeztem be az előző hozzászólást :-):

Szóval ez rendben van, mert

1 = Personal

2 = template

3 = Book2

 

ez tök jó

 

 

De aztán a végén meg ezt írja ki:

 

Előzmény: SQLkerdes (13390)
wawabagus Creative Commons License 2010.11.25 0 0 13397

Szia!

Megcsináltam, amit mondtál és jó munkfüzet nevet ír ki:

 

 

Előzmény: SQLkerdes (13390)
MixM Creative Commons License 2010.11.25 0 0 13396

Sziasztok!

 

 Segítségre lenne szükségem!

 Excel-ben adott egy sorban néhány cella, melynek tartalam "P". Azt kellene leellenőrizni, hogy "P" és "P"-t tartalamzó cellák közti cellák száma nem több 6-nál. Amennyiben több jelölje ki a két "P" közti cellákat pirosal.

 

Köszi!

SQLkerdes Creative Commons License 2010.11.25 0 0 13395

Dim SourceWS As Worksheet

Set ws = Workbooks("book1").Worksheets(1)

SourceWS.Range("A1").CurrentRegion.Copy

 

helyett

 

Dim SourceWS As Worksheet

Set SourceWS = Workbooks("book1").Worksheets(1)

SourceWS.Range("A1").CurrentRegion.Copy

 

Előzmény: SQLkerdes (13394)
SQLkerdes Creative Commons License 2010.11.25 0 0 13394

Értem amit mondasz, de nézd meg a kódot ami a hibát generálta:

 

Range(workbooks(i).sheets(1).cells(1,1), workbooks(i).sheets(1).cells(1,1).end(xltoright).end(xldown)).copy

 

Itt nincsen nulladik sor v. oszlop az tuti.

Én arra gyanakszom, hogy vagy a workbook-kal vagy a worksheet(1)-el van valami gond.

 

Még egy elméleti hibalehetőség (nem gondolom, h ez a gond, de jobb helyretenni) az hogy wawabagus kódjában Sheets(1) szerepel, nem pedig Worksheets(1).  Elméletben ez okozhat olyan hibát, hogy ha az első sheet pld egy Chart akkor azt próbálja kijelölni és kopizni.  Én nem szeretek Sheet-re hivatkozni, mert sose tudja az ember, hogy olyan sheet-e, mint amivel igazán dolgozni szeretne...

 

 

Kicsit mellékszál:

A sok xldown és xltoright helyett lehetne használni a következő technikát is:

 

Dim SourceWS As Worksheet

Set ws = Workbooks("book1").Worksheets(1)

SourceWS.Range("A1").CurrentRegion.Copy

 

Merthogy a CurrentRegion object direkt erre van (excel felületen a Ctrl+*)

 

 

Előzmény: Jimmy the Hand (13391)
Jimmy the Hand Creative Commons License 2010.11.25 0 0 13393

Bocsi, a kódot dupláztam. Ugyanaz a kettő, csak az elsőből töröltem a felesleges üres sorokat.

Előzmény: Jimmy the Hand (13392)
Jimmy the Hand Creative Commons License 2010.11.25 0 0 13392

Valami ilyesmi lehetne a rövidített verzió:

 

Sub megnyitás()
    Dim respond As Long, útvonal As String
    Dim wbSource As Workbook, rngTarget As Worksheet
   
    respond = MsgBox("Do you have other excel file open?", vbYesNo, "Question:")
    If respond = vbYes Then
        MsgBox "Please close all excel files except the temple!"
        Exit Sub
    Else
        útvonal = "S:AdHoc AnalysisMACROKrisztateszt"
        With Application.FileSearch
            .LookIn = útvonal
            .FileType = msoFileTypeExcelWorkbooks
            .Execute
            For i = 1 To .FoundFiles.Count
                Set wbSource = Workbooks.Open(.FoundFiles(i))
                Set rngTarget = Workbooks("Trackcode merge template.xls").Sheets("Combine").Range("A" & Rows.Count).End(xlUp).Offset(1)
                wbSource.Sheets(1).UsedRange.Offset(1).Copy
                rngTarget.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                wbSource.Close SaveChanges:=False
            Next
        End With
    End If
End Sub

 

Sőt, szerintem ebből a "respond" begyűjtése és kiértékelése is kihagyható.

Sub megnyitás()
    Dim respond As Long, útvonal As String
    Dim wbSource As Workbook, rngTarget As Worksheet
    
    respond = MsgBox("Do you have other excel file open?", vbYesNo, "Question:")
    If respond = vbYes Then
        MsgBox "Please close all excel files except the temple!"
        Exit Sub
    Else

        útvonal = "S:AdHoc AnalysisMACROKrisztateszt"
        
        With Application.FileSearch
            .LookIn = útvonal
            .FileType = msoFileTypeExcelWorkbooks
            .Execute
            For i = 1 To .FoundFiles.Count
                Set wbSource = Workbooks.Open(.FoundFiles(i))
                Set rngTarget = Workbooks("Trackcode merge template.xls").Sheets("Combine").Range("A" & Rows.Count).End(xlUp).Offset(1)
                wbSource.Sheets(1).UsedRange.Offset(1).Copy
                rngTarget.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                wbSource.Close SaveChanges:=False
            Next
        End With
    End If


End Sub
Előzmény: wawabagus (13366)
Jimmy the Hand Creative Commons License 2010.11.25 0 0 13391

Nem worksheet-tel van baj, hanem olyan range hivatkozás van, ami nem létezik.

Pl nulladik sor- v. oszlopindex.

Előzmény: SQLkerdes (13390)
SQLkerdes Creative Commons License 2010.11.24 0 0 13390

Akkor a "for i=3 to db" ciklus for utáni első sorába még tedd be ezt, hogy lássuk melyik workbookkal van baj:

 

MsgBox workbooks(i).fullname

 

 

Előzmény: wawabagus (13366)
wawabagus Creative Commons License 2010.11.24 0 0 13389

Az elsőt :-)...

 

Most futok, mert itt hagynak :-(...

 

Köszi :-)!!!!!!!!!!

Előzmény: SQLkerdes (13387)
wawabagus Creative Commons License 2010.11.24 0 0 13388

Le kell lépjek most sajnos, mert várnak rám...

 

Köszönöm az eddigi segítséget nektek...!!!

 

Holnap folytatom a hajtépést :-D...

 

Szép estét mindenkinek!!!

 

SQLkerdes Creative Commons License 2010.11.24 0 0 13387

Melyik módszert választottad?

 

Előzmény: wawabagus (13386)
wawabagus Creative Commons License 2010.11.24 0 0 13386

Method 'Range' of object '_Worksheet" failed.

 

:-(.

Előzmény: SQLkerdes (13385)
SQLkerdes Creative Commons License 2010.11.24 0 0 13385

Nyírjuk ki a kódnak ezt a részét:

 

Workbooks(i).Sheets(1).Range(A2).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy

 

Ehelyett használd a következőt:

 

Range(workbooks(i).sheets(1).cells(1,1), workbooks(i).sheets(1).cells(1,1).end(xltoright).end(xldown)).copy

 

 

 

Vagy

 

Workbooks(i).sheets(1).usedrange.copy

 

A második lehet, hogy nagyobb területet másol ki mint az első, ha vannak pld üres sorok a táblázatodon belül.

Előzmény: wawabagus (13380)
wawabagus Creative Commons License 2010.11.24 0 0 13384

Nem válaszoltam...nincsenek rejtett sheetek.

 

Előzmény: SQLkerdes (13382)
wawabagus Creative Commons License 2010.11.24 0 0 13383

Igen ez Personal mindig bekavar.

De persze nyitva van...ő az első workbook...

/már ahogy én értelmezem/.

 

Pont ezért a ciklus a 3 to DB, mert

1 = personal

2 = template

3 stb meg a megnyitott fájlok

 

Persze tisztában vagyok azzal, hogy nem mindenkinek lesz perszonalja és ezzel még kombinálnom kell.

De még nagyon elején voltam a makrómnak...meglőtt mielőtt elkezdtem volna szépítgetni :-)

 

:-)

 

Előzmény: SQLkerdes (13382)
SQLkerdes Creative Commons License 2010.11.24 0 0 13382

Na, ezzel már megyünk valamire!

 

Vannak rejtett worksheetjeid bármelyik érintett workbookban?

Nem lehet, hogy a Personal-od (ami ugyi alapból rejtett) worksheet-jét próbálod manipulálni a for ciklus valamely részében?

Előzmény: wawabagus (13380)
SQLkerdes Creative Commons License 2010.11.24 0 0 13381

Na ne má!

Tessék csak megírni, itt a névtelenség (nicknévség) homályában semmi sem ciki!

Előzmény: wawabagus (13378)
wawabagus Creative Commons License 2010.11.24 0 0 13380

Select method of Worksheet class failed.

Ezt írta ki.

 

A ciki hiba meg az volt, hogy a megnyitott munkafüzetekben, csak az első sorban volt adat tehát a select A2 stb-nek semmi lrtelme nem volt :-D.

 

De kijavítottam és továbbra is baja van...

 

:-(

SQLkerdes Creative Commons License 2010.11.24 0 0 13379

Lássuk mit mond a hibacsapda, utána okosabbak leszünk.

Legalább azt lesz esélyünk megtudni, hogy melyik object-tel van a gond, az is valami :-)

Előzmény: wawabagus (13376)
wawabagus Creative Commons License 2010.11.24 0 0 13378

Asszem rájöttem a hibára és annyira ciki, hogy le sem merem írni :-DDDD

Leellenőrzöm :-D

Előzmény: SQLkerdes (13375)
Törölt nick Creative Commons License 2010.11.24 0 0 13377

Hülyeséget írtam?, for each-ben szoktak így értéket adni

Előzmény: Törölt nick (13374)
wawabagus Creative Commons License 2010.11.24 0 0 13376

Igen igen...igazad van a "A2"-t illetően, de ezt már korábban észrevettem és kijavítottam, de továbbra sem jó...

 

Az automatikus becsukás is jó ötlet, de mi van, ha menteni akarja majd, vagy pont az hogy nem akarja menteni...?

Bár biztos ez is kiküszöbölhető :-)...

 

Igen tudom, hogy mindig mondjátok, hogy hagyjam el a selecteket.

Mindig próbálom is utólag átnézni, hogy lehet-e valamit rövidíteni...szoktam selecteket törölni, de volt sokszor, hogy anélkül nem működött :-(...nem értem miért...mintha nem mindig lehetne elhagyható.

 

De elvileg selectel, vagy nélküle működnie kellene...

 

Tök igazad van, hogy törekedni kell a rövid tömör makrókra...:-).

De úgy vagyok vele, hogy ha megspórol nekem, vagy a kollégáimnak tobb óra munkát, akkor már csak hab a tortán hogy 2mp helyett 5-öt fut :-)...

 

De törekszem azért hogy tömör legyek, de még nincs meg a tudásom hozzá.

Tákolom őket össze mindenhonnan :-)...

 

 

Előzmény: SQLkerdes (13371)
SQLkerdes Creative Commons License 2010.11.24 0 0 13375

A gond az i=i+1 résszel van (logikailag), de szerintem az nem kéne KO-zza a kódot, csak fura dolgokat csináltat vele (pld az i=2 értékre nem hajtja végre a ciklusban foglaltakat).

 

írd meg mit jelzett ki a hibacsapda

Előzmény: wawabagus (13372)
Törölt nick Creative Commons License 2010.11.24 0 0 13374

az i=i+1 típusú értékadást elég gyakran használják for cikluson belül. Számláló értékadásnak hívják. Ebben az esetben a 4-el pont tud mit kezdeni a "Next" is (For i=3 to DB)

 

az az usor = usor tényleg gyanús, lehet ott lesz a hiba? Így a változóba egy logikai érték kerül - amit persze hogy a Cells() nem tud hova rakni - és ebből lesz a 400-as error (ShowModal) hiba?

Előzmény: SQLkerdes (13370)
SQLkerdes Creative Commons License 2010.11.24 0 0 13373

És még egy ha a lentiek egyike sem működne:

 

A Responde rész után rakd ezt be:

 

On Error GoTo Errorcatch

...(ide jön a kód többi része)...
---(közvetlenül az end sub elé még ezt rakd be, hogy az end sub most így nézzen ki:

 

exit sub

Errorcatch:
MsgBox Err.Description

 

end sub

 

Amit kiír azt másold be ide nekünk.

wawabagus Creative Commons License 2010.11.24 0 0 13372

Szia!

Az útvonal működik rendesen. Ezt a részét le tudtam tesztelni korábban.

 

usor=usor stb...huh ezt nem vettem észre, de kijavítottam és nem működik...

 

A For i=3 to DB

 

Next i

 

Kellene nem?

 

Egyesével szeretnék menni :-(...nem értem ezt.

 

Továbbra sem jó neki valami...

 

Elméletben már jónak kéne lennie nem?

 

Előzmény: SQLkerdes (13370)
SQLkerdes Creative Commons License 2010.11.24 0 0 13371

Workbooks(i).Sheets(1).Range(A2).Select

 

Hacsak nincs olyan range-ed aminek az A2 nevet adtad (nem kéne) akkor a szintaktika a következő legyen:

 

Workbooks(i).Sheets(1).Range("A2").Select

 

Szerintem a kód írható gyorsabbra, pld a Select-ek elhagyásával.

 

Az első részben lévő ellenőrzésből is kihagyható a felhasználó input-ja, azt kell ellenőrizni, hogy a nyitott workbook-ok neve megfelel-e az elvárásaidnak.  Mivel az egyetlen olyan workbook-nak ami nyitva kell legyen tudod a nevét (a template), akár kódból be is csukhatod a nyitott, de felesleges workbookokat.


Előzmény: wawabagus (13366)
SQLkerdes Creative Commons License 2010.11.24 0 0 13370

Én még ilyet sem láttam, de lehet ez az én hibám:

 

usor = usor = ActiveSheet.UsedRange.Rows.Count

 

Ez viszont hacsak nem direkt csináltad nem jó:

 

For i=3 to DB

...

i=i+1

Next

 

A for változóját extrém ritkán manipuláljuk a for cikluson belül.  

Simán lehet, hogy az i a 4 értéket veszi fel és a Next nem tud mit kezdeni vele.  Ha kettesével akarsz lépkedni a For-ban akkor használd a Step-et

 

For i=1 to DB step 2

 

...

 

Next

Előzmény: wawabagus (13366)
SQLkerdes Creative Commons License 2010.11.24 0 0 13369

Első ránézésre nekem gyanús az "útvonal" nevű változó.

Próbáld meg utvonal-ként

Előzmény: wawabagus (13366)
wawabagus Creative Commons License 2010.11.24 0 0 13368

Hát, jó azért én is sokat tanultam könyvekből :-). /Excel hacks pl, meg elődöm exceleiből, meg a netről/.

Én szeretem ezt az interaktív dolgot a fórumozásban...a makrós könyvek meg annyira érthetetlenek nekem.

Nekem főleg az elején segített a forum /ti/, meg most hogy makró írást próbálgatom :-).

:-)

 

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

Napuff. Most mindenki magára fogja venni. Én is sok mindent tanultam meg itt - de inkább könyvekből, meg angol fórumokon. Ill. prog.hu (Ja és nem csak excel VBE-t)

Előzmény: wawabagus (13364)
wawabagus Creative Commons License 2010.11.24 0 0 13366

Sziasztok!

400-as error code?

Mi a baja a macronak?

Ha debugot mondana még le tudnám követni mit vétettem, de így...? Gőzöm sincs.

Nem értem mit kell javítanom...

 

A makró egy folderból kinyit minden ott lévő fájlt és bemásol egy munkafüzetbe...elméletileg.

Tisztában vagyok azzal, hogy még sokat kell alakítani a makrón, de ez a kód most meglőtt...

Ti értitek mit akar nekem mondani?

Köszi előre is

------------

Sub megnyitás()

respond = MsgBox("Do you have other excel file open?", vbYesNo, "Question:")
    If respond = vbYes Then
        MsgBox "Please close all excel files except the temple!"
        Exit Sub
    Else

útvonal = "S:AdHoc AnalysisMACROKrisztateszt"

With Application.FileSearch
    .LookIn = útvonal
    .FileType = msoFileTypeExcelWorkbooks
    .Execute
For i = 1 To .FoundFiles.Count
     Workbooks.Open .FoundFiles(i)
Next

End With
End If

Db = Workbooks.Count

For i = 3 To Db 'azért 3, mert nekem megnyíllik a personalom is
    Workbooks(i).Sheets(1).Range(A2).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy

    Workbooks("Trackcode merge template.xls").Select
    Sheets("Combine").Select
    usor = usor = ActiveSheet.UsedRange.Rows.Count
    Cells(usor + 1, 1).Select
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    ActiveSheet.Paste
i = i + 1
Next

End Sub

Mad árka Creative Commons License 2010.11.24 0 0 13365

Delila10, boraka és robbantómester: köszönöm a segítségeteket, megvilágosodtam minden feltett kérdés kapcsán. :)

wawabagus Creative Commons License 2010.11.24 0 0 13364

OFF

Ajaj, én vajon hol ülök :-)?

Leellenőriztem, hogy 2005 óta itt élősködöm :-).

Tudásom 60% kb itt szereztem :-)...hála nektek!

ON

Törölt nick Creative Commons License 2010.11.24 0 0 13363

OFF

Próbálok a hozzászólásban iróniát látni (nem a tiédben) - biztosan naív vagyok.

Én úgy látom, hogy a kérdést feltevők nagyobb része egy kövön ül: Valaki megveregeti a vállát a tiéd helyett.

Viszont vannak pofátlansági fokozatok. A csúcsán a kolléga van, mert nem tud semmit - az alján pedig az, aki érti is hogy miről van szó, ha nem érti akkor pedig kitapossa az utat a világosságig bármi áron.

Aki nem foglal helyet ebben a piramisban, az meg segít önzetlenül - mert jó neki is hogy (idegeneknek) megmutatta hogy milyen ügyesokos. Jó a másik félnek is mert: Tanult valamit, vagy épp megveregette a főnöke a vállát.

Egyébként van Rászi-nál egy jó adag szemtelen provokáció is alighanem - viszont simán tükröt tart azok elé, akik kész megoldást adnak, pedig sokszor érezni egy egy kérdésnél, hogy nem kéne (pl. házifeladatosok)

Prog.hu-n ütik az ilyeneket. ( és szerintem nem kell azt írom, hogy "más fórumokon")

ON

Előzmény: SQLkerdes (13362)
SQLkerdes Creative Commons License 2010.11.24 0 0 13362

OFF

Én nem tudom, nekem nem szimpatikus mikor valaki nyíltan azt hangoztatja, hogy más munkájával fog babérokat learatni.

Lehet old school vagyok, de ez szerintem nem helyes.

Nyilván ennek is vannak fokozatai, de amikor valaki nem tűnik érteni a megoldást, amit aztán majd sajátjaként prezentál, az a skála tetején van nálam.

Ha valaki még nyíltan hirdeti is, az meg a skála tetejének a teteje.

ON

Előzmény: Rászid-lob (13361)
Rászid-lob Creative Commons License 2010.11.24 0 0 13361

Rendes tőled, hogy ilyen sokat kinézel a főnökből. (- nem mondom el neki)

Megnyugtatlak. Nem fogja tudni. Elég jól eltudom magam adni.

 

Egyébként minden elismerésem annak, aki így keni-vágja a programozást.

Előzmény: Törölt nick (13358)
Törölt nick Creative Commons License 2010.11.23 0 0 13360

Köszi, én begyűjtöttem.

 

Előzmény: SQLkerdes (13359)
SQLkerdes Creative Commons License 2010.11.23 0 0 13359

VBA-ban érdekelteknek egy kis szines:

 

http://www.codeforexcelandoutlook.com/blog/2008/09/trimming-cells-before-and-after/

 

Én nem tudtam, hátha más is érdekesnek találja a következő technikát a VBA kódok felgyorsításához:

- a worksheet tartalmát beolvassuk egy VBA változóba (array)

- utána nem a worksheet-tel dolgozunk, hanem az array-el,

- majd a végén az eredményeket visszaírjuk a worksheetbe.

 

Úgy tűnik, hogy amikor a VBA kommunikál az excellel az meglehetősen lassú, így ez a technika rendkívüli gyorsulást tud okozni!

 

A cikkben egy sima TRIM függvényt használ és a worksheet-es verzió 25 másodpercig fut le, a fenti array-es tachnika 0,06 (!) másodperc alatt!!!

 

Nyilván ezt a technikát nem lehet mindenhol használni, de ahol lehet ott úgy tűnik nagyon durván felgyorsítja a futást, ha az excel-lel történő kapcsolattartást minimalizáljuk.

Törölt nick Creative Commons License 2010.11.23 0 0 13358

Nyugi, a főnököd tudni fogja hogy nem te csináltad ;)

Előzmény: Rászid-lob (13355)
Or Kán Creative Commons License 2010.11.23 0 0 13357

Igazán nincs mit: neked öröm nekem szórakozás. :)

 

A hiba: a lapok összemásolásánál lehagyja egy-egy lap utolsó sorát a program. Ez azért van, mert amikor az új munkafüzetbe másol, akkor megkeresi az éppen aktuális (a másolás utáni) utolsó sort, és annak megfelelően rakja oda az új lap adatait. itt azonban elkövettem azt a hibát, hogy az utolsó sor után nem léptettem a számlálót, így "törli" (merthogy rámásol) az új lap első sora az előző utolsóját. Ezért a programot az alábbiak szerint kell változtani (kézzel be tudod írni a kódba, csak odakattintasz az egérrel: egy "+1"-et kell beírni):

 

sub msn()

.

.

.

 

k = k.Row+1

Next

End Sub

 

Előzmény: Rászid-lob (13355)
Delila10 Creative Commons License 2010.11.23 0