Keresés

Részletes keresés

Delila_1 Creative Commons License 2011.02.01 0 0 13905

Tudtommal nem.

Előzmény: RuN3$ (13904)
RuN3$ Creative Commons License 2011.02.01 0 0 13904

Köszönöm a válaszokat!

2007 ben megtudtam csinálni 2003 ban kűzdök.

=SZORZATÖSSZEG((A1:A10=1)*(B1:B10="A")) Kiválóan működik!

DARABTELI és a HA kombinálásával is meglehet megoldani?

 

Előzmény: Delila_1 (13903)
Delila_1 Creative Commons License 2011.02.01 0 0 13903

Régebbi verziónál

 

=SZORZATÖSSZEG((A1:A10=1)*(B1:B10="A"))

Előzmény: RuN3$ (13901)
SQLkerdes Creative Commons License 2011.02.01 0 0 13902

Használd a SUMIFS függvényt, xl 2007 és 2010-ben elérhető.

Ha xl 2003-at vagy korábbit használsz akkor tömbfüggvényt kell használj.

Előzmény: RuN3$ (13901)
RuN3$ Creative Commons License 2011.02.01 0 0 13901

Hello.

 

Milyen logikai képlet kombinécióval lehet azt megvalósítani hogy:  számolja össze azokat a sorokat C1 be ahol az A1 ben "1" áll és a B oszlopban "A" ?

A oszlop   Boszlop   C oszlop

     1               A        2

     2               A

     1               A

     2               B

gessztenye1 Creative Commons License 2011.02.01 0 0 13900

Megtaláltam a megoldást.

Tehát Excel beállításai -> speciális -> beállítások megjelenítése ehhez a munkafüzethez -> Objektumoknál megjelenítendő -> "semmi" helyett "minden" beklikkelése.

Előzmény: gessztenye1 (13899)
gessztenye1 Creative Commons License 2011.02.01 0 0 13899

Sziasztok!

 

Egy táblázatba szeretnék beszúrni esetenként sorokat, de a "Az objektumok nem vihetők lapon kívülre" szöveget kapom. A táblán nincs rejtve se sor, se oszlop. Mitől lehet még ilyen?

Nemgéza66 Creative Commons License 2011.02.01 0 0 13898

Emberi számítás szerint nem lesz csak 2007-es vagy majd újabb verzióval használva.

SQLkerdes Creative Commons License 2011.01.31 0 0 13897

Az a file ami a kívánt képletet tartalmazza lesz valaha megnyitva 2007-esnél alacsonyabb verziójú excelben?  Tehát pld xl 2003-ban és alacsonyabban...

Mert ettől függ, hogy mi lesz a függvény.

Előzmény: Nemgéza66 (13896)
Nemgéza66 Creative Commons License 2011.01.31 0 0 13896

 

Milyen módon lehet tudnék ide egy kis minta táblázatot bemásolni?

 

Próbáltam excelből, word-ből pdf-ből, de semmi sem lesz olvasható.

 

 

 

Nem igazán látszik az eredeti táblázat, legalább a szöveget kimásolom ide:

 

Azt szeretném megoldani, hogy ha egy lehívás azonosítóit beírom az első 4 oszlopba, akkor minden sor F oszlopában lévő cella nézze végig, hogy ilyen azonosítójú lehívás van-e már a táblázatban, ha van akkor annak az F2  cellában lévő értékét (most ez példaként 250.000 a fenti táblázatban) írja be a saját sorába is az F oszlopba. Ha még nincs ilyen lehívás, akkor ne írjon be a cellába semmit.

 

 

 

 

 

wawabagus Creative Commons License 2011.01.31 0 0 13895

Szia!

Előszöris köszönöm a válaszod.

A lent írt makró csak egy kezdemény...azért színezek csak, hogy teszteljem érthető-e az excel számára melyik fájlon kell dolgozni.

Biztos létezik értelmesebb módja is...

Ez igazából egy mini teszt volt...de már itt elbuktam :-))))...

 

Az utolsó V1-es aktivációnak tényleg semmi értelme, véletlen hiba. Bocs, hogy összezavartalak.

 

A futás közben már itt hibát jelez:

Workbooks(CheckFile).Worksheets(1).Range("A1").Select

 

És a legjobban attól tudok falramászni, hogy ezek a megoldások már más makróbal működtek.

És persze a tied működik...

Köszönöm.

 

Kikészülök...

 

Nincs valami tanfolyam ahol szép lassan tanítják a VBA-t? :-DDD, nem intenzív kurzuson.

Írtam már egy csomó makrót, de ahelyett hogy egyre okosabb lennék egyre hülyébb vagyok benne.

 

Köszi a segítséget!!

 


Előzmény: SQLkerdes (13894)
SQLkerdes Creative Commons License 2011.01.31 0 0 13894

Jól látom, hogy sárgára és zöldre akarod festeni bizonyos workbook-ok bizonyos worksheetjeinek A1 celláját?

Milyen hibát tapasztalsz?  Fut de nem azt csinálja amit szeretnél (hanem mit?) vagy le sem fut?

 

Sub Price_check()
'
' Price_check Macro

MsgBox "Open the file you want to check!"
Application.Dialogs(xlDialogOpen).Show


MsgBox "Open the PriceList!"
Application.Dialogs(xlDialogOpen).Show

PriceList = Workbooks(Workbooks.Count).Name
CheckFile = Workbooks((Workbooks.Count) - 1).Name
Jó esély van arrra, hogy itt elrontja, hogy melyik file a PriceList file és melyik a CheckFile.  Lehet érdemes lenne a file-okat azok megnyitásakor hozzárendelni a nevükhöz...
'Zöld

Workbooks(CheckFile).Worksheets(1).Range("A1").Select

    With Selection.Interior
        .ColorIndex = 43
        .Pattern = xlSolid
    End With

'Sárga

Workbooks(PriceList).Worksheets(1).Range("A1").Select

    Range("V1").Activate  Miért aktiválsz itt bármit is?  Mi a szerepe a V1 cellának?  Ha a V1-et akarod formázni akkor fentre nem kell az A1, v. fordítva.
    With Selection.Interior
        .ColorIndex = 36
        .Pattern = xlSolid
    End With

End Sub

 

Én lebeszélnélek a Select parancs használatáról, hagyd ki csak lassítja a kódot és nehezebb átlátni.

 

Az első With / End with átírva:

 

With Workbooks(CheckFile).Worksheets(1).Range("A1").Interior
        .ColorIndex = 43
        .Pattern = xlSolid
End With

 

Hát nem sokkal szebben látszik, hogy mivel csinálsz mit?

Előzmény: wawabagus (13893)
wawabagus Creative Commons License 2011.01.31 0 0 13893

Sziasztok!

Mit csináltam már megint rosszul?

Méééééé nem akar működni?

Köszönöm a kritikát! :-)

 

Sub Price_check()
'
' Price_check Macro

MsgBox "Open the file you want to check!"
Application.Dialogs(xlDialogOpen).Show


MsgBox "Open the PriceList!"
Application.Dialogs(xlDialogOpen).Show

PriceList = Workbooks(Workbooks.Count).Name
CheckFile = Workbooks((Workbooks.Count) - 1).Name

'Zöld

Workbooks(CheckFile).Worksheets(1).Range("A1").Select

    With Selection.Interior
        .ColorIndex = 43
        .Pattern = xlSolid
    End With

'Sárga

Workbooks(PriceList).Worksheets(1).Range("A1").Select

    Range("V1").Activate
    With Selection.Interior
        .ColorIndex = 36
        .Pattern = xlSolid
    End With

End Sub

Nemgéza66 Creative Commons License 2011.01.31 0 0 13892

 

 

Nem tudom, hogy fog-e látszani?

Nemgéza66 Creative Commons License 2011.01.31 0 0 13891

Működik, köszönöm.

 

Egy közbenső rész hiányzik még. Ha beírom a szállítás 4  azonosítóját, akkor az ezek által meghatározott lehívás értékét írja be egy cellába.

 

(Ebből vonnám ki az előbb meghatározott összeget, hogy a lehívásból még hátralévő érték előálljon.)

 

Ha felviszek egy új sort, akkor végignézné, hogy az ilyen azonosítókhoz tartozó sorokban, van-e érték egy adott cellában (pl. a lehívás teljes összege oszlopban), ha van akkor ide is azt írja át, ha mindenhol üres ez a cella, akkor itt is üresen hagyja.

Ha mindenhol üres ez a cella, akkor az azt jelenti, hogy ilyen lehívás még nem volt korábban, ezért a kezelőnek kell megadni a lehívás teljes értékét.

Az elve megy, de hogyan lehet ezt excelben megfogalmazni?

Nemgéza66 Creative Commons License 2011.01.31 0 0 13890

Hú, ez jónak tűnik...

 

Külön oszlopban vannak az értékek, ezzel nem lesz gond.

 

Nagyon ritkán kell függvényeket használnom, átolvasom, hbogy hogyan kell ezt használni pontosan.

 

:-)

SQLkerdes Creative Commons License 2011.01.31 0 0 13889

Szerintem ezt egy "sima" SUMIFS megcsinálja.  Ha a (lenti példádnál maradva) II. rész, B alrész, 34-es körzet, 3. lehívás adatok rendre külön oszlopban vannak, pld. A oszlop adata a rész (I, II v. III), a B oszlop tartalmazza az alrész adatot (A, B, stb.) és így tovább akkor egy SUMIFS (NEM sumif) simán kigyűjti, hogy egy konkrét kombinációhoz (II/B/34/3) mekkora mennyiségek tartoznak.

 

Ha a rendelés és a szállítás más előjellel van rögzítve (pld. rendelések pozitív, szállítások negatív) akkor nem is kell mást csinálni csak összeadni a mennyiségeket.

 

Vagy félreértem a dolgot.

 

Ha olyan xl verziót használsz ahol a SUMIFS még nem létezett, akkor egy szép SUMPRODUCT alapú tömbfüggvénnyel ugyanezt ki lehet számolni.

 

Ha az adatok nem külön oszlopban vannak, hanem egy cellában, akkor előbb LEFT, RIGHT és MID függvénnyel szét kell őket kapni és utána ráereszteni egy SUMPRODUCT-ot.

Előzmény: Nemgéza66 (13888)
Nemgéza66 Creative Commons License 2011.01.31 0 0 13888

A feladat röviden: Kiküldünk egy anyagra vonatkozó lehívást (keretszerződés van kötve nagyobb mennyiségekre), aminek az értéke pl. 1000 Ft. A lehívást az előző kérdésem szerinti 3 adattal (I. II. III. rész, A vagy B , és 1-től 40 ig körzet)és egy lehívás sorszámmal azonosítjuk be. Pl. II. rész, B alrész, 34-es körzet, 3. lehívás.

 

A szállító az esetek döntő részében több (változó számú) szállítással teljesít egy lehívást. (A szállítás ugyan azzal a 4 adattal van beazonosítva)

Arra lenne szükségem, hogy minden szállítás felvezetésénél jelenjen meg, hogy az adott lehívásból még mekkora értékű szállítás van még hátra.

 

Ezt úgyszeretném megoldani, hogy aki a táblázatot vezeti, annak elég legyen csak a mindig a táblázat utolsó sorába fevinni a bejövő szállítások azonosítóit és értékét és ott egyből képződjön a még hátralévő összeg.( Egyszerűbb lenne tudom, hogy kikeresné az aktuális megrendelést és oda felvezetné, ott számoltatná ki, hogy mennyi van még hátra.)

 

Eddig csak gyenge elképzeléseim vannak:  Minden sorba kell egy olyan cella, ami ugye az adott lehívás teljes értékét tartalmazza. Ezt ha új lehívásról van szó, akkor a kezelő írja be, ha viszont már van ilyen lehívás, akkor meg kellene, hogy keresse a korábbi sorokban a megfelelő értéket.

 

Aztán a sorban lenne egy olyan cella, ami megkeresi és szummáza az erre a lehívásra vonatkozó szállítások értékeit. Ha ez megvan, akkor ami nekem kell az a kettő különbsége. Na ez az utolső menne... :-)

 

Bocs, hogy elhúzódott, de meló közben vagyok.

 

Ui: szerintem a tiedban csak azért működött mert az én képletemben már csak annyi argumentum volt, amit az enyém is elfogadott, ha többet írtam be azt nem mentette le.

Sznida Creative Commons License 2011.01.31 0 0 13887

Nálam működik 2003-as excelben is! A képleted jó volt! :)

 

Üdv: Sznido

Előzmény: Nemgéza66 (13886)
Nemgéza66 Creative Commons License 2011.01.31 0 0 13886

Szia!

 

Kösz a segítséget előre is. 

 

Időközben rájöttem, hogy nincs hiba, csak én vagyok a barom. Kaptam a file-t és nem figyeltem, hogy ez még csak 2003-as verzió, ami ezek szerint nem tud ennyi argumentumot. Lementettem 2007-be és így már működik. Mondjuk elég bonyolult a függvény (hosszú). Szóval az elgonbdolás jó volt, azt nem tudom, hogy lehetne e egyszerűbben is megoldani.

Írom mindjárt a második problémát.

Sznida Creative Commons License 2011.01.31 0 0 13885

Szia NemGéza66,

 

Nem igazán értem a kérdést...

Mik a bejövő adataid, azaz mit tudsz?

Mi legyen a kimenet, jól gondolom, hogy egy cella értéke, ami I, II, vagy III?

A választ függvény első argumentumának egy számnak kell lenni, ennek a számnak a Te fügvényedben a G13-as cellában kell lenni, változnia. Akkor adja eredményképpen a megfelelő választ, azaz azt az argumentumot, amire a G13-as szám utal. Jól gondolom?

Mi a második kérdés?

 

Üdv: Sznido

 

Előzmény: Nemgéza66 (13884)
Nemgéza66 Creative Commons License 2011.01.31 0 0 13884

Sziasztok!

 

Én is segítséget szeretnék kérni, két feladatban mert egyedül már nem boldogulok.

 

1. Arra lenne szükségem, hogy beérkező iratokat (mondjuk számlákat) 3 körzetbe csoportosítsam két értéktől függően.

Az első érték két karakter lehet mindösszesen, a második kb. 40. Tehát arra van szükségem, hogy egy cella értéke legyen I,II vagy III ha az első adat A vagy B, a második 1-től 40-ig. Azt hittem, hogy ez egyszerű feladat lesz, de én nem boldogultam vele.

 

Így próbáltam megoldani:

 

Készítettem egy segédtáblázatot, ahol két oszlop és 40 sor van és mindenhová beírtam, hogy az adott értékek alapján pl. a B,  32  bemenő értékek a II. körzetet jelölik.

 

=HA(F13="A";VÁLASZT(G13;B13;B14;B15;B16;B17;B18;B19;B20;B21;B22;B23;B24;B25;B26;B27;B28;B29;B30;B31;B32;B33;B34;B35;B36;B37;B38;B39);HA(F13="B";VÁLASZT(G13;C13;C14;C15;C16);""))

 

Azt hittem a fenti képlet jó lesz, mert ha pl. az F13-ba A kerül, akkor kiválasztja a G13 értékétől függően a megfeleő sort, ha B, akkor ugyan így, de a mellette lévő oszlopből, ha üresen van a cella, akkor nem ír be semmit.

A gond az, hogy a Választ függvényre azt írja ki, hogy ehhez a file tipushoz túl sok az argumentum, pedig a leírás szerint elvileg 254 argumentumig működie kell ennek a függvénynek.

 

Ha tudna valaki erre valamilyen egyszerűbb megoldást, vagy azt hogy mi a fenti módszerben a hiba, azt megköszönném.

 

 

chillout88 Creative Commons License 2011.01.29 0 0 13883

köszi.

A diagrammnál én is gondoltam erre csak az a baj hogy a nem csak akkor szeretném a diagrammot ha a teljes munkafüzet kész hanem közben is és akkor adnék hozzá uj lapokat ugye és ennek az értékeit akkor megintcsak át kell itni a technikai munkalapra. vagy lehet ezt is automatizálni?

Előzmény: SQLkerdes (13882)
SQLkerdes Creative Commons License 2011.01.29 0 0 13882

Tegyük fel, hogy három munkalapod és össze szeretnéd adni pld a B2 celláikat.

A munkalapjaid neve és sorrendje legyen pld. osszesito, munka1, munka2 és munka3

 

Az összesitő lap B2 cellájában most neked valszeg az van, hogy =SUM(munka1:munka3!B2)

 

Az összes teendőd csak annyi, hogy:

- a munka1 elé és munka3 után beszúrsz egy-egy új ÜRES munkalapot (pld elsoures és utolsoures nevueket.  Munkalapjaid sorrendje most:  osszesito, elsoures, munka1, munka2, munka3 és utolsoures

- a fenti képletedet (osszesito B2 cellája) javitsd ki arra, hogy =SUM(elsoures:utolsoures!B2)

- ha a jövőben új munkalapot kell beszúrj akkor azt az utolsoures ELÉ szúrd be és automatikusan figyelembevevődik.

 

 

A grafikonos problémádnál én csinálnék egy technikai munkalapot ami egy munkalapon tartalmazza a több munkalapról származó adatokat és azt használnám a grafikon adatforrásának.

Előzmény: chillout88 (13881)
chillout88 Creative Commons License 2011.01.29 0 0 13881

Hali
2 kérdésem lennem remélem tudtok segiteni:) (office 2007)

az egyik az hogy hogyan tudnám megcsinálni azt hogy 1 munkalapon összeadni az összes munkalap x cellájának az értékét(eddig megy is) úgy hogy ha még adok hozzá munkalapot akkor azt is adja hozzá automatikusan
a másik pedig az hogy diagrammot hogy tudok csinálni több munkalapra?
arra gondolok hogy a munkalapjaim napok minden nap végén van 1 összegem és ebből szeretnék a legvégén(havi szinten) egy diagrammot
csinálni viszont az adattartomány kijelölésénél ha több munkalapot választok ki (pl igy néz ki ='Munka1:Munka3'!$A$1) akkor azt írja hogy a beírt képlet hibás

Sztai Creative Commons License 2011.01.28 0 0 13880

Szövegként tárolt számot (mert pl. más ezreselválasztót és tizedes jelet tartalmaz, mint az aktuális területi beállításoknak megfelelő) szerintem legegyszerűbben a Data>>Data Tools>>Text to Colums varázsló segítségével tudsz számmá alakítani. A harmadik lépésben az Advanced gombra kattintva beállíthatod, hogy a konvertálandó szövegként tárolt szám, milyen ezr. elválasztót és tizedes jelet használ.

A Te általad említett példánál (csatolt adat) azonban szerintem más lehet a probléma. Jó lenne, ha leírnád pontosan a folyamatot, ahogy a csatolást csináltad.

Üdv

Előzmény: Törölt nick (13862)
Törölt nick Creative Commons License 2011.01.27 0 0 13879

excelben külön hozzá kell rendelni workbbook open-hez az eszköztár kirakását, szerintem wordben detto

Előzmény: SQLkerdes (13878)
SQLkerdes Creative Commons License 2011.01.27 0 0 13878

No de várjunk már egy cseppet.

A Wordben a toolbar formázás helyi dolog (normal.dot szintű téma), tehát te hiába építed be a toolbar gombot/ikont az a többiek gépén nem fog megjelenni.  Vagy tévedek?

Előzmény: Tündi2003 (13873)
SQLkerdes Creative Commons License 2011.01.27 0 0 13877

Nahát, embeddeli a videót, fejlesztik a fórummotort?  Ki hallott már ilyen?

SQLkerdes Creative Commons License 2011.01.27 0 0 13876

Vagy ez is lehet hasznos ha inkább vizuális vagy:  

Előzmény: SQLkerdes (13875)
SQLkerdes Creative Commons License 2011.01.27 0 0 13875
Előzmény: Tündi2003 (13873)
SQLkerdes Creative Commons License 2011.01.27 0 0 13874

Viszont makróval így kell csinálni (gondolom láccik, csak simán makró rögzítettem)

 

Sub Macro4()

 

Selection.Find.ClearFormatting    

Selection.Find.Replacement.ClearFormatting    

With Selection.Find        

.Text = "^m"        

.Replacement.Text = "^p"        

.Forward = True        

.Wrap = wdFindContinue        

.Format = False        

.MatchCase = False        

.MatchWholeWord = False        

.MatchWildcards = False        

.MatchSoundsLike = False        

.MatchAllWordForms = False    

End With    

Selection.Find.Execute Replace:=wdReplaceAll

End Sub

Előzmény: SQLkerdes (13870)
Tündi2003 Creative Commons License 2011.01.27 0 0 13873

Köszönöm a tippet! Az oldaltörés törlését már be is építettem a makróba. A kollégák sajnos nem olyan gyorsak a word kézi kezelésében mint én (van, aki sose dolgozott vele), az ő munkájukat megkönnyítendő rakom össze a makrót, amivel tényleg egy gombnyomással meg tudják az alapvető formázásokat csinálni. Csak sajnos az én makróíró tudományom se terjed az alapoknál tovább... :(

 

Az ikont viszont nem tudom beállítani, a Testreszabás párbeszédablakban semmi olyasmi nincs, amivel ikont lehetne hozzárendelni. A súgóban is kerestem, de ott sincs... :(

Előzmény: SQLkerdes (13870)
SQLkerdes Creative Commons License 2011.01.27 0 0 13872

Próbáld meg a LEN() függvénnyel megszámolni, hogy hány karaktert lát az excel, az segíthet eldönteni, hogy nem-e valami mutáns számformátummal van-e dolgod.

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

Áh, feladom. Természetesen próbáltam HELYETTE fgvel is kicserélni üresre"" a szóközt" ", de egyszerűen nem látja azt a szóközt egyik szövegkonverziós fgv sem. Komolyan. (Itt vmi adatkonverzós bug lehet ha táblalekérdezést készítek egy munkafüzetbe - egy másik excel munkafüzetből.

Előzmény: SQLkerdes (13869)
SQLkerdes Creative Commons License 2011.01.27 0 0 13870

Hát szerintem ezt felesleges makróval csinálni.

Egyszerűen a manual page break-eket cseréld le (Replace) sima bekezdésvége jelre.  A manual page break jele:  ^m (de azt hiszem a More/Special alatt is megtalálható a Replace felugró kismenüjében).

 

A makró gombhoz rendelésénél azt próbáld meg, hogy megcsinálod a "behúzást" ahogy lentebb le is írtad, jobb klikk a behúzott - jelenleg - szövegre és ott lehet lesz valami olyasmi, hogy Text/Icon, vagy hasonló (régen volt már 2003-as word a kezem alatt).  Ezt változtasd meg icon-ra, majd ugyanitt valahol a jobbklikk menüben lesz egy icon hozzárendelés.

Előzmény: Tündi2003 (13868)
SQLkerdes Creative Commons License 2011.01.27 0 0 13869

Szerintem ilyen célokra a SUBSTITUTE kéne, ahol a szóközt ""-re cseréli, utána meg szorozza 1-el.

Sőt UDF-et is lehet ilyen célra írni, a CINT vagy hasonló függvény pont jó ilyen célokra.

Előzmény: Delila10 (13867)
Tündi2003 Creative Commons License 2011.01.27 0 0 13868

Bocs, hogy ide írok, de a Word-os topic elég ritkán látogatott. :(

 

A problémám a következő, egy speciális szövegfájlt (nem .txt) kell megnyitnom Word-ben, és persze egy csomó formázást kell végrehajtani rajta, hogy használható legyen. Eddig egy DOS alapú, 80-as évekből származó szövegszerkesztőben dolgoztunk a fájlokkal, de gondoltuk, hogy ideje lenne haladni a korral. :)

 

Szóval egy csomó dolgot már tudtam makrósítani, de most az lenne a kérdésem, hogy az oldaltöréseket, amik eleve benne vannak, de rossz helyen, hogyan tudnám makróval kiszedni? Kézzel kicsit macerás...

 

Ugyanitt kérdés az is, hogy a makrót hogyan tudnám egy gombhoz (ikonhoz) hozzárendelni? Word2003-unk van a cégnél. Excelben tudom, hogyan kell, de itt csak annyit tudok megcsinálni, hogy a makró nevét, pl. Normal.NewMacros.Új behúzom az egyik eszköztárba, és akkor erre a szövegre kattintva indul a makró. De nekem csak egy ikon kellene.

 

Köszi a választ!

Delila10 Creative Commons License 2011.01.27 0 0 13867

Lehet, hogy szóköz szerepel az adataidban? Akkor a TRIM függvénnyel le kell előbb vágnod a felesleges szóköz(öke)t.

Előzmény: Törölt nick (13865)
Törölt nick Creative Commons License 2011.01.27 0 0 13866

A témától eltekintve, szeretném megköszönni a segítséged!

A táblázat tökéletesen működik!

Mégegyszer köszönöm!

 

Péter

Előzmény: Sznida (13837)
Törölt nick Creative Commons License 2011.01.27 0 0 13865

ezt ismerem, de sajnos nem jó. (Ez egy képlet eredménye (=C20*1), azt szoroztam 1-el, de nem "eszi" meg valamiért.... (#ÉRTÉK)

Valamiért nem tudja kezelni az adatkonverziót, ha táblás lekérdezéssel próbálok egy másik munkafüzetből adatokat elérni. (Az eredetiben ez tényleg szám, számként is formázva, mint írtam.)

Előzmény: Delila10 (13864)
Delila10 Creative Commons License 2011.01.27 0 0 13864

Szorozd fel a tartományt 1-gyel, irányított beillesztéssel, utána megadhatod az ezres csoportosítást.

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

nm vált be egyik szöveg/szám konverziós fgv sem, a helyiérték " " jelét mintha nem is látná...

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

a szövegként tárolt számokból hogy csinálnátok számot?:

példa:

17 774,00

100 101,00

5 564,30

 

Háttér: excel 2007

Adatok/Kapcsolatok- tallózás menüpontban táblaként hozzáadok egy mukafüzetet, amelyek így automatikusan frissülnek.

De. Az eredeti file-ban a számok # ##0,00 formában vannak (így is vannak formázva a cellák)

Viszont a kapcsolatfájlként egy másik munkafüzetbe ez már szövegként érkezik, és nem sikerül átalakítani számmá :(

 

 

 

fajlkezelo Creative Commons License 2011.01.26 0 0 13861

Sziasztok!

 

Igen, sajnos tényleg arról lehet szó, hogy a szumha nem működik jól csatoláskor :-(

 

Ha átteszem a 2 fájlt egy másik könyvtárba és bezárom az AUTO.xls

fájlt, akkor látszik, hogy a c:/temp-re hivatkozik (tehát relatívként jó marad a képlet)

 

Sok fájl van, amikre több más fájl hivatkozik, ezért lenne praktikus külön fájlokban tárolni őket.

 

Kösz a tippeket, kipróbálom őket.

 

Joe

 

Előzmény: Sztai (13860)
Sztai Creative Commons License 2011.01.25 0 0 13860

Sajnos van néhány fv (sumif, countif, indirect) amely nem működik, ha a hivatkozott fájl nincs nyitva.

A probléma megoldására két lehetőséget látok:

1. másold föl a vágólapra az adatforrás táblázatát és csatolva illeszd be a másik állományba. Erre a táblázatra hivatkozz a sumif fv-ben. (Ha akarod ezt a munkalapot később el is rejtheted)

2. A sumif fv helyett használd a sumproduct fv-t (szorzatösszeg).

=SUMPRODUCT((adatforrás_kritérium tartomány="valami")*(adatforrás_összegtartomány))

A te példádban:

=SUMPRODUCT(('C:DocumentsandSettingsuserDokumentumok2011Telefon-Tünde[AUTO.xls]12'!$B$5:$B$52=C7)*('C:DocumentsandSettingsuserDokumentumok2011Telefon-Tünde[AUTO.xls]12'!$E$5:$E$52))

Remélem érthető :-)

Üdv

 

Előzmény: fajlkezelo (13857)
erdeiboroka Creative Commons License 2011.01.25 0 0 13859

Úgy túnik, eddig a C:Documents and SettingsuserDokumentumok2011Telefon-Tünde könyvtárban voltak a fileok. Ha átteszed őket a C:temp könyvtárba, akkor a képletet javítani kell, valami ehhez hasonlóra (ez nem valószínű, hogy pont így jó).

=SZUMHA('C:temp[AUTO.xls]12'!$B$5:$B$52;C7;'C:temp[AUTO.xls]12'!$E$5:$E$52)

Előzmény: fajlkezelo (13857)
Törölt nick Creative Commons License 2011.01.25 0 0 13858

ha megteheted egyesítsd egy munkafüzetbe a kettőt (külön munkalaponként).

 

 

Előzmény: fajlkezelo (13857)
fajlkezelo Creative Commons License 2011.01.25 0 0 13857

Sziasztok!

 

Van 2 fájlom: alap.xls és AUTO.xls

Az alap.xls fájlban van egy szumha képlet, ami az AUTO.xls fájlból ad össze:

 

=SZUMHA('C:Documents and
SettingsuserDokumentumok2011Telefon-Tünde[AUTO.xls]12'!$B$5:$B$52;C7;'C:Documents
and SettingsuserDokumentumok2011Telefon-Tünde[AUTO.xls]12'!$E$5:$E$52)

 

Ha megnyitom az alap.xls fájlt csatolás frissísével, akkor #ÉRTÉK! hiba van a cellában,

viszont ha utána megnyitom az AUTO.xls fájlt, akkor megjelenik a helyes érték a cellában.

Amikor a képlet készült, akkor mind2 fájl nyitva volt és jól is működött.

Ha kijelölöm az AUTO.xls fájlban az $E$5:$E$52 tartományt, akkor összeadja az állapotsorban.

 

Áttettem a c:temp könyvtárba, de úgy sem működött, Excel 2000-esem van, de 2003-mal se jó.

 

Van valami ötletetek?

 

Köszönöm

 

Joe

NeomatiK Creative Commons License 2011.01.23 0 0 13856

Ja bocs, persze 2011.01.01. a további dátum, csak ide írtam rosszul.

 

A második kérdésedre: először "sima" különbséget akartam, de 1900.01.... adott eredményül.

De most megformáztam számra, ahogy írtad. Így most jó lett. Köszi szépen! :)

Előzmény: Sztai (13855)
Sztai Creative Commons License 2011.01.23 0 0 13855

A nap360 függvény 12 db, 30 napos hónappal kalkulál, mintha egy évben csak 360 nap lenne.

Két kérdésem lenne:

1. 2010.12.31 után direkt írtál 2010.01.01-et vagy 2011.01.01-et akartál írni?

2. Miért nem számolod simán a két dátum különbségét és formázod meg mint szám és nem dátum?

Üdv

Előzmény: NeomatiK (13853)
NeomatiK Creative Commons License 2011.01.23 0 0 13854

Ez nálam is elő szokott fordulni. De érdekes, mert nem mindig.

Előzmény: Lesleee (13850)
NeomatiK Creative Commons License 2011.01.23 0 0 13853

Sziasztok!

 

A oszlopban dátumok

 

2010.12.01.

2010.12.02.

.

.

.

2010.12.31.

2010.01.01.

2010.01.02.

 

B oszlopban függvény a napok különbözetével, hogy megkapjam az első dátum és az

adott sorban lévő dátum között eltelt napk számát:

 

 

=NAP360($A$1;A1+1)

=NAP360($A$1;A2+1)

=NAP360($A$1;A3+1)

stb

 

 

Viszont a 31 napos hónapoknál a 30. napra ad egy számot: legyen 30

és a 31. napra is ad egy számot, szintén 30-at.

A következő napra (ami a következő hónap 1-e) adja a 31-et eredményül, ahol már a 32 kettő lenne a helyes.

 

Hogy lehet ezt jól csinálni?

 

Köszi előre is.

Lesleee Creative Commons License 2011.01.23 0 0 13852

Zseni vagy, köszönöm :-)!

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

Zárd be. Indísd újra.

Előzmény: Lesleee (13850)
Lesleee Creative Commons License 2011.01.23 0 0 13850

Sziasztok!

 

2007-es Office-t telepítettem fel, és az első Excel indítás után a billentyűkombinációk meghülyültek.

 

A ctrl+s, a ctrl+c, a ctrl+v hatására egy törlés panel jön ki, és rákérdez, hogy merre törölje a cellákat.

 

Többször telepítettem már fel, és ilyet eddig nem produkált.

 

 

Valakinek ötlete?

exszajmon Creative Commons License 2011.01.21 0 0 13849

Köszi szépen Robbantomester, így már világos

Törölt nick Creative Commons License 2011.01.21 0 0 13848

8-nál meg persze hogy helyes értéket ad. mert 8dec =  1000bin tehát dec1000*dec1000=dec1000000 és dec2bin(8*8) is = 1000000

Előzmény: exszajmon (13846)
Törölt nick Creative Commons License 2011.01.21 0 0 13847

Ez normálisnak mondható szerintem.

DEC2BIN(7)*DEC2BIN(7) = 111*111 = 12321: Ugyanis attól, hogy te átváltottad binárissá, ő még nem tudja, hogy nem decimális számokat kell összeszoroznia - ezért alapértelmezetten decimálisnak gondolja.

 

 

Helyes így lenne:  =DEC2BIN(7*7)

 

Előzmény: exszajmon (13846)
exszajmon Creative Commons License 2011.01.21 0 0 13846

Sziasztok!

 

Az lenne a kérdésem, miért számol bizonyos értékeknél helytelenül, ha 2-es számrendszerben készítek szorzótáblát, a szorzók 10-es számrendszerben vannak és a függvényeket szoroztam össze pl.: 8-nál mindig helyes értéket ad /dec2bin(8)*dec2bin(8)=  1000000/, más értéknél pl.:7-nél pedig 2-est és 3-ast is beletesz a számba /dec2bin(7)*dec2bin(7)=12321/ remélem érthető a problémám.

 Valaki tudna segíteni, hogy mit csinálok rosszul?

Sajnos a printscreent nem voltam képes beszúrni.

 

 

SQLkerdes Creative Commons License 2011.01.21 0 0 13845

Hát, akkor még használhatod az MMULT worksheet függvényt VBA-ból meghívva: Application.mmult(...)

Előtte csinálj egy tömböt aminek minden eleme 1000 (ajánlom a REPT() függvény és a SPLIT method használatát), a két tömböt már szorozhatod egymással az MMULT használatával.  Bizonyos elemszám fölött gyorsabb mint egyenként végig loop-olni.

Előzmény: Or Kán (13844)
Or Kán Creative Commons License 2011.01.20 0 0 13844

Kösz, csak pont ezt az egyenkénti értékmegadást akartam elkerülni.

 

Viszont, az előző megoldásodat "lemakróztam" a következők szerint:

 

Sub osztás()

Cells(10, "d") = 1000

Cells(10, "d").Copy

Range("A1:D5").PasteSpecial Operation:=xlDivide

End Sub

 

Jobb híján ez is meg tudja a műveleti sebességet növelni sok sor/munkalap esetén.

 

Köszi a választ.

Előzmény: SQLkerdes (13843)
SQLkerdes Creative Commons License 2011.01.20 0 0 13843

Hát egy For...Next ciklussal végigmehetsz rajtuk és egyenként eloszthatod.

Ha nem ismered akkor az Ubound és Lbound -nak nézz utána.

Előzmény: Or Kán (13842)
Or Kán Creative Commons License 2011.01.20 0 0 13842

Nagyon jó köszi, csak még a "tomb" változó elemeivel szeretnék műveletet csinálni (pl. elosztani azokat 1000-el) és ez még nem megy.

Előzmény: SQLkerdes (13841)
SQLkerdes Creative Commons License 2011.01.20 0 0 13841

Első probléma:  A1:D5 elemeinek osztása ezerrel úgy, hogy az eredmény az A1:D5 tartományban felülírja az eredeti értékeket.

 

- írd be bármelyik üres cellába (pld D10) azt hogy 1000

- D10:  Copy (aka Ctrl+C)

- jelöld ki az A1:D5 tartományt

- Paste Special, a feljövő ablak "Operations" ( Műveletek? ) részében válaszd a Divide (Osztás?) opciót.

- OK

 

Kész is vagy.

 

Második

 

Sub valami()
Dim tomb
tomb = ActiveSheet.Range("a1:d5")

End Sub

 

A kijelölt range dimenziója automatikusan meghatározza a Tomb nevu tomb dimenzióját.

Előzmény: Or Kán (13840)
Or Kán Creative Commons License 2011.01.20 0 0 13840

Sziasztok!

 

Azt szeretném megkérdezni, hogy egy cellatartományban lévő értékeket (pl. A1:D5) hogy lehet úgy elosztani pl. ezerrel (ugyanebben a tartományban), hogy ne kelljen minden cellában külön a műveletet elvégezni (tehát kvázi tömbműveletként)?

 

Ehhez tartozó másik probléma, hogy egy cellatartomány értékeit (pl. A1:D5) hogy lehet tömbváltozóba (a(5,4)) úgy beletenni, hogy az egy művelet legyen (tehát hogy ne kelljen futtatni a sor- és oszlopindexet)? 

Törölt nick Creative Commons License 2011.01.20 0 0 13839

Ez a LEFT JOIN remek ötlet :-)

Végül ezt sütöttem ki:

 

SELECT Min(t1.plusone)
FROM [SELECT  fld+1 AS plusone FROM tbl]. AS t1 LEFT JOIN tbl ON t1.plusone = tbl.fld
WHERE (((IsNull([tbl].[fld]))=True));

 

Tízezer soros táblánál egy szempillantás alatt kiadja a végeredményt, segédtábla nélkül, egy lekérdezésbe sűrítve, és ráadásul úgy, hogy a mező nincs is indexelve. Király :-)

 

Köszönöm a tippeket mindekettőtöknek.

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

except helyett ez is visszaadja a különbséget:

 

Select Ertek FROM @halmaz as t0
LEFT JOIN @halmaza as t1 on t0.Ertek = t1.Erteka
Where t1.Erteka IS NULL

 

az eredményből már csak a legkisebbet kell kiemelni

Előzmény: Törölt nick (13832)
Sznida Creative Commons License 2011.01.18 0 0 13837

Nagyon szívesen,  máskor is! :)

 

Szép napot!

 

Üdv: Sznido

Előzmény: briger_ (13836)
briger_ Creative Commons License 2011.01.18 0 0 13836

Nagyon szépen köszönöm, gyors volt és működik:)))

Thx:)

briger

Előzmény: Sznida (13834)
Törölt nick Creative Commons License 2011.01.18 0 0 13835

sajnos nem :( acces-ban csak UNION van, még intersect sincs....

Rákerestem, csak subquery-s javaslatokat találtam... pl.:

 

http://p2p.wrox.com/access/55073-minus-except-ms-access.html

Előzmény: Törölt nick (13832)
Sznida Creative Commons License 2011.01.18 0 0 13834

Szia Briger,

 

2. pont:

 

Munka1 munkalap, alapadatok:

 

 

Munka2 munkalap:

 

B4-es cella képlete: =JOBB(FKERES($B$1;Munka1!A:F;4;HAMIS);1)

B5-ös cella képlete: =HA(BAL(FKERES($B$1;Munka1!A:F;4;HAMIS);1)="H";"Haladó";HA(BAL(FKERES($B$1;Munka1!A:F;4;HAMIS);1)="K";"Kezdő";"Elírás történt"))

 

Természetesen nagyon odafigyelve, hogy a Sorszám formatuma megegyezzen a két munkalapon!

 

Üdv: Sznido

Előzmény: briger_ (13831)
Sznida Creative Commons License 2011.01.18 0 0 13833

Szia Briger,

 

1.

A fokozat és végzettség tartomány a munka2 munkalapon, az "1"-es (A3-as cella) sort lejjebb toltam, mert így könnyebb számolni, lásd csatolt kép:

Munka1 munkalap:

D4-es cella képlete: =HA(HÓNAP(C4)<=HÓNAP($C$1);ÉV($C$1)-ÉV(C4);ÉV($C$1)-ÉV(C4)-1)

F4-es cella képlete: =FKERES(E4;Munka2!A:K;HOL.VAN(B4;Munka2!$A$1:$K$1;0);HAMIS)*VKERES(B4;Munka2!$A$1:$K$2;2;HAMIS)

 

A többire, pedig lehúzod!

 

A 2. feladattal még foglalkozom!

 

Üdv: Szndio

 

Előzmény: briger_ (13831)
Törölt nick Creative Commons License 2011.01.18 0 0 13832

Ezt az EXCEPT műveletet az Acess is ismeri?

Előzmény: Törölt nick (13830)
briger_ Creative Commons License 2011.01.18 0 0 13831

 

Üdv, 2 kérdéskörben kérem a segítségetek:

1.

- Évek oszlop kitöltése: a "Mióta" és "Jelenlegi dátum"-ból, de a hónapokat is figyelembe kell venni, azaz annak a hónapnak az elsején kell növelni a munkában töltött évek számát eggyel, amelyben a munkavégzés elkezdődött.

- Szorzó oszlop kitöltése "Végzettség" és "Fokozat" tartományokból:

 

2.

"Adatok" tartományból veszem az adatokat:

 

Tetszőleges sorszám beírása után Fkeressel hozom a nevet és az osztályzatot. A csoporthoz a H_A-ból viszont csak a jobb szélső karaktert kéne hozni, a Minősítéshez ugyanebből a H_A-ból a bal szélső alapján kiírni, hogy Haladó (vagy K_A azaz kezdő)

 

 

 

Thx:)

briger

Törölt nick Creative Commons License 2011.01.17 0 0 13830

Tényleg csak megjegyzés szintjén...

Nagyon jól leírta SQLkerdes kolléga a  13822-ben a módszert. Viszont ne feledkezzünk meg arról sem, hogy az EXCEPT (Különbségképzés) kulcsszót kifejezetten erre találtaák ki SQL-ben.

 

pl.

 

DECLARE @halmaz TABLE (Ertek int)
DECLARE @halmaza TABLE (Erteka int)
INSERT INTO @halmaz (Ertek) VALUES (1)

INSERT INTO @halmaz (Ertek) VALUES (2) 
INSERT INTO @halmaz (Ertek) VALUES (3)
INSERT INTO @halmaz (Ertek) VALUES (4)

INSERT INTO @halmaz (Ertek) VALUES (5) 
INSERT INTO @halmaz (Ertek) VALUES (6)
INSERT INTO @halmaza (Erteka) VALUES (1)
INSERT INTO @halmaza (Erteka) VALUES (3)
INSERT INTO @halmaza (Erteka) VALUES (5)
INSERT INTO @halmaza (Erteka) VALUES (7)
INSERT INTO @halmaza (Erteka) VALUES (9)
INSERT INTO @halmaza (Erteka) VALUES (11)

Select * FROM @halmaz EXCEPT Select * FROM @halmaza

 

Eredmény: 2,4,6

Előzmény: Törölt nick (13827)
Törölt nick Creative Commons License 2011.01.17 0 0 13829

Köszönöm a tippet, amúgy.

Előzmény: SQLkerdes (13823)
Törölt nick Creative Commons License 2011.01.17 0 0 13828

Na igen, csak ez 7500 rekord esetében több, mint 5 percig fut. Bizonyára 7500-szor megcsinálja a subquery-t...

Lehet, hogy mégiscsak ideiglenes tábla lesz belőle...

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

Plusz táblát nem akarnék létrehozni, de talán nem is kell.

A javaslatodból kiindulva erre jutottam:

 

SELECT Min(Field) AS Kif
FROM Table
WHERE (Field+1) Not In (SELECT Field FROM Table);

 

 

Előzmény: SQLkerdes (13822)
MGD1 Creative Commons License 2011.01.17 0 0 13826

Nagyon szepen koszonom.

Előzmény: Ordas (13825)
Ordas Creative Commons License 2011.01.17 0 0 13825

Parasztos megoldás:

 

3. oszlop, legyen a C

2. oszlop a B

1. oszlop az A.

 

C1 cellába írandó:

=HA(B1="X";A1;" ")

 

Aztán ezt lehúzni és ezt lehúzni az összes sorhoz.

Előzmény: MGD1 (13824)
MGD1 Creative Commons License 2011.01.17 0 0 13824

Sziasztok

 

Van ket oszlopom ahol az elso oszlopban ertekek es a masodik oszlopban x szel szeretnem jelolni kivalasztott ertekeket amelyeket egy harmadik oszlopban szeretnem megjeleniteni.

 

      1 oszlop       2 oszlop   3 oszlop

          25                  x             ?

          35

          45                  x             ?

          12

SQLkerdes Creative Commons License 2011.01.17 0 0 13823

Mondjuk a COUNTNUMBERS-t nem is feltétlenül nehéz létrehozni, mert csak csinálsz egy segédtáblát ami nulla és valami elégségesen nagy szám között minden számot tartalmaz (FULLCOUNTNUMBERS), majd csinálsz egy olyan JOIN-t, ahol csak az ACTUALNUMBERS minimuma és maximuma közötti értékek kerülnek be.  Túlbonyolítottam:  egy sima WHERE elég ehhez...

Előzmény: SQLkerdes (13822)
SQLkerdes Creative Commons License 2011.01.17 0 0 13822

Valami ilyesmit csinálnék:

- menjünk végig (for next) a lenti számokon a másodiktól kezdve és vonjuk ki a nagyobb sorszámút a kisebb sorszámúból (lenti példa:  1-0)

- ahol a különbség nem egy, ott a legkisebb hiányzó szám, amit úgy lehet előállítani, hogy a fenti kisebb sorszámú számhoz hozzáadok 1-et (5-3 nem 1, hanem kettő, ezért a keresett szám 3+1)

 

Vagy:  állíts elő egy olyan adattáblát (COUNTNUMBERS) ami minden számot tartalmaz a már meglévő adattáblád (ACTUALNUMBERS) minimuma és maximuma között.

Ezután csinálj egy JOINT-ot amit csak azokat a számokat mutatja, amik benne vannak a COUNTNUMBERS-ben, de nincsenek az ACTUALNUMBERS-ben (outer join), majd az így létrejövő "táblának" vedd a minimumát.

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

Nem igazán Exceles probléma, hanem algoritmus, és nem is Excelben akarom használni, hanem adatbázis-lekérdezésben, de azért felteszem ide, mert itt okos emberek vannak, és hátha van valakinek jó ötlete.

 

Egy adatbázis mező értékei természetes számok lehetnek. Minden szám csak egyszer szerepelhet benne, de (nyilván) nem mindegyik szám szerepel benne ténylegesen. Például:

 

0

1

2

3

5

8

23

 

Az a kérdés, hogy hogyan lehet gyorsan és elegánsan meghatározni azt a legkisebb természetes számot, ami nincs benne a halmazban. (A fenti példa esetében 4.) A kézenfekvő megoldás az lenne, hogy egy For..Next ciklussal, 0-tól a halmaz llegnagyobb eleméig egyenként végignézem a számokat. Ezzel csak az a bajom, hogy nem gyors, és nem elegáns.

Van valakinek jobb ötlete? Az SQL nyelv sajátosságait fel lehet használni a megoldáshoz.

esy.gab Creative Commons License 2011.01.15 0 0 13820

A "KERTBIRODALOM".

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

melyik ez az online játék?

Előzmény: esy.gab (13800)
esy.gab Creative Commons License 2011.01.13 0 0 13818

Megnéztem. Sajnos nem. Azt kell gondolnom erre nincs megoldás. De azért köszi.

Előzmény: Törölt nick (13801)
Törölt nick Creative Commons License 2011.01.13 0 0 13817

Pedig alap szerintem, hogy pl. egy 30 oszlopot tartalmazó adatmezőben ne kelljen egyesével zongorázgatni az oszlopokon. Most volt egy ilyenem és akkor jöttem ide. (Eddig 4-5-6 oszlopokkat a legrövidebb úton összekattintgattam, de mostanra begurultam)

Előzmény: Sztai (13814)
Törölt nick Creative Commons License 2011.01.13 0 0 13816

Ez jó lesz, nem jutott eszembe. ('Homlokra csap'). Megpróbálok  *.xla-t készíteni belőle és bővítményként berakni.

Előzmény: SQLkerdes (13813)
SQLkerdes Creative Commons License 2011.01.13 0 0 13815

És lehet, hogy még a Pivottable.PreserveFormatting-ot is érdemes TRUE-ra állítani, hogy ha változtatsz a PivotTábla kinézetén akkor az ne barmolja össze a már beállított számformátumaidat.

Előzmény: SQLkerdes (13813)
Sztai Creative Commons License 2011.01.13 0 0 13814

Én is a 2007-es ről beszéltem, de ahogy írtam is sajnos sem a beépített piv stílusoknál, sem a custom stílusnál nem lehet számformátumot beállítani, így csak a makro marad, ahogy SQLkerdes is írja. (ahogy eddig tapasztaltam a 2010-es verziónál is probléma maradt :-( )

Üdv

Előzmény: Törölt nick (13812)
SQLkerdes Creative Commons License 2011.01.13 0 0 13813

Még a következő jutott eszembe:

- a Personal makrobook-odba tegyél egy makrót, amit hozzárendelsz egy gombhoz, amit kiteszel a QuickAccessToolbar-ba

- a makró menjen végig az ActiveSheet minden pivottábláján és annak minden pivotfield-jén (for each ... next ciklus)

- és állítsa át a pivotfield(indexszám).numberformat-ot olyanra amit szeretsz

 

Valami ilyesmire gondolok:

 

Sub valami()
Dim PT As PivotTable

Dim PF As PivotField

On Error Resume Next

For Each PT In ActiveSheet.PivotTables

    For Each PF In PT.PivotFields

       PF.NumberFormat = "#,##0.0_ ;[Red]-#,##0.0 "

    Next

Next


End Sub

 

Ha nagyon kreatív hangulatban vagy, akkor még azzal is játszhatsz, hogy programilag bekéred, hog hány tizedesjegyet akarsz látni, akár az elején, akár pivotfield-enként.

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

Szia, köszönöm. Félreértettelek. A Hozzászólásod alapján azt gondoltam kifejezetten a pivottábla keretein belül van valami sablonkészítés. Ezt ismertem, és sajnos a kérdéses pivotos esetben nem is használható (mint ahogy írtad is).

 

Egy ötletem van 2007-esben. Ebben már van egy csomó beépített kimutatás stílus - ott szerintem létre is lehet hozni a megfelelőt.

 

 

Előzmény: Sztai (13811)
Sztai Creative Commons License 2011.01.12 0 0 13811

A sablon készítés egyszerű (lsd alább), de sajnos nem jó, mert a pivot fölülírja. Be lehet állítani alapértelmezett stílust a pivot táblára, de ott pedig nem lehet számformátumot megadni.

Még keresem a megoldást.

sablon készítés:

Egy üres munkafüzetet megformázol úgy ahogy szeretnéd (akár szöveget és értékeket is beírhatsz) és sablonként mented el (Save As Type Template xltx) Ilyenkor felajánlja a template könyvtárat (Doc. and Sett.UserNameAppl.DataMicrosoftTemplates)

Ezután ha új munkafüzetet nyitsz, (Office gomb-New-MyTemlate) kiválaszthatod a sablonodat. Ha a sablon neve pl. PivMfüzet akkor a címsorban majd ez áll: PivMfüzet1.

üdv

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

Egyébként én a monitor beállításaival próbálkoztam, sikertelenül :(

Ha nem kíván részedről utánajárást (mivel jómagam is időt szeretnék spórolni), akkor leírnád hogy a sablon készítést kb. merre keressem?

 

Előzmény: Sztai (13809)
Sztai Creative Commons License 2011.01.12 0 0 13809

A kijelölés szinét a windowsban lehet (lehetne!) beállítani

Display properties/Appearance/Advanced, majd az Advanced Appearance ablakban kiválasztani a Selected Item-et és megváltoztatni a szinét. Sajnos azonban ez excel 2007-nél nem működik :-( (Word 2007-nél igen)

Eddig azt találtam a legjobbnak ha a szin beállításoknál a gammát csökkentettem (lehet a kontrasztot is) Diplay Properties/Settings/Advanced és az új ablakban (videokártya függő) a Color fülön módosítottam a beállításokat.

Üdv

ps:

A pivotban nem lehet alapértelmezett érték formátumot beállítani. Sablont viszont lehet készíteni és azt használd, ne a normált módosítsd.

 

Előzmény: Törölt nick (13803)
tt65 Creative Commons License 2011.01.12 0 0 13808

Ezzel én is tisztában vagyok.

Amit te ábrázoltál, az igazából nem egy út - idő diagram, ahogy az szokott lenni, hanem tulajdonképp egy táblázat, amiből le lehet olvasni, hogy adott v kezdősebesség mellett mekkora a fékút, ami egy egyenes vonalú egyenletes mozgásból áll a reakcióidő leteltéig, majd egy lassuló szakaszból.

 

Próbáld meg amit kifejezni akartál egy út(idö) vagy sebesség(idö) alakban ábrázolni! :-)

Előzmény: szkripnyik (13796)
Törölt nick Creative Commons License 2011.01.12 0 0 13807

No, ezt kipróbálom ha lesz időm rá, köszi. Amúgy nagyon úgy emlékszem, hogy régen láttam ilyen beállítást, most az istennek sem találtam meg. (Még 2003-asban)

Előzmény: SQLkerdes (13805)
Törölt nick Creative Commons License 2011.01.12 0 0 13806

köszönöm szépen az ötletet - egyébként makróval menne - de nincs rá szükség és egyéb okok miatt nem is optimálás (máshol nincs engedélyezve, kinyírja a undo/redo funkciót stb...)

Egyébként - utalva a kommentezett részre - nem esztétikai a probléma, hanem valószínűleg színlátási. Nekem a sok fehér cella közé olvad ez a szín és nem látom. (Nem hiszem én vagyok az egyetlen...). Persze a cellaháttérszínt lehet alapértelmezettet választani - és ettől talán meg is oldódik a probléma.

Előzmény: SQLkerdes (13804)
SQLkerdes Creative Commons License 2011.01.12 0 0 13805

Ebben nem vagyok biztos, de hátha segít.

Mintha azt olvastam volna valahol, hogy a Normál stílus-t használja, így ha a Normál stílusod számformátumát átállítod (jobb klikk, Modify vagy bármi is van a magyar verzióban) akkor az hatással van a Pivot táblára is.

Rossz hír, hogy a beállítás helyi, vagyis ha egy másik kollegád megnyitja és az ő Normál stílusa nem olyan mint a tied, akkor nem azt a formátumot fogja mutatni, mint a tieden.  Gondolom egy megnyitáskor a háttérben lefutó kis makró ezt meg tudja oldani, de sok helyen a makrók alapból tiltva vannak.

Előzmény: Törölt nick (13803)
SQLkerdes Creative Commons License 2011.01.12 0 0 13804

Cellakijelölés témakörben nekem ezt dobta a gúgli.

 


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Cells.FormatConditions.Delete

With Target

.FormatConditions.Add Type:=xlExpression, Formula1:="TRUE"

.FormatConditions(1).Interior.ColorIndex = 24  'Ezt kell változtatni ha a sötétszürke nem tetszik.

End With

End Sub

 

 

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

sziasztok,

egyszerű: (2007)

kimutatás táblában az adat mező számformátum beállításaihoz létezik e alapértelmezett beállítás? Nem találok...

 

másik:

A cellakijelölés "színét" lehet állítani szerintetek, vagy csak én nem találom? Én sajnos nem nagyon látom és sokszor zavart már...

 

andzsin Creative Commons License 2011.01.12 0 0 13802

kösz mindenkinek, mindegyik működik, még jó, hogy lehet válogatni:)

Előzmény: Törölt nick (13791)
Törölt nick Creative Commons License 2011.01.11 0 0 13801

Elképzelhető, hogy amikor beírod a jelszót, kiválasztod a szervert, stb, az a gomb lenyomása után megjelenik az URL-ben.

Ha így van, akkor azt az URL-t másold ki, és azt már le tudod követni Excellel.

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

Hát sajnos a programozáshoz sem értek. Ahogy a kérdésben írtam talán az excellhez egy picit, és itt a hangsúly a picin van.

Csak, hogy érthetőbb legyek az oldal adminisztrátora természetesen nem én vagyok. Egyébként ez egy népszerű online játék oldala ahonnan szeretném az adatokat bekérni egyszerű szöveges formában. Igazából nem is jó a megfogalmazás mert nem adatokat kérek be hanem az oldal bizonyos részeit az excel lemásolja és beilleszti a megadott cellákba, mint szöveg. és innen használom én fel stb,stb,stb...

Ezzel nem is lenne baj csak az oldalra be kell jelentkezni, egy legördülő menüből kiválasztani hanyas szerverre szeretnék belépni, felhasználónév, jelszó.

Bocs. Kicsit eltértem a tárgytól. Nos PHP-hez nem értek, ezért indultam erre. De nem tudom a megoldást. (Ha van.)

Előzmény: Jules1028 (13798)
esy.gab Creative Commons License 2011.01.11 0 0 13799

Ebben igazad van, robbantomester de nem indíthatok minden excel tábla nyitáskor új adatbekérést. Ugyanezt a megoldást írtam le a kérdésben is csak nem új adatbekéréssel nyitom ki az exel saját böngészőjét hanem a meglévő egyik szerkesztésével. Végül is mindeg hogyen de ez így nagyon körülményes. Ezt a megoldást szeretném leegyszerűsíteni. Jelenleg kb 40 bekérés van különböző lapokról, ami előre be van állítva és ezeket szeretném frissíteni automatikusan, vagy belépő képernyőről.

Előzmény: Törölt nick (13797)
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: Törölt nick (13733)
Törölt nick 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: Törölt nick (13732)
Törölt nick 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: Törölt nick (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: Törölt nick (13683)
Törölt nick 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: Törölt nick (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)
Törölt nick 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: Törölt nick (13682)
Törölt nick 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: Törölt nick (13636)
Törölt nick 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: Törölt nick (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)
Törölt nick 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: Törölt nick (9698)
Törölt nick 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)
Törölt nick 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)
Törölt nick 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)
Törölt nick 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: Törölt nick (13559)
Törölt nick 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: Törölt nick (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)
Törölt nick 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)
Törölt nick 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...)

Törölt nick 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: Törölt nick (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: Törölt nick (13503)
Törölt nick 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: Törölt nick (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)
Törölt nick 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)
Törölt nick 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: Törölt nick (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: Törölt nick (13494)
Törölt nick 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: Törölt nick (13492)
Törölt nick 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: Törölt nick (13490)
Törölt nick 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: Törölt nick (13488)
Törölt nick 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: Törölt nick (13484)
Törölt nick Creative Commons License 2010.11.27 0 0 13486

Rosszul látod ;-)

Előzmény: Törölt nick (13485)
Törölt nick 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: Törölt nick (13477)
Törölt nick 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: Törölt nick (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: Törölt nick (13480)
Törölt nick 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)
Törölt nick 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: Törölt nick (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: Törölt nick (13476)
Törölt nick Creative Commons License 2010.11.26 0 0 13477

Jimmy! Nagyon passzív vagy mostanában.

Előzmény: Törölt nick (13427)
Törölt nick Creative Commons License 2010.11.26 0 0 13476

Jól sejtem, hogy nem próbáltad ki?

Előzmény: SQLkerdes (13473)
Törölt nick 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)
Törölt nick 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)
Törölt nick 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: Törölt nick (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: Törölt nick (13450)
Törölt nick 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)
Törölt nick 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: Törölt nick (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:

 

Törölt nick 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)
Törölt nick Creative Commons License 2010.11.26 0 0 13428

;-)

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

Ez jó! :-)

Előzmény: Törölt nick (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)
Törölt nick 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)
Törölt nick 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: Törölt nick (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)
Törölt nick 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: Törölt nick (13410)
Törölt nick 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: Törölt nick (13407)
Törölt nick 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: Törölt nick (13407)
Törölt nick 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: Törölt nick (13405)
Törölt nick 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: Törölt nick (13403)
Törölt nick 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: Törölt nick (13401)
Törölt nick 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: Törölt nick (13391)

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