Keresés

Részletes keresés

Sánta Kutya (SK) Creative Commons License 2011.10.01 0 0 16169

Hogy lehet a legegyszerűbben meghatározni, hogy egy számhalmazban melyik intervallumba hány érték esik? Ezt csináltam ebből. Az adatok időformátumban voltak megadva, így az ÓRA függvénnyel levettem az órát, kihúztam egy számsort, és a DARABTELI függvénnyel meghatároztam a számokat, de ez csak azért működött, mert minden intervallum 1 hosszúságú volt. Mi a legegyszerűbb általános módszer? Valami DB-függvényre tippeltem, de nem találtam meg. (Excel 2000)

_hályogkovács Creative Commons License 2011.10.01 0 0 16168

Próbáld ki ezt:

 

Private Sub ComboBox1_Change()


    TextBox1.Text = Range("A:A").Find(What:=ComboBox1.Text, After:=ActiveCell,_   LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,_   MatchCase:=False, SearchFormat:=False).Offset(0, 1).Value
    TextBox2.Text = Range("A:A").Find(What:=ComboBox1.Text, After:=ActiveCell,_ LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,_ MatchCase:=False, SearchFormat:=False).Offset(0, 2).Value


End Sub

Előzmény: kovacsmiklos1985 (16162)
Sánta Kutya (SK) Creative Commons License 2011.10.01 0 0 16167

Ha ismétlődik a feladat, akkor érdemes lehet a makrórögzítővel csinálni rá egy makrót, amihez neked nem kell programozni.

 

Az is egy megoldás, hogy exportálod az egészet, aztán feldolgozod valamilyen programmal.

Előzmény: Lummox (16165)
Sánta Kutya (SK) Creative Commons License 2011.10.01 0 0 16166

De van, csak azzal nem neked kell dolgozni, hanem annak, aki segíteni akar. :-) Nyilván lehet olyan makrót írni, amelyik megoldja a problémát. De mi itt azért alapvetően normális (még ha nem is normalizált :-)) Excel-táblázatokkal foglalkozunk, és a több érték egy cellában nem tekinthető normális használatnak. Én is csak ezt tudom javasolni, kell belőle csinálni egy rendes táblázatot.

Előzmény: Lummox (16165)
Lummox Creative Commons License 2011.10.01 0 0 16165

Ezt a variációt akartam elkerülni :)

De ha nincs más megoldás akkor maradok ennél.

Előzmény: Delila10 (16164)
Delila10 Creative Commons License 2011.10.01 0 0 16164

Ha vannak üres oszlopok a helységnevek, és a napok száma után, akkor a "Szövegből oszlopok" menüponttal fél perc alatt külön oszlopba rendezheted a vesszővel elválasztott szövegrészeket.

Ha nincs, akkor másold ezeket az adatokat egy másik lapra, és ott végezd el a szétválasztást, majd ehhez másold az űrlap többi részét.

Előzmény: Lummox (16163)
Lummox Creative Commons License 2011.10.01 0 0 16163

Sziasztok!

 

Kérdőív-feldolgozás közben vetődött fel 1 kisebb problémám, ami a következő:

Az első munkalapom tartalmazza a kérdőív kérdéseit és az ahhoz beérkezett válaszokat. Az egyik kérdés az utazási célpontokra vonatkozik melynél több válaszlehetőséget is meg lehet jelölni. Ezt a rendszer (google docs) egy cellába menti el, a válaszokat vesszóvel elválasztva (pl. C14 cella tartalma: Balaton, Budapest, Tisza-tó). Egy másik kérdés az utazások hosszára vonatkozik, ahol több válaszlehetőség közül 1-et lehet kiválasztani (1 éjszaka, 2-3 éjsz., ...stb).

E 2 kérdés alapján szereték kimutatást csinálni úgy, hogy utazási célpontonként szeretném megvizsgálni, hol mennyi időt tartózkodtak a válaszadók. A gondot az jelenti, hogy az első kérdésre több válaszlehetőség is adható, így egy adott cellán belül több válasz is lehet, amiket én szétbontva válaszonként szeretnék összevetni az időhosszra vonatkozó kérdéssel. Az kéne, hogy az első kérdésre leadott válaszlehetőségek cellánkénti előfordulását számolja meg a 2. kérdésre leadott válaszehetőségek szerint. (pl. hányan utaztak Budapestre (is), akiknek az utazásainak hossza átlagosan 2-3 éjszaka).

Remélem érthető voltam. Amennyiben lenne ötletetek, hogy tudnám megoldani, azt előre is megköszönném.

 

kovacsmiklos1985 Creative Commons License 2011.09.30 0 0 16162

Sziasztok!

 

Azt szeretném megoldani, hogyha van egy excel munkafüzetem, melynek 3 különböző oszlopába (A,B,C) soronként más-és más adatok vannak, és ha egy VBA formon lévő combobox listából kiválasztom monjuk az egyik elemet (mondjuk A oszlop elemeiből, amit már előtte egy kóddal beolvastattam a combobox elemeinek), akkor 2 textbox szövege automatikusan kitöltődjön a B és a C oszlopokban lévő adatokkal (természetesen egy sorban lévő értékekre gondolok).

 

Valami ötletetek van?

Törölt nick Creative Commons License 2011.09.30 0 0 16161

ha kejelölsz a diagramon egyvagy több értéket, akkor azokra külön tudsz érvényesíteni egy másik diagramtípust.

Pl.: Létrehotol egy oszlopdiagramot. Abba kijelölsz néhány adatoszlopot, majd választassz egy vonaldiagram típust. Így a kiválasztott oszlopdiagramok most vonalak lesznek és amit nem választottál ki az oszlop marad.

Előzmény: kuka.c (16156)
Jimmy the Hand Creative Commons License 2011.09.30 0 0 16160

Szívesen :)

Előzmény: Delila10 (16159)
Delila10 Creative Commons License 2011.09.30 0 0 16159

Köszönöm.  Erre soha nem gondoltam volna, már mióta szenvedek vele!

Előzmény: Jimmy the Hand (16158)
Jimmy the Hand Creative Commons License 2011.09.30 0 0 16158

MsgBox Range("A1").Name.Name

Előzmény: Delila10 (16157)
Delila10 Creative Commons License 2011.09.30 0 0 16157

Nem találom, hogyan lehet lekérdezni egy cella definiált nevét.

Tudtok segíteni?

kuka.c Creative Commons License 2011.09.30 0 0 16156

Sziasztok,

Kérnék egy kis segítséget. Új 2010-es excelem lett telepítve. Kérdésem, hol található, van-e olyan funkciója, hogy oszlop-vonal diagram. (pl. vannak havi/heti érétkeim, és vannak havi/ heti céljaim is meghatározva.) A 2003-asban ez könnyen ment, de sajnos az újban sehol nem találom és az F1 is csak trendvonalat hoz fel nekem.

kovacsmiklos1985 Creative Commons License 2011.09.30 0 0 16155

Előző kérdésem tárgytalan, megoldottam! :) Köszi a segítséget% :)

Előzmény: Jimmy the Hand (16153)
kovacsmiklos1985 Creative Commons License 2011.09.30 0 0 16154

És ebben a kódban hol kell jelölni, hogy melyik munkalapra íródjanak a tételek?

Előzmény: Jimmy the Hand (16153)
Jimmy the Hand Creative Commons License 2011.09.30 0 0 16153

    Dim c As Range
    For Each c In Range("A50:D50")
        c.Value = Application.WorksheetFunction.Sum(c.Offset(-49).Resize(49))
    Next

Előzmény: kovacsmiklos1985 (16152)
kovacsmiklos1985 Creative Commons License 2011.09.30 0 0 16152

Sziasztok!

 

Azt szeretném elérni, hogyha egy VBA-ba-ban megírt userformon található Commandbutton-ra kattintok, akkor az excel Munkalap 1 felületén egy sor A50 cellától kezdődően egészen D50 celláig bezárólag szumma módon összeadja oszloponként az 50-es sor előtti sorok tartalmát, és kijelezze azt oszloponként az 50-es sor A-D mezőiben. Lehet kicsit bonyolultan fogalmaztam, magyarul: szeretném ha egy gombnyomásra összeadná egy adott oszlopban található értékeket a programkód, és az 50-es sorben kijelezné az így kapott összegeket :) Tudom, hogy excelben a szum függvény tökéletes erre, de az nem jó ahhoz, amit én szeretnék vele.

 

 Valakinek ötlet?

 

hyperspace69 Creative Commons License 2011.09.29 0 0 16151

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


Sikerült az első grafikon is szuper! Viszont a C5,C6 egyedül nem megy.


A második grafikon úgy nézne ki, hogy 1-24-ig lennének hengerek két színben (nyerő/vesztő). Ehhez kellene csinálni két segédoszlopot (gondolom mint az elsőnél) az egyik a nyertesnek a másik pedig a vesztesnek 1-24-ig.  A nullás tradeket most nem kell megjeleníteni.


Ennek segítségével vizuálisan azonnal kiderül, hogy hány órakor van több nyerő illetve vesztő trade a nap folyamán.

Előzmény: tt65 (16150)
tt65 Creative Commons License 2011.09.29 0 0 16150

d5: =ÁTLAGHATÖBB(E13:E23;A13:A23;"Long";E13:E23;">0")

d6: =ÁTLAGHATÖBB(E13:E23;A13:A23;"short";E13:E23;">0")

b7: =DARABHATÖBB(A13:A23;"Long";E13:E23;"nullás")

 

a többi ebből képezhető

első grafikon kicsit trükkös, felvettem egy segédoszlopot C13: =HA(E13="nullás";0;E13+E14); alatta C14: =HA(E14="nullás";C13;C13+E14+F14) lehúzva C23-ig. Aztán Bés C grafikonban ábrázolható

 

utulsó graf nem világos hogyan képzeled

Előzmény: hyperspace69 (16149)
hyperspace69 Creative Commons License 2011.09.29 0 0 16149

Rengeteg sikeres stratégia létezik bármely idősíkon. Azt tudni kell, hogy az emberek 90%-a vesztes ebben a szakmában. 80%-ban psziho sport és csak 20% múlik azon miként milyen stratégiával kereskedünk.

Az én személyes véleményem az, hogy az első 500ezret inkább tanfolyamra költsük mint sem elveszítsük az első hetekben ami szinte garantált! Azután lehet demózni egy évig és ha konzisztens nyerők vagyunk csak akkor kilépni élesben minimum 5000$-al!

 

Mielőtt valaki megdorgálna azért mert én tanfolyamot javasolok leírom, valóban minden rajta van az interneten is ingyen...

 

 

 

Előzmény: tt65 (16148)
tt65 Creative Commons License 2011.09.29 0 0 16148

valami alapvető börziáner ismereteket nem adsz hozzá?

Előzmény: hyperspace69 (16147)
hyperspace69 Creative Commons License 2011.09.28 0 0 16147

Sziasztok!

 

Ha valaki kedvet érez két grafikon beszúrásához és 8 db függvény megírásához amivel sokat segítene nekem akkor az innen letudja tölteni a táblázatot amiben leírtam miként képzeltem el. Ez sajnos meghaladja a képességeimet és enélkül hiányosnak érzem a naplómat.

 

Köszönöm a segítséget!

kbence93 Creative Commons License 2011.09.28 0 0 16146

Köszönöm szépen!

Előzmény: Jimmy the Hand (16145)
Jimmy the Hand Creative Commons License 2011.09.28 0 0 16145
Előzmény: kbence93 (16144)
kbence93 Creative Commons License 2011.09.28 0 0 16144

Sziasztok!

Egy kis segítséget szeretnék kérni: office 2003-as excelem van, és szeretnék egy bemondóprogramot csinálni, tehát hiperhivatkozásokat létrehozni ami a számítógépen belüli  .vaw fájlokra mutat. Megnyitáskor ez a hibaüzenet jön ki: "A C: ..... .vaw megnyitása. A hiperhivatkozások veszélyeztethetik a számítógépet és az adatokat. A számítógép védelme érdekében csak megbízható források hivatkozásaira kattintson. Folytatja? Igen/Nem" Ha az igenre kattintok, akkor lejátsza a fájlt.

Kérdésem: hogyan lehet kiiktatni ezt a hibaüzenetet, hogy egyből lejátsza a hivatkozást?

Válaszaitokat előre is köszönöm!

tt65 Creative Commons License 2011.09.28 0 0 16143

Én is jót mosolyogtam rajta, bár nem tudom, hogy a fiatal versenyzőknek mennyi jön le belőle.

Magamfajtának nem okoz nehézséget a stílus értelmezése.

Előzmény: _Nyuszi (16142)
_Nyuszi Creative Commons License 2011.09.27 0 0 16142

Ez nagyon jóóóó!

Köszönöm, hogy így írtad, nagyon tetszik!

Előzmény: Jimmy the Hand (16140)
boraka Creative Commons License 2011.09.27 0 0 16141

Köszönöm, ezt is elraktározom

Előzmény: Jimmy the Hand (16140)
Jimmy the Hand Creative Commons License 2011.09.27 0 0 16140

Figyelj, elmondom a titkot, hogy hogyan zajlik egy ilyen.

 

Stirlitz sétál a sötét erdőben. Nemrég volt találkozója Müllerrel, aki felvázolta neki az ActiveWorkbook.SaveAs fedőnevű problémát.

 

- Hm - gondolja Strilitz - ennek a SaveAs metódusnak biztosan valami olyan argumentuma, ami hatással van a csv export elválasztókarakterére. Nézzük csak meg a súgót.

Stirlitz megnyitja az első keze ügyébe eső Excelt, Alt+F11 kombóval átmegy VB editorba, és rákeres a súgóban a SaveAs-re. A súgó hosszan sorolja a Szovjetúnió számára érdektelen információkat, mígnem hirtelen Stirlitz szeme megakad a Local nevű argumentumon.

 

"Local   Optional Variant. True saves files against the language of Microsoft Excel (including control panel settings). False (default) saves files against the language of Visual Basic for Applications (VBA) (which is typically US English unless the VBA project where Workbooks.Open is run from is an old internationalized XL5/95 VBA project)."

 

- Aha! - gondolja Stirlitz. - Ennek a Local dolognak köze van a nyelvhez, meg Control Panel beállításokhoz, ráadásul az alapértelmett érték a gaz imperialistáknak kedvez. Próbáljuk csak ki, mi történik, ha belepiszkálunk egy kicsit.

Stirlitz átállítja a Local értékét True-ra, és kipróbálja a SaveAs-t egy adathalmazon. Voilá!

- Azt hiszem, elküldhetem a jelentésemet Moszkvába - töpreng magában Stirlitz a sikert látva.

 

 

Előzmény: boraka (16139)
boraka Creative Commons License 2011.09.27 0 0 16139

Tökéletes! Elképesztő a tudásod. Nagyon köszönöm a segítséget!

Előzmény: Jimmy the Hand (16138)
Jimmy the Hand Creative Commons License 2011.09.27 0 0 16138

Próbáld így:

 

ActiveWorkbook.SaveAs Filename:="D:TESZTTESZT.csv", FileFormat:=xlCSV, CreateBackup:=False, Local:=True

Előzmény: boraka (16137)
boraka Creative Commons License 2011.09.27 0 0 16137

Sziasztok!

 

Tudja valaki, hogy tudnám elérni makróval, egy excel fájl pontosvesszővel tagolt *.csv fájlba mentését?

Az alábbi kódot a makrórögzítővel készítettem (Mentés másként -> csv (pontosvesszővel tagolt) (*.csv)). A kézi beállításkor valóban pontosvesszől mentette, de utána, a makró futtatásakor már "sima" veszzővel tagolt fájlt hozott létre.

 

Tudna valaki segíteni?

 

ActiveWorkbook.SaveAs Filename:="D:TESZTTESZT.csv", FileFormat:=xlCSV, CreateBackup:=False

Timcsike83 Creative Commons License 2011.09.25 0 0 16136

Mégiscsak sikerült!

Át kellett állítanom szövegre!

Így már felismeri!

 

Köszi a válaszokat! :))

Szép estét

Sánta Kutya (SK) Creative Commons License 2011.09.25 0 0 16135

Azért nem fogja kiadni, mert ez nem Access, és az Accessben is csak szövegeket kezelhetnél ilyen módon, számokat nem (legfeljebb agyonbonyolítva, ha szövegként tárolod, szétszeded, konvertálod...)

A legegyszerűbb újratervezni a táblázatot. Egy cellába egy szám kerüljön.

Előzmény: Timcsike83 (16134)
Timcsike83 Creative Commons License 2011.09.25 0 0 16134

Bocs!Egy cellába:))))

Korábban Limmux írt hasonló bejegyzést, most olvasom.

A robbanómester segített neki, de nekem nem sikerül ezzel a megoldással sem.

 

Ha pl.A1-A10 celláig szeretném megtudni hány db. 3.-as található,s pl.A5 cellában lévő értékek 1,3,5 akkor nekem azzal a képlettel hogy A1:A10 kritériumnak pedig *3* nem adja ki az összes hármas számot.

Valami ötlet esetleg, bármit szívesen fogadok.

Előzmény: Sánta Kutya (SK) (16132)
Delila10 Creative Commons License 2011.09.25 0 0 16133

Cellaformázással írhatsz szöveget és számot egy cellába, és a számmal még számolhatsz is. Az egyéni formátumban adhatsz meg ilyesmit:

 

"Ez itt egy szöveg: "# ##0

Előzmény: Timcsike83 (16131)
Sánta Kutya (SK) Creative Commons License 2011.09.25 0 0 16132

Igen, az Excelben egy ellába csak egy számot írhatsz.

Előzmény: Timcsike83 (16131)
Timcsike83 Creative Commons License 2011.09.25 0 0 16131

Sziasztok!

 

Szakdolgozatom kérdőíveit próbálom kiértékelni Excel segítségével.

Az egyes kérdésekre adott válaszokat számokkal helyettesítettem, a könnyebb átláthatóság érdekében.

Van olyan kérdés, amire töb választ is adhattak a megkérdezettek, így egy cellába több szám is kerül, ezt pl.a Darabteli fügvény nem veszi figyelembe.

Az lenne a kérdésem, hogy ilyenkor hogyan kellene jelölni az egy kérdéshez tartozó válaszokat,hogy azt figyelmebe is vegye a függvény.Egy ellába csak egy érték írható?

Bocsánat, ha nagy hülyeséget kérdezek, de csak halványan dereng a táblázat kezelés.

Köszi a válaszokat!!

Üdv:Timi

Sánta Kutya (SK) Creative Commons License 2011.09.25 0 0 16130
studenac101 Creative Commons License 2011.09.25 0 0 16129

Köszi, nagyon rendes vagy.

 

Délután megpróbálom megcsinálni

Előzmény: Delila10 (16128)
Delila10 Creative Commons License 2011.09.24 0 0 16128

Nevezz ki egy üres füzetet gyűjtőnek (nem kell, hogy ez legyen a neve).

Alt+F11-re bejön a VB szerkesztő. Bal oldalon kiválasztod ezt a füzetet, Insert menü, Module. Kapsz a füzetedben egy Module1 nevű modult a bal oldalon, erre állva a jobb oldalon kapott üres felületre másold be a makrót.

A 200 fájlod legyen azonos könyvtárban, ez az új füzet egy másikban.

A makró jelzett sorában írd át az útvonalat a 200 fájl útvonalára. Sajnos, a fórummotor eltünteti a \ jeleket, én meg mindig elfelejtem, hogy csak akkor mutatja (egyszer), ha kétszer ütöm be. A sor helyesen:

Const utvonal = "E:\Alkönyvtár\"    'Itt írd át az útvonalat

Remélem, most jól adja vissza.

 

A gyorsabb futás érdekében a Sub Osszevon sor alá írd be:

Application.ScreenUpdating = False

az End sub fölé pedig

Application.ScreenUpdating = True

 

Csak a gyűjtő füzeted legyen nyitva. Alt+F8-ra megjelenik a makrókat tartalmazó ablak, itt indíthatod az Osszevon makrót.

Előzmény: studenac101 (16127)
studenac101 Creative Commons License 2011.09.23 0 0 16127

Köszi szépen!

 

Már csak egy baj van, hogy nem tudom mit kell csinálni ezzel a makróval, de próbálok utána olvasni.

Előzmény: Delila10 (16126)
Delila10 Creative Commons License 2011.09.23 0 0 16126

Ez a makró összegyűjti, csak a jelzett sorban írd át az útvonalat.

 

Sub Osszevon()
    Const utvonal = "E:Alkönyvtár"    'Itt írd át az útvonalat
    Dim FN As String, WB As Workbook, usor As Long, gy_usor As Long
    
    ChDir utvonal
    FN = Dir(utvonal & "*.xls", vbNormal)
    Do
        If FN <> "." And FN <> ".." Then
            Workbooks.Open Filename:=FN
            usor = Cells(Rows.Count, "B").End(xlUp).Row
            Range(Cells(2, 2), Cells(usor, 2)).Copy
            
            ActiveWindow.ActivateNext
            gy_usor = Cells(Rows.Count, "B").End(xlUp).Row + 1
            Cells(gy_usor, 2).Select
            ActiveSheet.Paste
            
            ActiveWindow.ActivatePrevious
            ActiveWindow.Close
        End If
        FN = Dir()
    Loop Until FN = ""
End Sub

Előzmény: studenac101 (16125)
studenac101 Creative Commons License 2011.09.23 0 0 16125

Sziasztok!

 

Segítséget szeretnék kérni ehhez:

 

Van sok (nagyon sok, kb 200) különálló excel file. Mindegyikben 3-3 oszlop van különböző számokkal, de az oszlopok legtetején (tehát az első sorban) természetesen az oszlopok elnevezése szerepel. Egy oszlop kb 300 sorból áll.

 

Most nekem azt kéne valahogy elérnem, hogy minden excel file 2. oszlopa egy oszlopba kerüljön, tehát, hogy az összes adat, amely a 2. oszlopban található egy táblázat egy oszlopába kerüljön. Az nem baj, ha a 200-szor bele kerül az oszlop elnevezés (gyáriszám).

 

Természetesen nem CTRL+C éd CTRL+V megoldásra gondolok.

 

köszönöm a segítséget.

pimre Creative Commons License 2011.09.22 0 0 16124

Kösz, persze én is csak az elv miatt kérdeztem, hiszen nem zárható ki, hogy egyszer egy kifelé szánt részletben is beleütközöm a jelenségbe.

 

A lényeget pedig megválaszoltad a #16106-ban.

Előzmény: Jimmy the Hand (16118)
Delila10 Creative Commons License 2011.09.21 0 0 16123

Igazad van. :)

Előzmény: Jimmy the Hand (16116)
Lummox Creative Commons License 2011.09.21 0 0 16122

Szuper, működik. Kösz!

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

a legegyszerűbb:

 

=DARABTELI($A$1:$A$10;"*válasz4*")

a1:a10-ben vannak az eredmények, a lényeg a * joker karakterként használata. Ha az eredmény (válasz4) egy cellában van, akkor azt is megadhatod kritériumnak - csak fűzd hozzá a csillag karaktert.

Előzmény: Lummox (16120)
Lummox Creative Commons License 2011.09.21 0 0 16120

Sziasztok!

 

Az alábbi problémámban szeretnék segítségeteket kérni:

A szakdolgozatomhoz szükséges kérdőív feldolgozását csinálom épp és a probléma a következő lenne:

A kérdőív során van pár olyan kérdésem, melyre több válaszlehetőséget is meg lehetett jelölni. Ezeket a válaszokat a rendszer (google docs) válaszadónként egy-egy cellába mentegette el vesszővel elválasztva (3 megjelölt válaszlehetőség esetén a cella tartalma pl.: "válasz1, válasz4, válasz8").

Tegyük fel, hogy szeretném megszámolni, hogy hányan jelölték be a "válasz4"-et. A darabteli függvénnyel probáltam elsőre, de az csak akkor számolja bele a "válasz4"-et ha az adott cella csak a "válasz4"-et tartalmazza, vagyis a válaszadó ezen kívül semmi mást nem jelölt meg. Tehát, ha a cella tartalma kizárólag az, hogy "válasz4" akkor beleszámolja, de ha az hogy "válasz1, válasz4, válasz8", akkor már nem.

Kérdés: hogy tudnám azt megcsinálni, hogy minden egyes cella, ha tartalmazza a "válasz4" karaktersort, akkor adogassa ezeket össze?

 

Előre is köszönöm a segítséget

 

p.s.: remélem érthető voltam:)

Törölt nick Creative Commons License 2011.09.21 0 0 16119

Helló,

feldobom a problémámat, amire alighanem nincs megoldás...

Adott egy pivottábla, egy számított mezővel.

Ez tartalmaz egy évenkénti részösszegzést.

A gond az, hogy a számított mezőnél a részösszegzést a számított mezőben megadott képlettel végzi - ami normális is. De nem ez kell, hanem rendes "összeg".

Meg akarom őrizni a pivot keretét, nem akarok mellészámolgatni a cellákban.

Tud erre valaki valamit? (Persze lehet, hogy csak én értem, amit írtam...)

 

 

Jimmy the Hand Creative Commons License 2011.09.21 0 0 16118

Volt egy öteltem, hogy hogyan lehetne gyorsítani rajta, de akkor nem érdekes. Fél perc az nem olyan sok, főleg ha szórakoztatod magad a Select-ekkel  :)

 

Előzmény: pimre (16117)
pimre Creative Commons License 2011.09.21 0 0 16117

Kb 20-30 mp. Amúgy szerencsére csak magam használom a módosításaim eredményének ellenőrzésére, felhasználó ezzel a részlettel nem találkozik.

Előzmény: Jimmy the Hand (16113)
Jimmy the Hand Creative Commons License 2011.09.21 0 0 16116

És ha mondjuk ez az oszlopok tartalma:

 

aaa 123 xxx

aaa 6 xxx

aaa 72 xxx

 

és a 2. oszlop alapján akarod növekvő sorrendbe állítani, mit kapsz?

Előzmény: Delila10 (16115)
Delila10 Creative Commons License 2011.09.21 0 0 16115

Nem szoktam a számokat tartalmazó oszlopokkal külön bűvészkedni, hanem az összefűzésnél az egyes adatok közé beviszek egy szóközt, úgy is megoldható.

Előzmény: Jimmy the Hand (16109)
Delila10 Creative Commons License 2011.09.21 0 0 16114

A kipróbáláshoz tegyél be az adatok közé hibát.

 

A státuszsorba tett üzenetek nem olyan feltűnőek, mint az msgbox-osak, de az utóbbi is egy megoldás arra, hogy ne higgye a felhasználó, lefagyott a gépe.

 

A Jimmy féle előre figyelmeztetést a ciklus elé kell tenned. Ha ezt msgboxba teszed, a makró akkor fut tovább, mikor a felhasználó leenterezte, a státuszsorba téve pedig végig látszik a futás alatt. Kérdés, észreveszi-e a felhasználó. :)

Előzmény: pimre (16112)
Jimmy the Hand Creative Commons License 2011.09.21 0 0 16113

Mennyi idő alatt fut le ez a 2500x20 adatos ciklus?

Előzmény: pimre (16112)
pimre Creative Commons License 2011.09.20 0 0 16112

Delila kösz, ki fogom próbálni. Bár az igazat megvallva, nem tudom, hogy akkor is jelentkezik-e a hiba, amikor a hibaüzenetet ki kell írni. Halvány emlékeim szerint a megállás akkor jelentkezett, amikor egyáltalán nem kellett az eltérésre figyelmeztetni. (Szándékom szerint egyébként is ez volt a részlet funkciója. Hiszen, ha tucatjával jönnek az eltérések, akkkor úgyis valami generális hiba van. Én meg azt ellenőriztem, hogy nincs-e valami apró poloska, ami egy-két rejtett hibát okoz a 2500 sor egyenként közel 20-20 adatában. Így a jellemző eset az, amikor a programrész hibajelzés nélkül fut le.) 

Előzmény: Delila10 (16107)
pimre Creative Commons License 2011.09.20 0 0 16111

Jimmy köszönöm.

Előzmény: Jimmy the Hand (16106)
Sznida Creative Commons License 2011.09.20 0 0 16110

Köszönöm szépen Jimmy! Sokat segítettél!

Több oszlopban van szám is és szöveg is, tehát egy kicsit meg kellett variálni, de az elv az tökéletes!!!

 

Köszönöm a segítséget!

 

Minden jót!

 

Üdv: Sznido

Előzmény: Jimmy the Hand (16109)
Jimmy the Hand Creative Commons License 2011.09.20 0 0 16109

Kreálsz egy új oszlopot, és abba képlettel összefűzöd a 4 oszlop tartalmát, ami sorbarendezezési szempont, a prioritás szerinti sorrendben. Tehát ha pl.  A, D, B, K oszlopok szerint akarsz sorbarendezni, akkor X segédoszlop tartalma:

X2 = A2 & D2 & B2 & K2

Ezután rendezed az egészet X oszlop szerint, majd törlöd az X oszlopot.

Ha valamelyik oszlopban számok vannak, akkor ott még kell egy furfang: át kell alakítani a számokat helyiértéket megőrző szöveggé. Ha pl. a fenti példában D oszlopban számok vannak, és egyik szám sem nagyobb, mint 10^16, akkor

X2 = A2 & (1E16+D2) & B2 & K2

 

Előzmény: Sznida (16108)
Sznida Creative Commons License 2011.09.20 0 0 16108

Sziasztok,

 

A következő problémába ütköztem, s gondoltam megkérdezem Tőletek, mert mindig nagyon hamar kaptam jó válaszokat! :)

2003-as excelben hogyan lehet megoldani makró nélkül a négyszintű sorba rendezést?

A 2003-as excelben jelenleg három oszlop alapján lehet, nekem kellene egy negyedik is.

Van rá megoldás? Makróval meg tudnám csinálni, de a nélkül kellene!

 

Köszönettel: Sznido

Delila10 Creative Commons License 2011.09.20 0 0 16107

Nem a kérdésedre válaszolok, de arra, hogy a felhasználó "ne unatkozzon", van egy másik mód is, mint az msgbox.

Kiírathatod a státuszsorba a program pillanatnyi állását, vagy bármilyen más szöveget.

 

    For sor = 1 To sorok
        adat1 = adat1 = Sheets(aktlapnév).Cells(sor, oszlop)
        adat2 = adat2 = Workbooks(ellfile).Sheets(aktlapnév).Cells(sor, oszlop)
        If adat1 <> adat2 Then
            Application.StatusBar = Str(sor) + ". sor, " + oszlopnév(oszlop) + ". oszlop eltér!"
        End If
    Next
    Application.StatusBar = False

Az utolsó sor visszaállítja a státuszsor eredeti beállítását.

 

Előzmény: pimre (16104)
Jimmy the Hand Creative Commons License 2011.09.20 0 0 16106

Sem a magyarázatát, sem a megoldását nem tudom, de azt igen, hogy nem különleges eset. Egy-egy hosszabb programfutás során nálam is gyakran előfordul, hogy kvázi "lefagy" az Excel, de közben valójában tekeri a CPU-t ezerrel, és számolja, mait számolni kell, csak megszakad a kapcsolata a külvilággal. Úgy vettem észre, hogy a fókuszváltás az ablakok közt (pl. az Excel ablak elveszti a fókuszt) gyakran (talán mindig) kiváltja ezt a viselkedést. De ha megszakítom a program futását egy Ctrl+Break -kel, majd azt modnom neki, hogy folytassa, visszaáll a megszokott működés.

 

Az egész valószínűleg egy rosszul megírt Microsoft termék hibája. Mivel a makród ettől még rendesen lefut, a helyedben nem nyugtalankodnék nagyon. Viszont érdemes a makródat úgy megírni, hogy az időigényes számolási rész előtt tegyen ki a usernek egy kis cédulát, amin az áll, hogy hosszú folyamat jön, ami alatt az Excel esetleg úgy tűnhet, mintha lefagyott volna, de legyen türelemmel, és ne piszkálja a Ctrl+Alt+Del gombokat.

Előzmény: pimre (16104)
pimre Creative Commons License 2011.09.20 0 0 16105

Bocs, a programrészlet bemásolásánál a tabulátoraim elvesztek, de remélem, így is érthető a rövid kód.

Előzmény: pimre (16104)
pimre Creative Commons License 2011.09.20 0 0 16104

Akkor rögtön van is egy kérdésem:

 

Van 2500 sornyi adatom, ezen belül 16 oszlop (A-P). Ezeket tartalmazza a sor és az oszlop változó az alábbi részletben, ahol ellenőrzést végzek, hogy azonos-e a két fájl összes adata.

Közben, hogy a felhasználó (szerencsére ez itt csak magam vagyok, hiszen a programot tesztelem) ne unatkozzon, minden sor vizsgálatának elején ráállok annak 1. oszlopára: (Cells(sor, 1).Select). Így a vizsgálat közben szépen fut lefelé a képernyő. 

 

For sor = 1 To sorok

Cells(sor, 1).Select ' Hogy lássuk, amint megy a sorokon

For oszlop = 1 To oszlopok

adat1 = Sheets(aktlapnév).Cells(sor, oszlop) ’ aktlapnév a megnyitott munkafüzet vizsgált lapja

adat2 = Workbooks(ellfile).Sheets(aktlapnév).Cells(sor, oszlop) ’ ellfile az ellenőrzendő másik munkafüzet neve benne az           'azonos nevű munkalappal

If adat1 <> adat2 Then

MsgBox Str(sor) + ". sor, " + oszlopnév(oszlop) + ". oszlop eltér!’

End If

Next oszlop

Next sor

MsgBox „Ellenőrzés befejezve.”

 

Ez egy nagyon egyszerű programrészlet. Nem is lenne gondom vele. De számomra érthetetlen okokból időnként megáll a képernyőn a futás. A program dolgozik ugyan, de valamelyik sor kiírásánál megmerevedik a képernyő. Azaz látszólag nem hajtja végre a Cells(sor, 1).Select parancsot. 

Ráadásul a jelenség nem következetes. Van amikor rendesen lefut, van amikor valamelyik soron megáll a léptetés. És, hogy melyiken, az mindig változó. Valami memóriazavar lehet, úgy sejtem.

 

Aztán – ha megállt a képernyőn a léptetés - a program befejezi azért az ellenőrzést, és kiírja a program végén, hogy vége az ellenőrzésnek (vagy ha közben eltérés van, azaz ki kell írni a hibát, hogy eltérnek az adatok, akkor azt is rendesen megteszi.), tehát csak a Cells(sor, 1).Select parancs nem működik. Szerencsére nincs jelentősége, mert a felhasználó nem találkozik vele, csak engem nyugtalanít. Mint minden olyan esemény, ahol nem az történik, amit szeretnék Ismeritek Murphy idevágó törvényét: „A program mindig az utasításaidat hajtja végre, nem pedig a kívánságaidat”.

 

Szóval tudja valaki a dolog magyarázatát, esetleg a megoldását?

 

Előzmény: pimre (16103)
pimre Creative Commons License 2011.09.20 0 0 16103

Dehogynem, rengeteg. De a többségét megoldom. Amit nem, abban eddig segítettetek. Most úgy látom több mint 3 hónap után, hogy a programom átadható a felhasználónak. Kösz az eddigieket is.

 

De azért még dolgozom tovább. Sejtésem szerint az Excel programozás lehetőségeinek talán vagy fél százalékát megismertem:-))). De hogy ebből mikor lesz akár 25%, az a messzi jövő kérdése:-(((

Előzmény: Delila10 (16099)
tt65 Creative Commons License 2011.09.19 0 0 16102

A legpörgősebb topikok közé biztos nem fog bekerülni az a topik! :-) De szerintem csak idő kérdése, hogy megint meglóduljon a diskurzus!

Előzmény: Delila10 (16101)
Delila10 Creative Commons License 2011.09.19 0 0 16101

Igen.

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

:D

Unatkozol?

Előzmény: Delila10 (16099)
Delila10 Creative Commons License 2011.09.19 0 0 16099

Senkinek semmilyen problémája az Excellel?

Így nem találnak majd rá a böngészők erre a fórumra!

boraka Creative Commons License 2011.09.15 0 0 16098

 

Pl. Használhatod a ComboBox Change eseménykezelőjét:

 

Private Sub ComboBox1_Change()
  If Me.ComboBox1.Text <> "" Then
    Me.Label1.Caption = "A ComboBox értéke NEM üres"
  Else: Me.Label1.Caption = "A ComboBox most üres"
  End If
End Sub

Előzmény: kovacsmiklos1985 (16095)
tt65 Creative Commons License 2011.09.14 0 0 16097

én arra gondoltam, ha az első sorban kezdőd adatok fölé (mint ahogy a kollega mintájában is volt) beszúrsz egy címsort (már beképletezett állapotban).

 

akkor a =SOR()-SOR($A$2)+1 a helyes recept, de az már a túlragozott elegancia csimborasszója :-)

Előzmény: Delila10 (16096)
Delila10 Creative Commons License 2011.09.14 0 0 16096

Köszönöm.

 

tt65

Címsor esetén =DARABTELI($A$1:$L$47;SOR()-1)   :)

 

 

Előzmény: pimre (16093)
kovacsmiklos1985 Creative Commons License 2011.09.14 0 0 16095

Sziasztok!

 

Excel VBA-ban hogy lehet azt megoldani, hogy egy programsor akkor tegyen eleget valaminek, ha mondjuk egy mező értéke nem üres.

 

Pl.

 

if combobox1.text = "ide jönne, hogy nem üres" then label1.caption = "Sikerült megoldani"

 

Segítségeteket előre is köszönöm!

 

Miki

tt65 Creative Commons License 2011.09.14 0 0 16094

Igen, valóban az.

A gereblye ott van benne, ha a táblázat fölé beszúrsz egy sort mondjuk címsornak , akkor a Sor() fv. rögtön elcsúszik eggyel ...

én már léptem bele, azért szólok :-)

Előzmény: pimre (16093)
pimre Creative Commons License 2011.09.14 0 0 16093

Ez nagyon szép, elegáns megoldás.

Előzmény: Delila10 (16091)
tt65 Creative Commons License 2011.09.14 0 0 16092

ha már egy oszlop van, akkor lehetne a GYAKORISÁG fv-el operálni, esetleg egy kimutatást készíteni és abban megszámoltatni az előfordulásokat!

Előzmény: pimre (16088)
Delila10 Creative Commons License 2011.09.14 0 0 16091

Az adatok szétválasztása jó.

 

Mivel a MIN és MAX függvényekkel [=MIN(A1:L47) és =MAX(A1:L47)]  sikerül kideríteni, hogy a tartomány legkisebb tagja 1, a legnagyobb 111, egy új oszlopba felvesszük 1-től 111-ig a sorszámokat. Legyen most ez a tartomány az N1:N111. 

 

Az O1 cella képlete: =DARABTELI($A$1:$L$47;N1). Ezt lemásolod az O111 celláig, és kész.

 

"Megspórolhatod" az N oszlopot, ha egy oszlopba az első sorba a  =DARABTELI($A$1:$L$47;SOR()) képletet írod a fenti helyett, és ezt másolod le a 111. sorig. A SOR() függvény az aktuális sor számát adja eredményül, nem kell egy másik oszlopban lévő sorszámra hivatkoznia a DARABTELI függvénynek.

Előzmény: erno68 (16086)
erno68 Creative Commons License 2011.09.14 0 0 16090

Köszönöm szépen a segitségeteket . Ernő

Előzmény: pimre (16088)
pimre Creative Commons License 2011.09.14 0 0 16089

Nyelvbotlás: 'az adatok közt lévő szóközök' helyett 'az adatok közt lévő üres cellákat' akartam írni. Bocs. 

Előzmény: pimre (16088)
pimre Creative Commons License 2011.09.14 0 0 16088

Akkor mondok egy nagyon primitív megoldást. Azt meg tudod tenni, hogy valamennyi oszlop adatát egyenként kijelölöd, és egyenként átmásolod az A oszlop adatai mögé?  Ha igen, akkor az átmásolgatás után az A oszlopban lesz 564 adatod, tekintve, hogy most van 12 oszlopod, egyenként 47 sorral.  (Megjegyzés: Az átmásolásnál javaslom a kivágás/beillesztést, így nehezebb eltéveszteni, hogy hol tartasz)

Ezután az A oszlop 564 adatát (vagy az egész A oszlopot) kijelölöd (a kijelölés muszáj az adatok közt lévő szóközök miatt), és adatok->sorba rendezés>A oszlop->emelkedő sorrendben.

Ez már összehozza az azonos értékeket, és meg tudod számolni őket.

 

A szakértőktől elnézést a megoldás közönségessége miatt, de működik, és talán érthető.

Előzmény: erno68 (16086)
Vacy Creative Commons License 2011.09.14 0 0 16087

Küldtem egy lehetséges megoldást.

Előzmény: erno68 (16086)
erno68 Creative Commons License 2011.09.13 0 0 16086

:) na enyire haladtam de itt elakadtam http://www.csomortani.ro/szavazas  . Ernő

Előzmény: Delila10 (16081)
erno68 Creative Commons License 2011.09.13 0 0 16085

Nem jön össze :( eldöntöttem bunkó vagyok megkérlek segitsetek ki és ha tudjátok küldjétek el az erno@csomortáni.ro cimre , elöre is köszönöm. Ernő 

Előzmény: Delila10 (16079)
erno68 Creative Commons License 2011.09.13 0 0 16084

Köszi szépen, igy olvasásra elég bonyolultnak tünik, főleg ha csak amatör szinten ismerem az excellt :) Ernő

Előzmény: Sánta Kutya (SK) (16078)
Delila10 Creative Commons License 2011.09.13 0 0 16082

megszámlálhatod a pontokat szövegrészt értetted félre. Szavazásról volt szó, nem az írásjelre, hanem a pontszámra utaltam. :)

Előzmény: Sánta Kutya (SK) (16080)
Delila10 Creative Commons License 2011.09.13 0 0 16081

2003-ban szét kell választani. Írtam a pontot, láttam én is a kétféle elválasztót.

 

A min és max függvénnyel megnéztem, hogy 1-től 111-ig vannak számok. Egy ilyen számsorral és a darabteli függvénnyel már könnyen meg lehet számlálni az A1:L47 tartományban az egyes számok előfordulását.

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

Ezek szerint nem kattintottál. :-) Ez egy csv, simán megnyitja tagoltan az Excel, csak rosszul írta a kérdező. Egy helyen ponttal van néhány elválasztva, azt kell javítani.

Előzmény: Delila10 (16079)
Delila10 Creative Commons License 2011.09.13 0 0 16079

Jelöld ki az A oszlopot.

Adatok - Szövegből oszlopok. Az első lépésben jó a Tagolt bejelölése, Tovább.

A 2. lépésben jelöld be a vesszőt, az Egyébhez írj be egy pontot. Befejezés.

 

Most több oszlopra szétbontotta az adataidat, így már a DARABTELI függvénnyel megszámlálhatod a pontokat.

Előzmény: erno68 (16077)
Sánta Kutya (SK) Creative Commons License 2011.09.13 0 0 16078

=DARABTELI(A:A;2)

Ez az A oszlopban számlálja össze. Az A:A helyére írd a tartományt, ahol számlálni akarsz.

Előzmény: erno68 (16077)
erno68 Creative Commons License 2011.09.13 0 0 16077

Sziasztok.

   Lenne egy gondom ha netán valaki tudna segiteni rajtam, fel tettem egy csv ( http://www.csomortani.ro/szavazas/  fájt ahol  47 sorban külömböző számok vannak vesszövel elkülönitve egymástól a kérdésem az lenne, hogy lehetne összeszámolni a legkönnyebben, hogy pl a 2 szám hányszor jelenik meg (ez egy szavazat számlálás lenne) és igy tovább mert igy neki álltam számlálni de eléhg bonyolultnak tünik a számlálás . Köszönöm a segitségeteket üdv Ernő

tt65 Creative Commons License 2011.09.13 0 0 16076

" azt a második munkalapra kellene hogy tegye"

Hogy szabatos legyek nem teszi oda, hanem csak egy másolatot hoz létre.

 

amúgy A oszlopba felvettem egy sima No. oszlopot, azaz besorszámoztam a sorokat. A2 1; A3 2; stb.

Aztán  B1 és C2 címmező, alatta az értékek, amikert írtál, B oszlop P;M;K értékek, C-ben a lsita elemek.

én csak 11 elemet vettem fel

P lap A2: =DARABHATÖBB(Munka1!$B$2:B2;$C$1)

B2: =HAHIBA(HOL.VAN(Munka1!A2;$A$2:$A$12;0);"")

C2: =HAHIBA(OFSZET(Munka1!$C$2;B2-1;0);"")

(A1; B1;C1 fejléc cellák)

 

lehet még rajta szépíteni, de működik

ha kéred elküldöm

Előzmény: Xooo (16050)
wolft67 Creative Commons License 2011.09.13 0 0 16075

Köszönöm, sikerült makróval megoldani,  van még egy kis próblámám van egy excel táblázat 2392 hivatkozással amira ha rákattintok megjelenik a böngészőben a kép. Milyen programmal vagy hogyan lehetne letölteni a képeket egy mappába?

Ez egy jó hely:) lámáknak...

 

Csaba

Előzmény: Jimmy the Hand (16056)
Delila10 Creative Commons License 2011.09.13 0 0 16074

Egy kicsit pontosabban írd le a feladatot!

 

3 féle karaktert írhatsz a MUNKALAP nevű munkalap A oszlopába, ezek a K, M, és P.

 

Az kiderült, hogy ha K-t írsz, akkor egy másik lap (mi a lap neve?) B oszlopába akarod íratni a MUNKALAP változott sorában lévő E oszlop értékét, az első üres sorba.

 

Hova kell íratni, és melyik oszlop értékét, ha a beírt karakter M, vagy P?

 

Előzmény: Xooo (16072)
SQLkerdes Creative Commons License 2011.09.13 0 0 16073

Van megoldás, ne csüggedj.

Ha holnap délig senki sem nyúl hozzá, akkor megpróbálok valamit összeütni, de ma estig nincs esélyem foglalkozni vele.

 

Előre szólok mindenkinek, hogy SUM lesz benne :-)

Előzmény: Xooo (16072)
Xooo Creative Commons License 2011.09.13 0 0 16072

=HA(MUNKALAP!B2="K";(MUNKALAP!E2);("")) Így oldottam meg, de nem teljesen tuti. Ugyanez a P-vel. Egy baj van, hogy így a másik két munkalapon üres soraim is maradnak. Erre viszont nincs ötletem hogyan lehet megoldani.

Előzmény: Xooo (16050)
wawabagus Creative Commons License 2011.09.13 0 0 16071

:-)...hát igen...

 

Előzmény: pimre (16068)
Sánta Kutya (SK) Creative Commons License 2011.09.12 0 0 16070

Ha jelen idő. :-)

Előzmény: pimre (16069)
pimre Creative Commons License 2011.09.12 0 0 16069

programokat, természetesen egy t.

Előzmény: pimre (16068)
pimre Creative Commons License 2011.09.12 0 0 16068

Kicsit off, de talán idevágó emlék: Jó 20 évvel ezelőtt írtam meglehetősen összetett programokatt (Clipper programmal, dbase adatállománnyal). A program nagyon figyelt a lehetséges hibákra az adatbevitelkor, így általában nem volt gond az értékeléssel, meg a nyomtatásokkal. Aztán az egyik felhasználó úgy gondolta, hogy ő ért az adatbáziskezeléshez, és elkezdett a program megkerülésével belepiszkálni az adatállományba. Aztán sorozatban jelentek meg a hibák az értékelésnél. Nagyon hamar összevesztünk:-)

Előzmény: wawabagus (16067)
wawabagus Creative Commons License 2011.09.12 0 0 16067

Szia!

Ránéztem még egyszer és nagyon hosszú a makró.../sajnos a szenvedéseim ellenére nem annyira szép és frappáns, csak nekem tűnt úgy, mikor végre sikerült befejeznem.../

Tesztelés során /egy milliószor/, nálam tök jól működött.

 

Már használták is mások, legalább 4x és minden tutin működött. Aztán használta valaki, akinek fura ötletei voltak a makróval kapcsoltaban...neki már nem működött.

 

Hát, én szívesen átküldöm neked a makrót, de nem lesz nagyon szórakoztató :-).

 

De szerintem anélkül, hogy nagyon belemennél, hogy mi mit csinál...biztos egyból kiszűrnéd a gyenge pontokat. Ha azokra rámutatnál, az nagy segítség lenne nekem.

 

Nagyon megköszönném, ha bele tudnál nézni, de csak ha nagyon nincs mit csinálnod...

 

/kicsit szégyelem a makrómat azért/

 

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

Y

 

 

 

 

 

Előzmény: Jimmy the Hand (16065)
kovacsmiklos1985 Creative Commons License 2011.09.12 0 0 16066

Nagyon jó!!! :) Na mikorra kéred a jutalmat? :D

Előzmény: Jimmy the Hand (16064)
Jimmy the Hand Creative Commons License 2011.09.12 0 0 16065

Ha publikálod a kódot, kitárgyalhatjuk. Vagy akár privátban is.

Előzmény: wawabagus (16063)
Jimmy the Hand Creative Commons License 2011.09.12 0 0 16064

Bocs, ez nem volt egészen jó. Ez a helyes kód:

 

    Dim r As Range
    Set r = Worksheets("Munka1").Range("E" & Rows.Count).End(xlUp).Offset(1)
    If checkbox1.Value = True Then
        r = 1
    Else
        r.ClearContents
    End If

 

Csak nem volt kedvem form-mal bajlódni, ezért a teszteléshez cellaként deklaráltam a checkbox1-et. Ami a felhasználást illeti, a Dim kezdetű sort a szubrutin elejére kell tenni, a többivel pedig helyettesítsd azt a két sort, amit 16049-ben beküldtél.

 

Előzmény: kovacsmiklos1985 (16061)
wawabagus Creative Commons License 2011.09.12 0 0 16063

Szia!

Köszönöm, amit írtál.

 

Hát én szívességből írtam valakiknek makrót, de lehet nem kellett volna :-)...jól kiszúrtam magammal :-DDD..

 

Jó persze, én egy csomó új dolgot megtanultam-ezért is vállaltam be részben-, de jól megszenvedtem vele... bár egyáltalán nem annyira bonyolult amiket csinálnia kell.

 

Hihetetlen sok időm elment rá...és dühítő, hogy a végeredmény az, hogy a végfelhasználó csak azt látja...megnyomom és nem működk...

 

De persze ez az igazság. Meg persze ez az én hibám.

 

Elvileg mindent definiáltam, próbáltam okos lenni, meg előre gondolkodni...rengeteget javítgattam...

 

Azt hiszem lehet hogy bizonyos esetekben "felhasználó barátabb", ha nem az van, hogy semmit sem kell csinálnia a felhasználónak /lást pl makró/, hanem pl inkább függvényezett templéteket adunk nekik, amiket kicsit jobban átlátnak/értenek, nem?

 

Köszönöm, amiket írtál...utánaolvasok!!

Köszi szépen!!

:-)

 

 

Előzmény: Jimmy the Hand (16062)
Jimmy the Hand Creative Commons License 2011.09.12 0 0 16062

Egy makró sosem lesz bolondbiztos, csak ha 10 sornál rövidebb, és egyébként nem csinál semmit. De azért törekedni kell rá, mert a favágónak az a dolga, hogy fát vágjon, és ha nem tud bánni a makróval, amit adtunk neki, az nem feltétlenül az ő hibája. A magam részéről jó gyakorlatnak gondolom az alábbiakat:

 

1) A VB Editor Tools->Options->Require Variable Declaration bekapcsolása. Ez minden új kódlapra alapértelmezésben kirakja az Option Explicit kifejezést, ami pedig megköveteli a változók deklarálását. A változók deklarálása azért jó, mert már az első fordításkor kibukik, hogyha valami típusütközés van, míg ha nincsenek deklarálva, akkor talán csak bizonyos körülmények között jelentkezik a hiba. Meg az Intellisense sem egy utolsó dolog.

 

2) Mindig pontosan definiálni kell a munkafüzetet, a munkalapot és a cellatartományt, amivel dolgozunk.

Nem elég az, hogy

ActiveCell = 2

Hanem pl.

ThisWorkbook.Sheets("Munka1").Range("F3") = 2

Hosszabb, de megéri, mert így biztosan azt csinálja a kód, amit akarsz. Amúgy meg ki tudja, hogy mi lesz az ActiveCell, amikor éppen ahhoz a sorhoz és a program? Hasonlóképpen, hanyagolni kell at ActiveSheet-et is, amikor csak lehetséges.

 

3) Érdemes a kódot kisebb részekre, szubrutinokra bontani, amelyeknek mind meghatározott funkciójuk van. Ettől áttekinthetőbb lesz, és a javítás/továbbfejlesztés is egyszerűbb.

 

4) Figyelembe kell venni, hogy vannak az Excelben verziófüggő elemek. Különösen vállalati környezetben gyakran előfordul, hogy többféle verzióban is futnia kell a programnak.

 

Elsőre ennyi, majd még ha eszembe jut valami, közreadom.

 

 

Előzmény: wawabagus (16059)
kovacsmiklos1985 Creative Commons License 2011.09.12 0 0 16061

És ezt egyébként szerinted hova illesszem be?

Előzmény: Jimmy the Hand (16060)
Jimmy the Hand Creative Commons License 2011.09.12 0 0 16060

    Dim r As Range, checkbox1 As Range
    Set checkbox1 = Range("A1")
    Set r = Worksheets("Munka1").Range("E" & Rows.Count).End(xlUp).Offset(1)
    If checkbox1.Value = True Then
        r = 1
    Else
        r.ClearContents
    End If

Előzmény: kovacsmiklos1985 (16049)
wawabagus Creative Commons License 2011.09.12 0 0 16059

Sziasztok!

Csak egy ilyen elméleti tanácsot szeretnék kérni.

 

Ha MÁSNAK készítetek makrót, hogyan oldjátok meg a lehetséges hibákat?

 

Persze kb 200-szer teszteltem egy ilyesmi makrót, de persze most hogy XY használja nem működik...másnál igen.

 

Ti valahogy logoltatjátok a hibákat? Vagy csak simán okosak vagytok és mindenre gondoltok :-D?

 

Köszi a tanácsokat!!

Y

Jimmy the Hand Creative Commons License 2011.09.12 0 0 16058

Ez nem neked volt válasz. Legyél kicsit türelemmel.

Előzmény: kovacsmiklos1985 (16057)
kovacsmiklos1985 Creative Commons License 2011.09.12 0 0 16057

te jó ég. hirtelen azt se tudom, hova illesszem ezt be.

Ez mit funkcionálna jó esetben?

Előzmény: Jimmy the Hand (16056)
Jimmy the Hand Creative Commons License 2011.09.12 0 0 16056

Próbáld ki ezt a makrót a kérdéses munkalapról indítva.

Azért előtte csinálj biztonsági másolatot.

 

Sub hip()
    Dim h As Hyperlink, ws As Worksheet
    Set ws = ActiveSheet
    For Each h In ws.Hyperlinks
        h.TextToDisplay = h.Address
    Next
End Sub

Előzmény: wolft67 (16052)
kovacsmiklos1985 Creative Commons License 2011.09.12 0 0 16055

Jimmy the Hand!

 

Mindenkinek van megoldásod, csak nekem nem tudsz kitalálni semmi okosat? :D

 

Találj ki valamit, és vendégem vagy a Trófea étterembe :D

Előzmény: Jimmy the Hand (16054)
Jimmy the Hand Creative Commons License 2011.09.12 0 0 16054

1. Autoszűrő

2. szűrés P-re, másolás, új munkalapon beillesztés

3. szűrés M-re, másolás, új munkalapon beillesztés

4. szűrés K-ra, másolás, új munkalapon beillesztés

 

Előzmény: Xooo (16050)
wolft67 Creative Commons License 2011.09.12 0 0 16053

  ez lemaradt ...

wolft67 Creative Commons License 2011.09.12 0 0 16052

Sziasztok.

Itt mindenki segítséget kér köztük én is.Itt hülyítem magam egy táblázattaladott egy webáruház 2392 termékkel a  képek elérési útvonala egy oszlopban van megadva a megjelenítendő név "link"

ami hiperavatkozás a termék képére.Egyenként símán ugye hivakozás szerkesztése megjelenítő szöveg és máris jön az url. Hogyan lehetne láthatóvá tenni az oszlopban a több mint 2000 urlt-

Csatolom a képet amin egyenként megy. De ezt megcsinálni 2000-szer :(

Jimmy the Hand Creative Commons License 2011.09.12 0 0 16051

ThisWorkbook.Application.WindowState = xlMinimized

Előzmény: Gavriel (16048)
Xooo Creative Commons License 2011.09.12 0 0 16050

Sziasztok !

 

Egy dologgal nem tudok megbírkózni. Van egy munkafüzetem, három munkalappal. Az első munkalapon van egy listám a C oszlopban, aminek minden egyes sora elé, ( B oszlopba ) P, K, M betűt írok. Ezt kellene az Excelnek a másik két munkalapra szeparálnia. Tehát ha az első munkalapon  beírom a sor elé hogy P, akkor azt a második munkalapra kellene hogy tegye.

 

Minden ötletért nagyon hálás lennék :)

 

Köszönöm !

kovacsmiklos1985 Creative Commons License 2011.09.12 0 0 16049

 

Sziasztok!

 

A segítségeteket kérném, mert egy feladattal nem tudok megbírkózni.

 

Adott egy VBA által létrehozott Form, melyen sok-sok ComboBox, és CheckBox, és egyéb adatbeviteli mező található.

 

Minden mező kitöltésekor, illetve a mezők által felajánlott választási lehetőségek kiválasztásakor ugyebár értékes adatok halmozódnak fel, amelyeket szeretnék egy excel tábla keretein belül rögzíteni.

 

Alapból tudom, hogy hogyan kellene megoldani a feladatot, viszont a helyzet annyiban bonyolódik, hogy a bevitt adatokat az excel táblázatban soronként szeretném eltároltatni az alábbi meghatározott szempontok szerint.

 

Példának okáért gyorsba szerkesztettem egy formot, és egy adattáblát, (amelyet a mellékletbe raktam) amely ugye az adatbeviteli mezőket tartalmazza, amelyekbe ugye beírjuk az adatokat.

 

 

 

Összefüggések: Amennyiben az adatbeviteli formon megadjuk a szükséges adatokat, és lementjük a Rögzítés gombban, abban az esetben a megadott adatok ugyebár rögzülnek a táblázat meghatározott oszlopainak, és sorainak keresztmetszetében.

 

A PROBLÉMÁM AZONBAN AZ, HOGY NEM TUDOM, HOGY HOGYAN KELL MEGCSINÁLNI AZT, HOGY AZ ADATBEVITELI FORM MINDIG A SORON KÖVETKEZŐ ÜRES SOR-OSZLOP KERESZTMETSZET ADATMEZŐIT TÖLTSE, TEHÁT NE írja felül a már bevitt adatokat azzal, hogy ugyanarra a helyre rögzíti a soron következő adatokat.

 

A táblázat képernyő mentésén jól látható, hogy az A oszlopban különböző kalkulációk mennek végbe (amelyek a táblázatban megjelenő adatokkal vannak összefüggésben), tehát az az út, hogy mondjuk sorokat szúrkálok be egy a kód segítségével, nem működik, mert akkor megbomlik a táblázat A oszlopban lévő kalkulációs része.

 

 

Alapból valami ilyesféle kódot használok a Rögzítés gombra történő kattintáskor például, ha az Ügyfél elmúlt 18 éves :

  

if checkbox1.value = true then Worksheets("Munka1").Range("e8") = 1

 

if checkbox1.value = false then Worksheets("Munka1").Range("e8") = „”

 

 

Ebben a kódban ugye az a baj, hogy konkrétan meg van határozva, hogy az adat rögzítése a táblázat mely cellájába kerüljön, nekem pedig annyivel kellene több, ha egy bizonyos sortartományba már szerepelnek adatok, akkor abban az esetben a következő sor töltődjön.

 

  

Valakinek valami ötlet?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Jimmy the Hand Creative Commons License 2011.09.11 0 0 16047

Ja, és még annyit, hogy az együttmozgatás érdekében lehet csoportba foglalni objektumokat, így pl. a Labelt, és benne mindent.

Előzmény: Jimmy the Hand (16046)
Jimmy the Hand Creative Commons License 2011.09.11 0 0 16046

A Frame háttere nem állítható be transzparensre 2003-ban sem.

De ha csak elkülöníteni akarod az adatokat, arra a Label is jó. Leteszel egy Labelt, beállítod a BorderStyle-t folytonos vonalra, a BackStyle-t meg transzparensre, és kész. Ha nagyon akarod, még teszel rá egy Textbox-ot is, a felső Border-re feliratnak.

Előzmény: kovacsmiklos1985 (16045)
kovacsmiklos1985 Creative Commons License 2011.09.11 0 0 16045

A Frameket formalitás miatt használom, hogy az ablakon lévő adatokat el tudjam különíteni, tehát azok kellenének. A 2003-as excelben működik, hogy a Frame átlátszó?

Előzmény: Jimmy the Hand (16044)
Jimmy the Hand Creative Commons License 2011.09.11 0 0 16044

Nem tudom, 2010-ben mi a helyzet, mert én még 2003-ban élek, és nem látok a jövőbe. Viszont azt javaslom, nézd meg az OptionButton objektum GroupName tulajdonságát, és akkor szerintem nem lesz szükséged Frame-re.

Előzmény: kovacsmiklos1985 (16043)
kovacsmiklos1985 Creative Commons License 2011.09.11 0 0 16043

Sziasztok!

 

Rákérdezek, mert lassan én kezdem azt hinni, hogy hülye vagyok.

Az Excel 2010-ben azt tényleg nem lehet megoldani, hogy a VBA programozás alkalmával a Form-okra kitett Frame-ek átlátszóak legyenek, azaz ne szürke szívű legyen, hanem az Form ablak háttere látszódjon helyette??

 

Válaszotokat előre is köszönöm!

 

Jimmy the Hand, neked köszönöm  ategnapi segítséget!

 

Miki

Jimmy the Hand Creative Commons License 2011.09.10 0 0 16041

A favágós módszer így nézne ki:

 

If (OptionButton1.Value = False) And (OptionButton2.Value = False) And (OptionButton3.Value = False) Then UserForm5.Show

 

Több (sok) OptionButton esetén érdemes ravaszkodni kicsit, de 3 esetén ez is megteszi.

Előzmény: kovacsmiklos1985 (16039)
Jimmy the Hand Creative Commons License 2011.09.10 0 0 16040

Van az excelben beépített help a FileDialog property-ről, és a FileDialog object-ről.

Ennél bőségesebb kellene?

 

Előzmény: Gavriel (16038)
kovacsmiklos1985 Creative Commons License 2011.09.10 0 0 16039

Sziasztok!

 

Egy kis segítséget kérnék tőletek, mert hiányosak a VBA programkód ismereteim.

 

Adott egy ablak(form), amin van 3 OptionButton, amelyek egymással kapcsolatban állnak (tehát a 3 közül csak 1 választható), valamint egy CommandButton, ami az ablak bezárásának funkcióját látná el oly módon, hogy megvizsgálja, hogy a 3 OptionButtont, hogy bármelyik ki van-e jelölve közülük. Azt szeretném elérni, hogyha egyik sincs kijelölve, akkor jelenjen meg egy új form egy hibaüzenettel, hogy a választás kötelező.

 

Azt tudom, hogyha csak egy OptionButton értékét vizsgáljuk, akkor így oldanánk meg a feladatot, de 3 esetében hogy néz ki a programkód?

 

If OptionButton1.Value = False Then UserForm5.Show

 

Segítségeteket előre is köszönöm!

 

Miki

Jimmy the Hand Creative Commons License 2011.09.10 0 0 16037

Nézd meg a 15924-et, és cseréld ki benne ezt:

Set fd = Application.FileDialog(4)

erre:

Set fd = Application.FileDialog(3)

 

(azaz:

Set fd = Application.FileDialog(msoFileDialogFolderPicker)

helyett

Set fd = Application.FileDialog(msoFileDialogFilePicker))

Előzmény: Gavriel (16033)
Delila10 Creative Commons License 2011.09.10 0 0 16035

MsgBox ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & "   " & ActiveSheet.Name

 

A fórummotor megint elsumákolta a \ jelet. :(

Előzmény: Delila10 (16034)
Delila10 Creative Commons License 2011.09.10 0 0 16034

A fájl kiválasztása után

 

MsgBox ActiveWorkbook.Path & "" & ActiveWorkbook.Name & "   " & ActiveSheet.Name

 

Ez már az aktív lap nevét is tartalmazza.

Előzmény: Gavriel (16033)
Törölt nick Creative Commons License 2011.09.09 0 0 16032

excelnél mivel jeleníted meg a query-t?

(pivot, vagy table?)

ha pivot, akkor az "adatmező"-ben sem látszik a 'lekérés dátuma'?

Előzmény: tagore72 (16028)
wawabagus Creative Commons License 2011.09.09 0 0 16031

(ActiveCell.NumberFormat)

:-DDDD

 

wawabagus Creative Commons License 2011.09.09 0 0 16030

Sziasztok!

VBA-ban hogyan tudom megnézni, hogy egy adott cella %-ra van-e formázva?

A cellában nem mindig lesz szám, de akkor is kéne hogy kiderítsem a cella formázása százalék-e...

Lehetsége ez?

 

Tehát, ha százalék, akkor -> valamit csinál

Ha nem százalék -> akkor mást csinál

 

Köszi a segítséget !!

 

Jimmy the Hand Creative Commons License 2011.09.09 0 0 16029

Próbáld ki ékezet nélküli mezőnevekkel. Nem valószínű, hogy ez a hiba, de hátha.

Előzmény: tagore72 (16028)
tagore72 Creative Commons License 2011.09.09 0 0 16028

Sziasztok!

 

Van egy Excel-Sql problémám:

 

Excel 2010-ből csatlakozom egy Mysql adatbázishoz

és adatokat kérek le táblázatba (a probléma már korábbi Exceleknél is fennállt)

Jönnek is szépen az adatok, de ha szeretném beletenni a lekérés dátumát,idejét

is, akkor az nem jelenik meg az Excelben, az MS Query felületén viszon igen.

Pl.

Select concat(year(now()),".",month(now()),".",day(now()),"@",hour(now()),"h") AS 'lekérés_dátum', .....

 

Ekkor Ms Query-ben az első oszlopban megjelenik a dátum helyes mezőnévvel,

de a Fájl - Adatok átadása Excelnek menüponttal átadva

nem jelenik meg az Excelben.

 

Egy másik kalkulált mezőt is létrehoztam, pl.

concat(jogviszony,"@",honap) AS 'fuz'

Ezt is sql-ben az elejére tettem, ms query-ben elején van,

ez végre megjelent az Excelben, igaz, hogy az utolsó oszlop után.

 

Szóval az még nem is zavarna, ha mindig a végére tenné a lekérés_dátum-át,

csak tenné már végre oda. Tettem már elsőnek, utolsónak, a concat-es

mező elé, után, de sehogy se jelent meg :-(

 

Van valakinek ötlete?

 

Köszönöm

 

wawabagus Creative Commons License 2011.09.09 0 0 16027

Szia Jimmy!

Végül pont erre jutottam tegnap :-)!

Köszi!

Y

Előzmény: Jimmy the Hand (16026)
Jimmy the Hand Creative Commons License 2011.09.09 0 0 16026

Csinálnék egy (akár rejtett) munkalap előre meghatározott helyén egy pár cellát, amelyek a pivottáblából képletekkel kihozzák a kívánt adatokat. Írnék továbbá egy makrót, ami indításkor beírja a rendszeridőt/rendszerdátumot a history lap megfelelő cellájába, majd a pivotból kinyert adatok/cellák értékét átmásolná oda. Esetleg bele lehet tenni egy pivottábla-adatfrissítési utasítást is az elejére.

Előzmény: wawabagus (16020)
Törölt nick Creative Commons License 2011.09.08 0 0 16025

ne megjegyzést akarj használni erre, hanem bármi mást (szövegdoboz, egyéb alakzat). Tudsz bele képet rakni, feliratot, tudsz hozzá hiperhivatkozást kapcsolni bárhová....

 

Előzmény: Igore (16023)
SQLkerdes Creative Commons License 2011.09.08 0 0 16024

Olvasd el a #15518-as hozzászólást, annak egy mutációja lehet a megoldás szerintem.

Előzmény: Igore (16023)
Igore Creative Commons License 2011.09.08 0 0 16023

Csak hogy leht másképp megcsinálni?valami ötlet?

Mert nekem az a lényeg hogy a megjegyzésén lévő szővegrész mutasson a másik munkalapra....!

 

Előzmény: tt65 (16022)
tt65 Creative Commons License 2011.09.08 0 0 16022

szerintem nem.

képet lehet tenni a megjegyzésbe, szöveget is azt írsz be amit akarsz, de hivatkozást, vagy más lapta való ugrást nem.

de miért lenne ez gond, másképp is biztos meg lehet csinálni!

Előzmény: Igore (16021)
Igore Creative Commons License 2011.09.08 0 0 16021

Hello.

lehetséges-e olyat csinálni, hogy egy munkalapon, egy cellába megjegyzést irok/csinalok,oda képeket illsztek be....és szeretnék a megjegyzésbe egy hivatkozást rakni,ami egy másik munkalapon lévő szövegre hivatkozik...!

A kérds,hogy megjegyzésbe hivatkozást tudok-e csinálni,és ha igen akkor pls valaki segitsen,nagyon fontos lenne!

 

Előre is köszi :)

wawabagus Creative Commons License 2011.09.08 0 0 16020

Sziasztok!

Tanácsot szeretnék tőletek kérni.

 

A következő a helyzet:

 

1. Adott egy exceles riport, ami egy SQL adatbázisból nyeri az adatokat pivot segítségével.

2. A Pivot, mindig csak az adott havi adatokat adja...nincs idő sáv...csak adott hónap adata.

3. Az egyik sheeten "gyűjtögetném" a pivot által nyújtott adatokat, de már historikusan is. Tehát minden hónapban hozzáadnám az infókat egy "gyűjtögető" sheeten.

4. A pivotből függvénnyel szeretném kiolvastatni a dolgokat.

 

A kérdés az, hogyan tegyem ezt...pivotból kiolvasó függvény csak az aktuális hónapnál lehet, a régebbi hónapnál már value kell hogy legyen.../hiszen a pivot csak a friss adatokat mutatja.

 

Ti hogyan oldanátok ezt meg?

Makróval iratnátok be a függvényt az aktuális hónaphoz, majd copy as value?

 

Köszönöm a tanácsokat!!

Y

 

 

kovacsmiklos1985 Creative Commons License 2011.09.07 0 0 16019

Szia!

 

Köszi, az első sor tökéletesen működik! :)

 

Köszönöm nektek!

 

Miki

Előzmény: boraka (16017)
epl Creative Commons License 2011.09.07 0 0 16018

bocsi úgy értettem hogy az "=now" -t cseréld le arra

tehát

Worksheets("PROTOTYPE").Cells(9, 9).NumberFormat = "h:mm:ss"

Előzmény: kovacsmiklos1985 (16016)
boraka Creative Commons License 2011.09.07 0 0 16017

Próbáld ki ezt:

 

Worksheets("PROTOTYPE").Range("I9") = Format(Now, "yyyy.mm.dd hh:mm:ss")

vagy

Worksheets("PROTOTYPE").Cells(9,9) = Format(Now, "yyyy.mm.dd hh:mm:ss")

 

és ez nem frissül a megnyitáskor, csak a képre kattintva.

Előzmény: kovacsmiklos1985 (16016)
kovacsmiklos1985 Creative Commons License 2011.09.07 0 0 16016

De így néz ki a kód.

 

Worksheets("PROTOTYPE").Cells(9, 9) = Now

 

ha itt átírom  a Now-t, akkor hamis eredmény lesz.

Előzmény: epl (16014)
kelan Creative Commons License 2011.09.07 0 0 16015

Köszi, ez a hiperhivatkozásos megoldás jó lesz nekem, és így alakzathoz tudom rendelni a függvényt, az alakzat meg egy ikont tartalmaz majd. :)

Előzmény: Törölt nick (15995)
epl Creative Commons License 2011.09.07 0 0 16014

az eleje ugyanaz csak a

.now

helyett

.NumberFormat = "h:mm:ss"

Előzmény: kovacsmiklos1985 (16013)
kovacsmiklos1985 Creative Commons License 2011.09.07 0 0 16013

most már csak annyi kérdésem lenne, hogy be van állítva a celle, hogy órát, percet és másodpercet mutasson, de amikor az ikonra kattintok, akkor beírja az évet, meg a hónapot, meg a napot is. Ezt meg lehet valahogy oldani, hogy az idő formátum ó:pp:mm legyen?

Előzmény: epl (16012)
epl Creative Commons License 2011.09.07 0 0 16012

király ! szívesen

Előzmény: kovacsmiklos1985 (16011)
kovacsmiklos1985 Creative Commons License 2011.09.07 0 0 16011

JÓ, Működik!!!!!!!!!!!!!!! :D Köszi a segítséget :)

Előzmény: epl (16009)
kovacsmiklos1985 Creative Commons License 2011.09.07 0 0 16010

Igen, azt is próbáltam. 9, 9 van a zárójelben (I9)

Előzmény: epl (16009)
epl Creative Commons License 2011.09.07 0 0 16009

azt "I"-t is kicserélted ?

Előzmény: kovacsmiklos1985 (16008)
kovacsmiklos1985 Creative Commons License 2011.09.07 0 0 16008

ugyanúgy hiba, csak Run time error 9, és nem 5 :D

Előzmény: epl (16005)
epl Creative Commons License 2011.09.07 0 0 16007

a cellsnél csak számit tudsz beírni azt hogy "I" nem az "I" helyett 9-et kell írni

Előzmény: epl (16006)
epl Creative Commons License 2011.09.07 0 0 16006

Egyébként a cells("I9") biztos hogy nemjó :)

a cells az csak két paraméterrel megy sor és az oszlop

ami tud ilyet, hogy "I9" az a range

Előzmény: kovacsmiklos1985 (16004)
epl Creative Commons License 2011.09.07 0 0 16005

Címezd meg a file-t is.

Workbooks("Book1.xlsm").Worksheets("Sheet1").Cells(6, 2).Calculate

Előzmény: kovacsmiklos1985 (16004)
kovacsmiklos1985 Creative Commons License 2011.09.07 0 0 16004

 

Hát valahogy így néz ki a dolog.

Van a táblázat, ahol ott a kis ikon. A sárga részben a kód. De a hibaüzenet meg megjelenik.

Előzmény: epl (16003)
epl Creative Commons License 2011.09.07 0 0 16003

Hát ez sokmindentől függ. Elméleitileg be lehet állítani az excelben hogy ne frissítsen cellát automatikusan, de akkor ez minden másra is érvényes lesz. Gondolom ezt nem szeretnéd.

Én akkor nem fügvénnyel csinálnám hanem a makróval írnám be az időt a cellába, akkor biztos hogy csak akkor lesz benne ha a képre kattintasz.

Cells(7, 3) = Now

lehet ezt szebben is címezni

Worksheets("Sheet_neve").Cells(6, 2)=Now

 

Mi a hibaüzenet egyébként ? Csakmert nekem működik, kipróbáltam direkt.

 

 

Előzmény: kovacsmiklos1985 (16002)
kovacsmiklos1985 Creative Commons License 2011.09.07 0 0 16002

valamint ha a most függvényt használom, akkor ha kilépek az excelből, és visszalépek, akkor autómatikusan frissíti az értéket, én meg azt szeretném, hogy az ne frissüljön autómatikusan :)

Előzmény: Jimmy the Hand (16000)
kovacsmiklos1985 Creative Commons License 2011.09.07 0 0 16001

Behelyettesítem a "sor" helyére, hogy 9, az "oszlop" helyére meg hogy I, de leáll hibaüzenettel. Vesszővel elválasztottam az értékeket, pont úgy, ahogy te írtad. Mi baja lehet?

Előzmény: epl (15999)
Jimmy the Hand Creative Commons License 2011.09.07 0 0 16000

Sub Újraszámol()

   Sheets("Munka1").Range("A1").Calculate

End Sub

 

Munka1 és A1 helyére helyettesítsd be a releváns munkalap illetve cella nevét.

Előzmény: kovacsmiklos1985 (15998)
epl Creative Commons License 2011.09.07 0 0 15999

Sub Picture1_Click()
    Cells(sor, oszlop).Calculate
End Sub

Előzmény: kovacsmiklos1985 (15998)
kovacsmiklos1985 Creative Commons License 2011.09.07 0 0 15998

és ezt az újraszámolós kódot hogyan kell megoldani a makróban? ez bonyolult, vagy csak valami 1-2 soros programkód?

Előzmény: epl (15997)
epl Creative Commons License 2011.09.07 0 0 15997

Hozzárendelsz egy makrót a képhez, ami kattintásra a cellát újraszámolja amiben a (now()) függvény van.

Előzmény: kovacsmiklos1985 (15996)
kovacsmiklos1985 Creative Commons License 2011.09.07 0 0 15996

Sziasztok!

 

Lenne ötletetek arra, hogy hogyan tudnám megoldani azt, hogy mondjuk ha egy az excel táblába beszúrt képi elemre kattintok az egérrel, akkor egy meghatározott cella értéke automatikusan a pontos időre változzon?

 

Az ötleteket, és a segítséget előre is köszönöm!

 

Miki

Törölt nick Creative Commons License 2011.09.06 0 0 15995

ahoggy t65 is írta:

hiperhivatkozás-nak hívják excelben

(van függvény, de külön beszúrási lehetőség is van. (Beszúrás menüpont - hiperhivatkozás (asszem)

Előzmény: kelan (15991)
Törölt nick Creative Commons License 2011.09.06 0 0 15994

ez jó cucc, nem ismertem, kösz.

 

Előzmény: Delila10 (15989)
tt65 Creative Commons License 2011.09.06 0 0 15992

meg lehet biztos. én eddig csak olyan láttam, ami a munkalapneveket link-ként kiteszi egy külön munkalapra (az is nagy segítség)

javaslom gugli: add toc to excel

 

Előzmény: kelan (15991)
kelan Creative Commons License 2011.09.06 0 0 15991

Sziasztok! Szerintetek meg lehet oldani, hogy az Excel 2007 megnyitása után a megnyitott több munkalapból álló fájl mindegyik munkalapjárára rendezett és névvel ellátott ikonokon keresztül lehessen eljutni? Ha új ablakokat hozok létre a nézet menüben, majd ezeket kis méretűvé állítom és rendezem, már majdnem megfelelő a kapott eredmény, de ekkor mindegyik kisméretű ablak ugyanúgy néz ki, szóval mégsem ez a legjobb megoldás.

tt65 Creative Commons License 2011.09.06 0 0 15990

köszi!

ezt már olvastam valahol, de már nem volt meg! :-)

Előzmény: Delila10 (15989)
Delila10 Creative Commons License 2011.09.06 0 0 15989

Egy könnyítés a név beviteléhez: mikor bevitted a Forrás mezőbe az egyenlőségjelet, az F3 billentyű feldobja az addig elnevezett tartományok nevét, és csak ki kell választanod a megfelelőt.

 

Előzmény: tt65 (15988)
tt65 Creative Commons License 2011.09.06 0 0 15988

így már nekem is megy!  köszi (ez jó kör volt, ezt jó tudni :-)

Előzmény: Jimmy the Hand (15987)
Jimmy the Hand Creative Commons License 2011.09.06 0 0 15987

Érvényesítésnél a lista forrását egyenlőségjellel kell kezdeni. Tehát ha pl. a forrásadat-terület neve "kukorica", akkor a forrás ne:

 

kukorica

 

hanem:

 

=kukorica

Előzmény: Gavriel (15986)
pimre Creative Commons License 2011.09.06 0 0 15985

Nagyon köszönöm!

Előzmény: Jimmy the Hand (15983)
wawabagus Creative Commons License 2011.09.06 0 0 15984

Sziasztok!

Kicsit OFF leszek.

 

Tapasztaltatok olyat, hogy egy exceles táblázatot kiraktom word-be /picture enhanced metafile/ és ez a szerencsétlen egy nagy fekete pacsának érzékeli nyomtatáskor?

 

Lényegében nem nyomtatja ki, hanem egy nagy korom fekete kockát csak.

 

Neketek volt ilyen? Hogyan oldottátok meg?

 

Köszi!!

Jimmy the Hand Creative Commons License 2011.09.06 0 0 15983

Persze mehet egybe is:

 

MsgBox ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Trendlines(1).DataLabel.Text

Előzmény: Jimmy the Hand (15982)
Jimmy the Hand Creative Commons License 2011.09.06 0 0 15982

Sub egyenlet_kiiratás()
    Dim co As ChartObject, s As Series, dl As DataLabel
    
    Set co = ActiveSheet.ChartObjects(1)
    Set s = co.Chart.SeriesCollection(1)
    Set dl = s.Trendlines(1).DataLabel
    MsgBox dl.Text
End Sub

Előzmény: pimre (15981)
pimre Creative Commons License 2011.09.06 0 0 15981

Kösz, azt hiszem értem. Még valamit: A DisplayEquation tulajdonságnál csak a false és true beállítási, illetve kiolvasási lehetőségeket látom. Magát az egyenletet (annak szöveges tartalmát) el tudom érni és hasonlítani?

Előzmény: Jimmy the Hand (15980)
Jimmy the Hand Creative Commons License 2011.09.06 0 0 15980

Ha megnézed a Chart és a ChartObject súgóját, a lap tetején (mint minden más objektum esetében is) megtalálod az objektumok tulajdonságait a Properties link alatt.

Előzmény: pimre (15979)
pimre Creative Commons License 2011.09.06 0 0 15979

Van egy olyan érzésem, hogy ilyen egyszerűen nem tudom megoldani a dolgot. Nekem az is megfelel, ha ki tudnám választani az ActiveSheet.ChartObjects(i) diagramot, mint objektumot, annak kiolvasnám programból a tulajdonságait, majd a másik lapon lévő neki megfelelő objektum megfelelő tulajdonságaival tudnám hasonlítani. 

 

De fogalmam sincs, hogy honnan tudnám kigyűjteni egy objektum (jelen esetben egy diagram) tulajdonságait. 

 

Előzmény: pimre (15976)
Törölt nick Creative Commons License 2011.09.05 0 0 15978

ne szivassatok már... Ha "kézzel van beírva" akkor működik? Én mindig névvel ellátott tartományt adtam meg és így tudtam használni egy másik munkalapról származó validációs listát.

Előzmény: Gavriel (15975)
tt65 Creative Commons License 2011.09.05 0 0 15977

Jelentem a 2010-ben alapból működik, ezek szerint ez egy buta fogyatékosság a 2007-ben!

Előzmény: lotht (15970)
pimre Creative Commons License 2011.09.05 0 0 15976

Sziasztok!

 

Szerettem volna két különböző excel fájl azonos nevű munkalapjain a diagramok azonosságát tesztelni? (Azért lenne rá szükségem, hogy a korábban már jól működő programmal kiírt diagramok a program némi módosítása után is változatlanok maradtak-e)

 

Az egyszerűség kedvéért első lépésként kipróbáltam, hogy egyáltalán lehetséges-e ez a feladat egyetlen excel fájl különböző nevű munkalapjain. Valami ilyesmit szeretnék, hogy i ciklusváltozóval végiglépkednék diagramokon 

 

If ActiveSheet.ChartObjects(i) <> Sheets(másiklap).ChartObjects(i) Then

   hibajelzés

endif

 

A fenti sornál az Excel azt írja, hogy 'Object does'nt support this property or method'

 

Szerintetek van erre megoldás?

tt65 Creative Commons License 2011.09.05 0 0 15971

ok. így tényleg műxik! köszi

Előzmény: lotht (15970)
lotht Creative Commons License 2011.09.05 0 0 15970

De igen, csak valóan be kell írni és nem egérrel kijelölni a területet.

Nézd ezt a példát, Excel 2007-ben készült.

Példámban a Forrás: sorba szépen beírtam betőkkel, hogy =Listák!$A$2:$A$$11

És működik, próbáld csak ki. Excel 2010-ről nincs információm.

 

Előzmény: tt65 (15969)
tt65 Creative Commons License 2011.09.05 0 0 15969

nekem nem megy, te hogy csináltad?

Előzmény: Jimmy the Hand (15963)
tt65 Creative Commons License 2011.09.05 0 0 15968

azt nem hagyja ...

Előzmény: lotht (15965)
tt65 Creative Commons License 2011.09.05 0 0 15967

Az a megoldás, hogy a sheet2 lapon legyenek az adatok,  a sheet1-re meg tömbképlettel tegyél egy másolatot belőle.

 

Előzmény: Gavriel (15962)
tt65 Creative Commons License 2011.09.05 0 0 15966

Létezik. Azonos lapon kell lennie a lsitának.

Előzmény: Gavriel (15962)
lotht Creative Commons License 2011.09.05 0 0 15965

Nem is feltétlenül szükséges nevet adni, elég ha kézzel beírod a lapnevet is tartalmazó hivatkozást.

Előzmény: Gavriel (15962)
Jimmy the Hand Creative Commons License 2011.09.05 0 0 15964

Ezt nem tudtam. És tényleg, ha módosítom, bezáráskor nem is kérdez rá, hogy mentse-e a változásokat.

Kíváncsi lennék, ezt a fícsört milyen logika mentén alkották meg így.

Előzmény: SQLkerdes (15961)
Jimmy the Hand Creative Commons License 2011.09.05 0 0 15963

Adj nevet Sheet2!A:A-nak. A nevet már tudod használni validálásra.

Előzmény: Gavriel (15962)
SQLkerdes Creative Commons License 2011.09.05 0 0 15961

Kevéssé ismert tény, hogy a ScrollArea property nem mentődik el, szóval vagy minden file megnyitáskor újra be kell írni, vagy írni kell rá egy eseménykezelőt, hogy file nyitáskor önállóan megismételje a beállítást.

Előzmény: Jimmy the Hand (15954)
Delila10 Creative Commons License 2011.09.05 0 0 15959

Rövidebb formában autogától.

Előzmény: tt65 (15958)
tt65 Creative Commons License 2011.09.05 0 0 15958

OFF: a teljesség igényével, az "önmatikusan" párja az "automagától" :-) Kazinczy is helyeselné! :-)

Előzmény: Delila10 (15957)
Delila10 Creative Commons License 2011.09.05 0 0 15957

Határozottan tetszik a nyelvújításod. Terjeszthetem, vagy levédted? :)

Előzmény: _Nyuszi (15942)
Jimmy the Hand Creative Commons License 2011.09.05 0 0 15956

Úgy látom, ez a post már megjelenésekor idejétmúlt volt... Van ilyen :)

Előzmény: Jimmy the Hand (15954)
tt65 Creative Commons License 2011.09.05 0 0 15955

Ha a 2.6 szám (azaz "kettőegészhattized", akkor tizedes vesszőt kell írni (ha magyar beállítással dolgozol) azaz 2,6.

Ha 2.6-ot írsz, ezt már nem számként kezeli, hanem szövegként, sőt felismeri és örömmel üdvözöli dátumként. Ez viszont téged bosszant!

Ha angol beállítással dolgozol, akkor épp fordítva van. Ne keseredj el, ezek alap dolgok, ismerni kell őket!

Előzmény: nikonbarat (15939)
Jimmy the Hand Creative Commons License 2011.09.05 0 0 15954

VB Editorban, a Properties Window-ban található és módosítható, minden sheet-re külön. Keress rá a súgóban, hogy mire való. Az előbb teszteltem, az pl. okozhatja a leírt tünetet.

Előzmény: Gavriel (15949)
Jimmy the Hand Creative Commons License 2011.09.05 0 0 15948

ScrollArea property ki van töltve?

Előzmény: Gavriel (15947)
pimre Creative Commons License 2011.09.04 0 0 15946

Sajnálom, hogy nem tudtam jó tippet adni. Még egy teljesen képtelen megoldással is megpróbálkozom. Volt más kezében a géped?

Megnéztem a beállításoknál az automatikus javítás beállításait, és ott is elő lehet idézni ilyen helyzetet. Ehhez persze szükség van némi rosszindulatra, de esetleg nézd meg, hogy nem csinált-e veled valaki ilyen trükköt. 

Előzmény: nikonbarat (15943)
Sánta Kutya (SK) Creative Commons License 2011.09.04 0 0 15945

Írj elé egy aposztrófot akkor, ha szöveg akar lenni. Ha pedig szám, akkor állítsd át a vezérlőpultban angolra a tizedesjelet.

Előzmény: nikonbarat (15943)
nikonbarat Creative Commons License 2011.09.04 0 0 15944

Igen, bár már dührohamot kapok tőle...:)

Előzmény: _Nyuszi (15942)
nikonbarat Creative Commons License 2011.09.04 0 0 15943

Már ezzel is próbálkoztam, de semmibe veszi, visszaáll dátumra... Viszont csak ennél a formátumnál. Amikor azt írom 2.6 ák akkor nem írja át...

Előzmény: pimre (15941)
_Nyuszi Creative Commons License 2011.09.04 0 0 15942

Nem hiszem, hogy úgy maradt volna, egyszerűen csak az Excel okosabb(nak hiszi magát), és a 2.6 -ra azt mondja, hogy az dátum akar lenni, és az általános formátumot önmatikusan (de szép szó!) átállítja dátumra.

Előzmény: pimre (15941)
pimre Creative Commons License 2011.09.04 0 0 15941

Lehetséges, hogy korábbról megmaradt a cellaformátum dátumnak? Ha ez a helyzet, akkor próbáld meg egyszerűen a cellaformátumot átállítani 'Szám'-ra, vagy 'Általános'-ra. 

Előzmény: nikonbarat (15939)
_Nyuszi Creative Commons License 2011.09.04 0 0 15940

A cellaformátumot állítsd át mondjuk szövegre vagy számra (ctr+1, első fül).

Előzmény: nikonbarat (15939)
nikonbarat Creative Commons License 2011.09.04 0 0 15939

Excel 2007-et használva akadt némi igen bosszantó problémám. Valószínűleg rém egyszerű a megoldás, viszont nekem még nem sikerült átállítanom...

Beírom egy cellába ezt: 2.6 erre továbblépéskor beszúr egy dátumot:  06. febr a szerkesztősoron meg megjelenik 2011.02.06 dátum...

Próbáltam a Beállítások "Speciális" fül "Cellaértékek automatikus kiegészítése" kikapcsolását meg a "Képletek" fül  "Hibaellenörzés" sor "Automatikus hibaellenőrzés a háttérben" kikapcsolását is, de semmi nem változik.

Esetleg valaki tudna segíteni?

Delila10 Creative Commons License 2011.08.31 0 0 15938

Nekem?!

Szívesen.

Előzmény: wawabagus (15937)
wawabagus Creative Commons License 2011.08.31 0 0 15937

:-) szia!

Köszi a segítséget!!!!!

Előzmény: Delila10 (15926)
wawabagus Creative Commons License 2011.08.31 0 0 15936

szia!

:-)))...szuper!!!!!!

Köszönöm!!!!!!!!

 

Előzmény: Jimmy the Hand (15931)
boraka Creative Commons License 2011.08.31 0 0 15935

Meggyógyította. Nagyon köszönöm a segítséget!

 

Előzmény: Jimmy the Hand (15934)
Jimmy the Hand Creative Commons License 2011.08.31 0 0 15934

Aszongyák az okosok, hogy futtasd le ezt itt:

 

Sub Enable_All_Right_Click_Menus()
'This will enable all BuiltIn Command bars
Dim Cbar As CommandBar
For Each Cbar In Application.CommandBars
Cbar.Enabled = True
Next
End Sub

 

Forrás:

http://social.microsoft.com/Forums/en-US/smallbusinessgeneral/thread/f8170666-3106-438b-92e7-21ad12f13eda

 

Előzmény: boraka (15933)
boraka Creative Commons License 2011.08.31 0 0 15933

Sziasztok!

 

Egy kapott excel fájl megnyitása, majd bezárása után nem működik a jobb egérgomb, "nem jön fel" a szerkesztő menü, akkor sem, ha egy új munkafüzetet nyitok. Tudna valaki segíteni?

 

Előre is köszönöm

Delila10 Creative Commons License 2011.08.31 0 0 15932

Köszönöm.

Előzmény: Jimmy the Hand (15930)
Jimmy the Hand Creative Commons License 2011.08.30 0 0 15931

Ez a függvény feldob egy olyan beépített dialógus-ablakot, amivel a felhasználó ki tud választani egy teszőleges mappát egy tetszőleges meghajtón. Ahogy azt már Delila is mondta, annyi kell csak, hogy

 

útvonal = MappaTallózás()

 

és mire ez a sor végrehajtódik, az útvonal nevű változó fogja tartalmazni a felhasználó által kiválasztott mappa teljes elérési útvonalát. Ezt aztán fel lehet használni akármire, pl. mentésre.

Előzmény: wawabagus (15925)
Jimmy the Hand Creative Commons License 2011.08.30 0 0 15930

"Csak tudnám, mi a 4-es az Application.FileDialog(4) kifejezében!"

 

Jobban olvasható lett volna, ha így írom (csak akkor éppen nem volt időm cizellálni):

Set fd = Application.FileDialog(msoFileDialogFolderPicker)

Ebben a kifejezésben msoFileDialogFolderPicker egy beépített integer konstans, aminek értéke négy.

 

"Őrület, hogy miket tud Jimmy!"

 

Vannak érdekes dolgok, igen. De én is tanultam valakiktől :)

Továbbadni pedig kötelesség.

 

Előzmény: Delila10 (15926)
Delila10 Creative Commons License 2011.08.30 0 0 15928

Ördög vigye, minden hozzászólást másodjára fogad el, és akkor kimarad ez-az.

 

A függvényt egyenlőségjellel az elején kell bevinni: =MappaTallózás()

Előzmény: Delila10 (15927)
Delila10 Creative Commons License 2011.08.30 0 0 15927

Helyesbítve

 

utvonal=utvonal & "\"

Előzmény: Delila10 (15926)
Delila10 Creative Commons License 2011.08.30 0 0 15926

Őrület, hogy miket tud Jimmy!

 

Ez egy függvény. Beírod a címét =-jel, mire feljön az ablak, ahol kiválasztod a neked tetsző könyvtárat. OK után a függvény kimenete a választott útvonal lesz.

 

Ugyanez más makróba beépítve ilyesmi lehet:

 

Sub mm()

    Dim fd, utvonal As String

 

    MsgBox "Válasszunk magunknak útvonalat"

 

    Set fd = Application.FileDialog(4)

    With fd

        .AllowMultiSelect = False

        .Show

        If .SelectedItems.Count = 0 Then

            utvonal = ""

        Else

            utvonal = .SelectedItems(1)

        End If

    End With

    utvonal = utvonal & ""

    'Jöhet a mentés

End Sub

 

Csak tudnám, mi a 4-es az Application.FileDialog(4) kifejezében!

Előzmény: wawabagus (15925)
wawabagus Creative Commons License 2011.08.30 0 0 15925

szia :-)!

Ööööö, ez mit is csinál?

Ez olyan, mint a Application.Dialogs(xlDialogOpen).Show?

 

Én azt hiszem /ha jól értem/, akkor ez már része a makrómnak. Tehát, ha meg van adva neki a fodler, akkor ő már mindent ki fog onnan olvasni/meg fog nyitni stb.

Csak egyedül a folder path-ját nem tudom hogyan lehet rugalmasan megadni.

 

A dialogbox végülis csak fájlt tud megnyitni-erre jöttem rá időközben-, foldert nem tudok vele megadni...

 

Jól értettelek?

 

Előzmény: Jimmy the Hand (15924)
Jimmy the Hand Creative Commons License 2011.08.30 0 0 15924

Function MappaTallózás()
    Dim fd
    Set fd = Application.FileDialog(4)
    With fd
        .AllowMultiSelect = False
        .Show
        If .SelectedItems.Count = 0 Then
            MappaTallózás = ""
        Else
            MappaTallózás = .SelectedItems(1)
        End If
    End With
End Function

 

 

Előzmény: wawabagus (15923)
wawabagus Creative Commons License 2011.08.30 0 0 15923

Sziasztok!

Az szeretném tőletek megkérdezni, hogy ha makrót írtok valakinek, ami "LEMENT", KIOVAS FÁJLBÓL", akkor hogyan oldjátok meg elegánsan, rugalmasra hogy honnan melyik folderből tegye azt?

 

Nem akarom hardcode-olni a makróba, hanem valahogy rugalmasan megoldani.

Beirathatom persze a felhasználóval egy cellába, aztán a macro kiolvassa...

 

Van erre valami tuti megoldásotok?

 

Előre is köszi a tippet!

Johanna

tt65 Creative Commons License 2011.08.30 0 0 15922

igen, a space azt jelzi neki, hogy szövegről van szó!

Előzmény: goosebump (15920)
Sánta Kutya (SK) Creative Commons License 2011.08.30 0 0 15921

Ez pedig valami beállítási kérdés. De az is jó, ha a kötőjel elé egy aposztrófot írsz (shift 1).

Előzmény: goosebump (15916)
goosebump Creative Commons License 2011.08.30 0 0 15920

hm.

space kötőjellel is át tud lépni... de hogy ez eddig miért nem volt baj?..

najó, nem agonizálok, köszi mégegyszer!

goosebump Creative Commons License 2011.08.30 0 0 15919

sziasztok!

köszi szépen a válaszokat mindkettőtöknek, a ctrl enter-re át tudok szokni :) csak azt nem értem, hogy eddig működött valahogyan, más nem használja ezt a gépet, végképp nem az excelt rajta, és most kivonás lett a jól megszokott rutinomból.. :) fura.

 

Előzmény: tt65 (15918)
tt65 Creative Commons License 2011.08.30 0 0 15918

Az a vicces, áme felettébb bosszantó jelenség akkor lép fel ha "-" jellel kezded a cellát és utána jobbra lépés gombot nyomsz!

Ilyenkor inkább nyomj enter a jobbra nyíl helyett.

Működik az is amit Nyuszi írt, vagy a ctrl + Enter, ami helyben hagyja az aktuális cellát és utána a kedvelt nyiladdal arra lépsz amerre kedved tartja!

 

Előzmény: goosebump (15916)
_Nyuszi Creative Commons License 2011.08.30 0 0 15917

Nyomj entert, ekkor lefelé lép. Ez viszont átállítható jobbrára. Hirtelen ennyi.

Előzmény: goosebump (15916)
goosebump Creative Commons License 2011.08.30 0 0 15916

Sziasztok!

 

Szeretnék feltenni egy banális kérdést. (Excel Starter 2010 magyar verzió). Minden hónapban egy táblázatban foglalom össze a munkások havi jelenlétét (szám, ha dolgoztak, 'fsz' ha szabin voltak, ' - ' kötőjel, ha még nem vagy már nem voltak alkalmazva). Ez eddig úgy működött, hogy pl ha kötőjel kötőjel kötőjel 8 8 8 -at írtam, akkor egyszerűen a megfelelő billentyű után a jobb kurzorral át tudtam lépni a következő cellába.

Most a kötőjel után jobbra lépve kivonást értelmez. Ugyanazt a fájlt használom, csak úgy munkalapot, de eddig nem így viselkedett.. Átállítottam szövegre is a cellákat, általánosra is, semmi változás. Nézelődtem az automatikus számoltatás részen is, ott átállítottam manuálisra - semmi változás, ráadásul ha jól értelmeztem ez a függvényekre vonatkozik.

Tudom, apróság, meg valószínűleg gyermeteg kérdés, de ha valaki tud, kérem adjon vmi tippet :)

 

Köszi, üdv 

Jimmy the Hand Creative Commons License 2011.08.29 0 0 15915

Valami ilyesmi lett volna sztem a megoldás (legalább két dolgozó esetén):

 

Sub teszt()
    Dim nevsor As Range, c As Range, ws As Worksheet
    Dim cb As DropDown
    
    Set cb = ActiveSheet.Shapes("Lenyíló 1").OLEFormat.Object
    Set ws = Worksheets("dolgozok")
    Set nevsor = ws.Range("A2", ws.Range("A2").End(xlDown))
    
    cb.RemoveAllItems   'minden elemet töröl a combobox-ból
    For Each c In nevsor.Cells
        cb.AddItem c.Value
    Next
End Sub

 

De ha ez az a combobox, amire én gondolok, akkor annak a "Vezérlő formázása" menüpontban be lehet állítani bemeneti tartományát, ami lehet akár nevesített tartomány is, és akkor nem kell pogramból küzdeni a feltöltésével.

Előzmény: bolygohollandi (15913)
SQLkerdes Creative Commons License 2011.08.28 0 0 15914

Előre is leszögezem, hogy nem tudom a megoldást.

De amit látok és elméletben akár rossz is lehet az az, hogy Selection.AddItem Worksheets("dolgozok").Cells(i + 1, 1) -t használsz.

Ehelyett jobb megoldás a Selection.AddItem Worksheets("dolgozok").Cells(i + 1, 1).Value használata.

A kódok bezavarodhatnak ha a Range-re hivatkozol, nem a Range értékére.  Mondjuk az esetek többségében az Excel IQ-ból veszi, hogy nem a cellára gondolsz, hanem a tartalmára, de sose lehet tudni.

 

Az ActiveSheet object használatát is mellőzném, mert ha csak egyszer akaratlanul megváltozik és már nem a kombóbox-ot tartalmazó munkalapra mutat, akkor meghalt a kódod.

Előzmény: bolygohollandi (15913)
bolygohollandi Creative Commons License 2011.08.28 0 0 15913

Köszönöm, hogy eltöprengtél a problémámon!

 

Mivel muszáj volt et megoldanom az egész probléma megoldásához (egy béna programot kell hétfőig írnom) mindenhol kértem segítséget.

Hátha másnak is van, lesz ilyen problémája, ezért itt (is) leírom, miképpen oldottam meg:

 

Hátha másnak sem működik az, hogy egy ComboBox tartalmát módosítsa a HELP-ekben oly könnyedén leírt
 
ComboBox1.AddItem "ÚjElem"

 

utasítással.

Nálam ez az utasítás ugyanis nem működött - sem az egyik, sem a másik gépen - és nem tudom, mitől függ; Excel-től, géptől, installálástól, valamilyen beállítástól. Tény, nem működik.

 

Szóval adott egy Excel-tábla, aminek az első munkalapján van (többek között) egy "nev_combobox" nevű ComboBox, ezt kell feltolteni a másik ("dolgozok" nevű) munkalap első oszlopában lévő nevekkel:


i = 2
Do While Worksheets("dolgozok").Cells(i, 1) <> ""   'nevek adatszámának megállapítása; a nevek a második sortól kezdődnek
    dolgozokszama = dolgozokszama + 1
    i = i + 1
Loop
i = 1
Do While i <= dolgozokszama                         'nev_combobox feltöltése a nevekkel
    ActiveSheet.Shapes("nev_combobox").Select
    Selection.AddItem Worksheets("dolgozok").Cells(i + 1, 1)
    i = i + 1
Loop


Valaki felvetette, miért probléma, hogy csak a "select"-tel tudom "lérni" a comboboxomat, erre azt mondtam, mert például nem tudok belőle törölni.
Nem is lehet, ugyanis ahogy a ComboBox1.Clear utasítás nem működik, úgy  a Selection.Clear sem, tehát másképp lehet csak törölni; én ezt találtam működőképesnek (ha valaki pl. az összes elemet ki akarja törölni):

 

ActiveSheet.Shapes("nev_combobox").Select
mennyi = Selection.ListCount 'hány darab elem van a nev_combobox-ban?

For i = 1 To mennyi
    Selection.RemoveItem 1
Next

 

Előzmény: _Nyuszi (15912)
_Nyuszi Creative Commons License 2011.08.28 0 0 15912

Látom, küzdesz ezerrel, de sajnos nem tudok segíteni, sajnos minden szakkönyvem bent van a cégnél, én meg hát nem... Google sem nagyon segít? :S

Előzmény: bolygohollandi (15911)
bolygohollandi Creative Commons License 2011.08.27 0 0 15911

Fogjuk rá, hogy el tudom nevezeni a hülye combobox-omat mondjuk ComboBox1-nek

Most ott tartok, hogy ezt a két sort elfogadja és végre is hajtja:

 

ActiveSheet.Shapes("ComboBox1").Select

Selection.AddItem Cells(1, 1)

 

 

De még mindig nem tudok belőle törölni, nem tudok rá "select" nélkül sehogysem hivatkozni...:(((

bolygohollandi Creative Commons License 2011.08.27 0 0 15910

Segítsen valaki!!!

Egy egészen kézenfekvő dolgot nem tudok megcsinálni.

Hogy a fenébe lehet egy worksheetre odarakott combobox-ba programsorral új elemet beletenni, hogy lehet a combobox-ra egyáltalán hivatkozni programból?

Egyáltalán, hogy lehet elnevezni egy comboboxot másképpen, mint ahogy alapértelmezetten odarakja a képernyőre mondjuk "Lenyíló 5" néven?

Egyetlen példa sem működik, amit a helpekben, interneten találok, tehát pl. a "ComboBox1.AddItem "qwert" " parancsot képtelen értelmezni és egyszerrűen nem értem, mi a fenét rontok el, pedig ennek baromi egyszerűenek kellene lennie....

Delila10 Creative Commons License 2011.08.25 0 0 15909

Köszönöm.

Előzmény: Jimmy the Hand (15908)
Jimmy the Hand Creative Commons License 2011.08.25 0 0 15908

Activesheet.Codename

Előzmény: Delila10 (15906)
SQLkerdes Creative Commons License 2011.08.25 0 0 15907

ActiveSheet.Name

Előzmény: Delila10 (15906)
Delila10 Creative Commons License 2011.08.25 0 0 15906

Hogy lehet makróban lekérdezni az aktív munkalap elsődleges nevét (Munka1, Munka10) ?

Jimmy the Hand Creative Commons License 2011.08.24 0 0 15905

Nekem is. Akkor nem ez a hiba. El tudod küldeni a fájlt emailben?

Előzmény: Tündi2003 (15904)
Tündi2003 Creative Commons License 2011.08.24 0 0 15904

Megnéztem: 2003-as Office-om van.

Előzmény: Tündi2003 (15898)
Jozsef Creative Commons License 2011.08.24 0 0 15903

Egyébként kisebb pontatlanságoktól eltekintve (pl. a gyűjtőszámla háromhavi tőkésítése helyett havi tőkésítéssel számoltak, így 926eFt jött ki 920eFt helyett) korrektül végigszámolták a cikkben szereplő paraméterekkel. Egyébként ez az eltérés csupán kb. 300Ft eltérés jelentene a törlesztésben.

Előzmény: piréz vitéz (15901)
Jozsef Creative Commons License 2011.08.24 0 0 15902

pl. JBÉ, RÉSZLET esetleg RRÉSZLET, PRÉSZLET

Előzmény: piréz vitéz (15901)
piréz vitéz Creative Commons License 2011.08.24 0 0 15901
nikojam Creative Commons License 2011.08.22 0 0 15900

Kedves Mindenki!

 

Köszönöm szépen az ötleteket, példákat. Mielöbb ki is próbálom!

 

Előzmény: Delila10 (15899)
Delila10 Creative Commons License 2011.08.22 0 0 15899

Munkalapon így hivatkozol a másik füzet egy adatára:

=[Másik_füzet]Munka2!$C$1

 

VB-ben, ha a B2 cellában szeretnéd látni a fenti adatot:

Cells(1, 2) = Workbooks("Másik_füzet").Sheets("Munka2").Range("C1")

 

A Másik_füzet Munka2 lapján a C1 cella kétszeresét akarod látni az első füzet B1 cellájában:

Cells(1, 2) = Workbooks("Másik_füzet").Sheets("Munka2").Range("C1")*2

 

Ebből kiindulva meg tudod írni a függvényedet.

Előzmény: nikojam (15896)
Tündi2003 Creative Commons License 2011.08.21 0 0 15898

XP-m van, Officeból talán 2003-as, de ezt most nem tudom fejből. Kedden megyek dolgozni, akkor majd megnézem, és referálok.

Előzmény: Jimmy the Hand (15890)
pimre Creative Commons License 2011.08.21 0 0 15897

Nem értem, programot akarsz írni, vagy Excel függvényt használni? Mert úgy értettem, hogy programból megy. Ha csak excel függvényt akarsz meghívnia táblázatban, akkor működik a dolog.

 

Előzmény: nikojam (15896)
nikojam Creative Commons License 2011.08.21 0 0 15896

Szia!

 

Köszönöm szépen a gyors válaszodat, ha nincsen más mód élek is vele. Lehet hogy nem írtam le pontosabban, sajna én függvényben szeretném ezt megoldani.

Még egyszer köszönöm szépen!

Előzmény: pimre (15895)
pimre Creative Commons License 2011.08.21 0 0 15895

Egyszerű. Megnyitod egyidejűleg mindkét fájlt.  Abban a fájlban, illetve annak abban a cellájában ahova a függvényt akarod írni,  megnyomod az egyenlőségjelet, majd elengeded a billentyűzetet, és az egérrel átmész a másik fájlba, ott az egérrel ráállsz a kiválasztandó cellára, és az egérrel rákattintasz. Ha csak ennyi, akkor entert nyomsz. Ha folytatni kell, például összeadás jön, akkor nem enter jön, hanem megnyomod a + jelet, és kikeresed a következő adatot. És így tovább.

 

Ha persze az elején az egyenlőségjel után egy függvényt akarsz kezdeni az hasonló. Például összegzésnél beütöd, hogy =szum( majd ezen a ponton (a nyitó zárójel után) hagyod félbe a pötyögést, és mész az egérrel a másik fájlban a keresett cellákra. 

 

Ezzel a technikával akár egy fájl több munkalapjának adata, de akár több fájl különböző munkalapjainak adata is lehet egyetlen képletben.

 

Azt hiszem van egy határ, hogy a képlet szövegének hossza nem haladhat meg valahány karaktert (én olyan 800-900 közötti értéket  találtam), de ezt pontosan nem tudom.

 

Még annyit, hogy ha a képletet javítani kell, nem kell elölről kezdeni, hanem a cellára állva fenn a parancssorban megjelenik annak aktuális képlete. És ott javítható, kiegészíthető a képlet.

 

Remélem érthető, így leírva bonyolultabbnak látszik, mint a gyakorlatban megcsinálni.

 

Előzmény: nikojam (15894)
nikojam Creative Commons License 2011.08.21 0 0 15894

Sziasztok!

 

Nagyon sok okosságot lehet itt találni, amiket utólag meg is köszönnék.

Eddig nem kérdeztem tőletek, de most a tudományom végére értem. Ha tudtok segítsetek. Egy függvényt szeretnék írni ami egy mezőt tölt ki, de a feltételeknek megfelelő adatokkal ami egy másik xls-ben van. Programként jól működik, de függvényként mintha csak az aktuális xls-t látná és a másikat nem.

Segítségeteket előre is megköszönném!

pimre Creative Commons License 2011.08.21 0 0 15893

Én is vidultam, mikor megláttam. De bizisten nem volt szándékos.

Előzmény: Jimmy the Hand (15892)
Jimmy the Hand Creative Commons License 2011.08.21 0 0 15892

Nekem is feltűnt az a szó az eredeti post-ban. De teljesen helyénvalónak éreztem :)

Előzmény: SQLkerdes (15891)
SQLkerdes Creative Commons License 2011.08.21 0 0 15891

OMG

A hónap posztja.

Freud hangosan röhög a sírjában :-)

Előzmény: pimre (15889)
Jimmy the Hand Creative Commons License 2011.08.21 0 0 15890

Furcsállom, mert nekem a program maga lefutott. (Csak azt nem tudtam ellenőrizni, hogy mit csinál.) Arra gyanakszom, hogy a hiba a gépedben lehet. Próbáltad másik számítógépen? Milyen op. rendszered van? Milyen Office verzió?

 

Esetleg ránézhetek közelről, ha el tudod küldeni a doksit email-ben. Előtte persze törölj ki belőle mindent, ami nem kell, csak a két makró modul maradjon bent.

Előzmény: Tündi2003 (15887)
pimre Creative Commons License 2011.08.20 0 0 15889

Bocsánat, egy kellemetlen elütés. Helyesen: ... akkor ne fusson rá a program...

Előzmény: pimre (15888)
pimre Creative Commons License 2011.08.20 0 0 15888

Sziasztok, csak beszámolok egy érdekes meglepetésemről a programozásnál. Egy adott ponton az iif függvényt használtam:

iif(sor<0 or oszlop<0,0,függvény(sor, oszlop)) formában, ahol a meghívott függvény használta a cells(sor,oszlop) kifejezést.

 

A szándékom az volt, hogy amikor a nem megfelelő paraméterek miatt közvetlenül kell adatot megadnom, akkor ne fosson rá a program egy olyan kifejezésre, ami hibát okozna.

 

Viszont legnagyobb meglepetésemre a függvényt a program akkor is meghívta, ha a feltétel miatt csak az iif függvény true értékének megfelelő kifejezést kellett volna visszaadnia.

 

Nem okozott gondot, átírtam a normál if...then szerkezetre. Csak érdekes (talán mondhatom, hogy apró hiba), hogy ezek szerint a program előbb kiértékeli az iif függvénynek mindkét ágát, és csak utána dönti el, hogy melyiket adja vissza. (20 évvel ezelőtti emlékeim szerint, ahol még Clipperben programoztam, nem volt ilyen gond az ottani iif függvénnyel)

Tündi2003 Creative Commons License 2011.08.20 0 0 15887

Konkrétan ez nem működik benne (az aláhúzott részeket jelzi ki hibásnak, a hiba neve: "Compile Error: Internal error"):

 

Private Function SetPrinterProperty(ByVal iPropertyType As Long, _
      ByVal iPropertyValue As Long) As Boolean

 

   'Code adapted from Microsoft KB article Q230743

    Dim hPrinter As Long          'handle for the current printer
    Dim pd As PRINTER_DEFAULTS

Előzmény: Tündi2003 (15886)
Tündi2003 Creative Commons License 2011.08.20 0 0 15886

Köszi, ez már majdnem működik! :)

Előzmény: Jimmy the Hand (15885)
Jimmy the Hand Creative Commons License 2011.08.19 0 0 15885

Itt a megoldás:

http://pubs.logicalexpressions.com/Pub0009/LPMArticle.asp?ID=116

 

A cikk alsó részében szereplő hosszú-hosszú kódot (onnantól kezdve, hogy "Option Explicit") másold be a dokumentumodba, egy új modulra.

A saját makród meg így módosul:

 

Sub Nyomtatás()
    With Options
        .UpdateFieldsAtPrint = False
        .UpdateLinksAtPrint = False
        .DefaultTray = "A nyomtató beállításaival"
        .PrintBackground = True
        .PrintProperties = False
        .PrintFieldCodes = False
        .PrintComments = False
        .PrintHiddenText = False
        .PrintXMLTag = False
        .PrintDrawingObjects = True
        .PrintDraft = False
        .PrintReverse = False
        .MapPaperSize = True
        .PrintOddPagesInAscendingOrder = True
        .PrintEvenPagesInAscendingOrder = True
        .PrintBackgrounds = False
    End With
    With ActiveDocument
        .PrintPostScriptOverText = False
        .PrintFormsData = False
    End With
    
    SetDuplex 3  'vertical duplex
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1;4", PageType:= _
        wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
        True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, _
        PrintZoomPaperWidth:=16839, PrintZoomPaperHeight:=23814
    
    SetDuplex 1   'simplex
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="2-3", PageType:= _
        wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
        True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, _
        PrintZoomPaperWidth:=16839, PrintZoomPaperHeight:=23814
End Sub

 

Remélem, ez már működik majd. De (duplex nyomtató híján) ezt sem tudom letesztelni...

 

(Amúgy a 2) sorszámú, ámde harmadik megoldáshoz nem kell új nyomtató, csak az az egy, ami már amúgy is megvan. Csak meg kell duplázni a telepített nyomtatók listájában. De ez most már irreleváns.)

Előzmény: Tündi2003 (15884)
Tündi2003 Creative Commons License 2011.08.19 0 0 15884

Én csak kettőt látok sorszámozva. :) Ha esetleg a másodikra gondolsz, mint harmadik lehetőségre, azaz az új nyomtató telepítésére, az nem fog menni, mert ahogy írtam, pont most adtak központi nyomtatót az egyéni nyomtatók helyett. Nem fognak külön nekem még egyet beállítani, se igazit, se virtuálisat. :(

Előzmény: Jimmy the Hand (15882)
wawabagus Creative Commons License 2011.08.19 0 0 15883

Respect :-D.

Köszi ezredszerre is :-)!!!

Előzmény: Jimmy the Hand (15879)
Jimmy the Hand Creative Commons License 2011.08.19 0 0 15882

Próbáltad a 3. lehetőséget?

Előzmény: Tündi2003 (15881)
Tündi2003 Creative Commons License 2011.08.19 0 0 15881

Ó, roppant szomorú vagyok, de köszönöm a válaszod! :(

 

A nyomtató is "új", most telepítették Eddig saját nyomtatója volt mindenkinek, de most inkább költséghatékonyak leszünk, és közös, a folyosón elhelyezett hálózati nyomtatónk lett. Eddig ki kellett nyomtatni a fájlt A4-ben, és abból nagyítottam fénymásolón A3-ra, kétoldalasra. Most annyival lett könnyebb, hogy az új nyomtató tud A3-ra nyomtatni, ezt akartam még tovább egyszerűsíteni a makróval, hogy ne kelljen mindennap ennek a fájlnak a nyomtatási beállításaival vacakolni, hanem "írok" egy makrót, hozzárendelek egy gombot az eszköztáron, és csak egy gombnyomás, és kész a kétoldalas, A3-as nyomtatás. De hát ezek szerint marad a naponkénti molyolás a nyomtatóbeállítással.

 

Azért ez gáz, hogy nem lehet Word/Excelben beállítani a nyomtatást makróval... de hát ez van.

Előzmény: Jimmy the Hand (15880)
Jimmy the Hand Creative Commons License 2011.08.19 0 0 15880

Excel és Word környezetben nincs lehetőség a nyomtató parmétereinek makróval történő beállítására. Access-ben viszont van. Ha van a gépeden telepítve Access, akkor az alábbi kód lehet, hogy működni fog:

 

Sub Nyomtatás()
    Const acPRDPSimplex = 1
    Const acPRDPHorizontal = 2
    Const acPRDPVertical = 3

    Dim AC As Access.Application, P As Access.Printer
    Set AC = New Access.Application
    AC.Visible = True
    Set P = AC.Printer

    With Options
        .UpdateFieldsAtPrint = False
        .UpdateLinksAtPrint = False
        .DefaultTray = "A nyomtató beállításaival"
        .PrintBackground = True
        .PrintProperties = False
        .PrintFieldCodes = False
        .PrintComments = False
        .PrintHiddenText = False
        .PrintXMLTag = False
        .PrintDrawingObjects = True
        .PrintDraft = False
        .PrintReverse = False
        .MapPaperSize = True
        .PrintOddPagesInAscendingOrder = True
        .PrintEvenPagesInAscendingOrder = True
        .PrintBackgrounds = False
    End With
    With ActiveDocument
        .PrintPostScriptOverText = False
        .PrintFormsData = False
    End With
    P.Duplex = acPRDPVertical
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1;4", PageType:= _
        wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
        True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, _
        PrintZoomPaperWidth:=16839, PrintZoomPaperHeight:=23814
    P.Duplex = acPRDPSimplex
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="2-3", PageType:= _
        wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
        True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, _
        PrintZoomPaperWidth:=16839, PrintZoomPaperHeight:=23814
    AC.Quit
End Sub

 

A kék sorok állítják be elvileg az egy- illetve kétoldalas nyomtatást. Ha az acPRDPVertical nem jó, próbáld meg acPRDPHorizontal beállítással is.

A Tools->References menüben a Microsoft Access Object Library-t be kell ikszelni.

 

Na most a helyzet az, hogy nekem a fenti kód nem működött. Viszont lehet ennek az is az oka, hogy itt nálunk a rendszergazda jogosultaságot igénylő beállítások le vannak tiltva. Talán admin joggal működik. Nem tudom, próbálkozz vele. Ha nem megy, akkor két további lehetőséget látok.

 

1) Olyan makrót írni, amely meghívja a megfelelő Windows rendszerfüggvényeket, és ezáltal állítja be a duplex paramétert. Nem biztos, hogy az itt jelenlévők tudása együttesen elegendő ehhez.

 

2) Telepíteni még egy ugyanolyan nyomtatót, mint az első. Ehhez nyugodtan lehet a már telepített printer drivert használni, és a nyomtatóport is legyen ugyanaz. Így tehát van egy db. fizikai nyomtató, de a Telepített nyomtatók listájában két bejegyzés szerepel hozzá. Az egyik neve legyen mondjuk "HP LJ akármi duplex", a másiké pedig "HP LJ akármi simplex". Mindkettőn be kell állítani az alapértelmezett nyomtatási módot (két- ill. egyoldalas nyomtatás), a makrót pedig úgy átalakítani, hogy az első és negyedik oldalt az egyikre küldja, a 2-3 oldalt pedig a másikra.

 

A második megoldást kivitelezhetőnek tartom.

 

 

Előzmény: Tündi2003 (15878)
Jimmy the Hand Creative Commons License 2011.08.19 0 0 15879

Valami ilyesmi lesz a megoldás (nem teszteltem):

 

Function Open_Excel()
    Dim appexcel As Object, WB As Object, Month_Lee As String
    
    wNum = IsoWeekNumber(Now()) - 1
    Set appexcel = CreateObject("Excel.Application")
    appexcel.Visible = True
    Set WB = appexcel.Workbooks.Open("D:Weekly_Template_ChannelKnowledge_SuppliesInvalidPNs.xlsx")
    Month_Lee = WB.Sheets(1).Range("A1").Value
    WB.SaveAs "D:ChannelKnowledge_InvalidPNs W" & wNum & ".xls"
    Set WB = appexcel.Workbooks.Open("D:Monthly_Template_ChannelKnowledge_SuppliesInvalidPNs.xlsx")
    WB.SaveAs "D:ChannelKnowledge_InvalidPNs " & Month_Lee & ".xls"
End Function

Előzmény: wawabagus (15876)
Tündi2003 Creative Commons License 2011.08.19 0 0 15878

Segítségül, ezt a kódot alkottam eddig (illetve alkotta a Word Rögzítés üzemmódban), látszik, hogy az 1;4 és a 2-3 oldalak nyomtatási parancsai egyformák, sehol nem szerepel az 1;4-nél a kétoldalas nyomtatásra utasító rész. Ami azt illeti, az A3-as méretre utaló sem, pedig az is be van pipálva. Gondolom, ha más doksit nyomtatnék A4-re, akkor onnantól ez a makró is csak A4-re nyomtatna.

 

ActivePrinter = "nyomtatóneve"
    With Options
        .UpdateFieldsAtPrint = False
        .UpdateLinksAtPrint = False
        .DefaultTray = "A nyomtató beállításaival"
        .PrintBackground = True
        .PrintProperties = False
        .PrintFieldCodes = False
        .PrintComments = False
        .PrintHiddenText = False
        .PrintXMLTag = False
        .PrintDrawingObjects = True
        .PrintDraft = False
        .PrintReverse = False
        .MapPaperSize = True
        .PrintOddPagesInAscendingOrder = True
        .PrintEvenPagesInAscendingOrder = True
        .PrintBackgrounds = False
    End With
    With ActiveDocument
        .PrintPostScriptOverText = False
        .PrintFormsData = False
    End With
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1;4", PageType:= _
        wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
        True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, _
        PrintZoomPaperWidth:=16839, PrintZoomPaperHeight:=23814
    ActivePrinter = "nyomtatóneve"
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="2-3", PageType:= _
        wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
        True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, _
        PrintZoomPaperWidth:=16839, PrintZoomPaperHeight:=23814

Tündi2003 Creative Commons License 2011.08.19 0 0 15877

Sziasztok!

 

A kérdésem csak részben kapcsolódik az Excelhez, merthogy Word-ös. :) Mivel azonban nyomtatásról van szó, a problémám univerzálisnak érzem. :)

 

Van egy hálózati nyomtatónk, ami tud A3-asra kétoldalasan nyomtatni. Erre én "írni" szándékozom egy makrót, hogy az adott fájlnak az első és a negyedik oldalát egymás hátára nyomtassa, míg a másodikat és a harmadikat csak simán egyoldalasra, és persze mindet A3-asban. Nem akarom minden nyomtatásnál kézzel állítgatni a paramétereket, ezért kellene a makró. Makróírási tudományom odáig terjed, hogy "Feljegyzés" üzemmódban (vagy minek hívják) tudom megcsinálni a makrót, majd tudom értelmezni a kapott kódot.

 

A probléma ott van, hogy a kétoldalas beállítást a makró nem jegyzi fel, azaz kinyomtatja a fájlt, de minden oldalt külön lapra.

 

Kpróbáltam azt a beállítást külön "feljegyezni", ami a kétoldalas nyomtatásra vonatkozik, de a makró egyszerűen nem jegyez fel semmit. Az adott nyomtató Tulajdonságainál lehet bepipálni a kétoldalas nyomtatásra vonatkozó részt, de a makró ezt úgy veszi, mintha nem csináltam volna semmit. Hogyan, milyen paranccsal tudnám kézzel beleírni a makróba, hogy az első és a negyedik oldalt egymás hátára, míg a másodikat és a harmadikat külön lapra nyomtassa?

wawabagus Creative Commons License 2011.08.19 0 0 15876

Sziasztok!

Access és excel jóbarátságáról szeretnék tőletek kérdezni.

Ez szuper egyszerű dolgot, de már annyél megragadtam.

 

Íme a kód, amit segítségetekkel hoztam létre. Accessből kinyit excel, lement stb.

Esküszöm szégyelem is magam, hogy nem tudok rájönni, de valahogy ez az accessből dolgozás fura nekem.

Csak annyit szeretnék, hogy a második fájl mentésénél a névbe tegyen bele egy nevet, ami MINDIG a sheet1!A1-en található.

Lehetne hivatkozni named rangel is. Próbálkoztam saját logika szerint, de nem ment :-(...

 

Ti tudjátok a megoldást esetleg?

Nagyon köszönöm!!!

 

 

Public Function IsoWeekNumber(d1 As Date) As Integer
    Dim d2 As Long
   
    d2 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
    IsoWeekNumber = Int((d1 - d2 + Weekday(d2) + 5) / 7)
End Function

 

Function Open_Excel()
Dim appexcel As Object

wNum = IsoWeekNumber(Now()) - 1
Set appexcel = CreateObject("Excel.Application")
appexcel.Workbooks.Open "D:Weekly_Template_ChannelKnowledge_SuppliesInvalidPNs.xlsx"
appexcel.Visible = True
appexcel.ActiveWorkbook.SaveAs "D:ChannelKnowledge_InvalidPNs W" & wNum & ".xls"
appexcel.Workbooks.Open "D:Monthly_Template_ChannelKnowledge_SuppliesInvalidPNs.xlsx"

'ide kéne hogy olvassa ki a monthly fájl nevét, ami mindig a "sheet1!A1 -n van. A fent említett template fájlban"

appexcel.ActiveWorkbook.SaveAs "D:ChannelKnowledge_InvalidPNs " & a & ".xls"

End Function

tt65 Creative Commons License 2011.08.18 0 0 15875

menni fog. szólj ha elakadtál!

Előzmény: muszakiellenor (15874)
muszakiellenor Creative Commons License 2011.08.18 0 0 15874

Köszönöm szépen, megprószálom :)

Előzmény: tt65 (15873)
tt65 Creative Commons License 2011.08.18 0 0 15873

Persze, csak fordítva kell a lóra ülni! :-)

A formanyomtatvány szöveg nagyon jól van wordben, mert azt arra találták ki.

Excelben pedig a változó adatokat tárolod, onnan a word emeli be az adatot a megefelelő helyre.

Ezt körlevélnek hívják.

lsg. gugli: word körlevél készítés adatok excelben pl.: http://office.microsoft.com/hu-hu/excel-help/word-korlevel-letrehozasa-excel-adatokkal-HP005203760.aspx

Előzmény: muszakiellenor (15872)
muszakiellenor Creative Commons License 2011.08.18 0 0 15872

Sziasztok!

 

Excelben szeretnék olyat megoldani, hogy bizonyos nyomtatványokat- közigazgatási határozatokat, végzéseket- vinnék fel egy-egy munkalapra. Lenne egy alap munkalap, ahova az ügyfél nevét, címét, iktatószámot, építési helyet, helyrajzi számot csak egyszer kellene begépelnem és a  =munkalap1!a..... hivatkozással ezek az alapadatok átkerülnének az eljárási cselekmények végzéseibe, határozataiba.

Nagyjából ezek sikerülnek is, csak a wordmen meglévő sablon dokumentumait soronként kell az excel cellákba "áthordanom" és a külalak elég gyatra lett eddig. Próbáltam cellaegyesítés után bemásolni, de az nem lehetséges. Az lenne a tiszteletteljes kérdésem, hogy van-e szalonképesebb megoldás erre az excelben ?

A segítséget előre is köszönöm !

muszakiellenor Creative Commons License 2011.08.18 0 0 15871

Kösz szépen !

Előzmény: tt65 (15870)
tt65 Creative Commons License 2011.08.17 0 0 15870
Előzmény: muszakiellenor (15865)
pimre Creative Commons License 2011.08.17 0 0 15869

Persze így jó, de a munkalap nevének bepötyögése helyett biztosabb módszer az = jel beírása után átmenni a másik munkalapra, ott kiválasztani a megfelelő cellát, és az enter után ott lesz a megfelelő képlet. Bonyolultabb esetben minden műveleti jel után ki lehet választani ilyen módon a megfelelő munkalap megfelelő celláját. 

Előzmény: muszakiellenor (15868)
muszakiellenor Creative Commons License 2011.08.17 0 0 15868
Koszi , zarojel nelkul ok!
Előzmény: tt65 (15866)
tt65 Creative Commons License 2011.08.17 0 0 15867

vagy esetleg ctrl C + ctrl V ill. ctrl M + ctrl V ? :-)

Előzmény: muszakiellenor (15865)
tt65 Creative Commons License 2011.08.17 0 0 15866

esetleg zárójel nélkül?

pl.: =Munka1!C3

Előzmény: muszakiellenor (15865)
muszakiellenor Creative Commons License 2011.08.17 0 0 15865

Sziasztok mexállottak!

 

Szeretném megkérdezni, hogyan tudok egy munkalap egy cellájából egy másik munkalap cellájába adatot eljuttatni? Próbáltam a =(munka!C3) formációt, de valami nem stimmel. A választ előre is köszönöm! üdv.

Sznida Creative Commons License 2011.08.17 0 0 15864

Ezeken felbuzdúlva keresgéltem a súgóban, megtalaláltam a timer-t. Erre volt szükségem. Ezzel tudok időlimiteket beállítani.

A súgóban teljesen érhető a példa, az alapján lehet használni!

 

Üdv: Sznido

Előzmény: Sznida (15863)
Sznida Creative Commons License 2011.08.17 0 0 15863

Köszönöm szépen!

Tényleg baromira egyszerű. El voltam terelve,  mert az ABB robot nyelven el lehet indítani egy változót, pl. "clkstart ido" . Ez elindít egy ido nevű változót, és már csak ezt a változó kell figyelni hol tart, és beavatkozni, ha meghaladt már egy bizonyos értéket.

Valami ilyesmit szeretem volna, de a Te megoldásoddal is jó lehet.

Megpróbálom kivonni az End_time-ot a Start_time-ból, és akkor megtudom mennyi idő telt el, ua mintha elindítottam volna egy számlálót! :)

 

Köszi!

 

Üdv: Sznido

Előzmény: wawabagus (15855)
wawabagus Creative Commons License 2011.08.16 0 0 15861

:-DDD...

Nem makró az kell, de csak a fő template fájlban és mivel eddig SaveCopyAs-t használtam a makró is klonozódott.

Ami tök feleseleges ugye.

 

De a te módszereddel csak a sheetek copizódnak...

Szóval szuper :-).

 

Előzmény: Delila10 (15860)
Delila10 Creative Commons License 2011.08.16 0 0 15860

Ez a zseniális és elegáns kód így született:

 

Bekapcsoltam a makrórögzítést,  lapfülön jobb klikk, Másolás vagy áthelyezés, Új munkafüzetbe, Legyen másolat.

Makrórögzítés vége.

 

Ezt a kódot kaptam. Kétszer kipróbáltam, és láttam, hogy jó.

Ennyit a zsenialításomról.

 

Mi az, hogy már makró nélkül is megy? Nem olyasmiről volt szó, hogy több füzetet akarsz sorban megnyitni, és 1-1 lapjukat kimásolni új füzetbe?

Előzmény: wawabagus (15859)
wawabagus Creative Commons License 2011.08.16 0 0 15859

Delila...szuper a módszered!!!!

Végül ezt használtam

 

Sheets.copy

 

és csak ez létre hozza a klónt, de már a makró NÉLKÜL!!

Zseniális vagy!

 

Köszi ezt az elegáns megoldást!!!!!!!!!!

Előzmény: Delila10 (15818)
tt65 Creative Commons License 2011.08.16 0 0 15858

megoldottam ...

Előzmény: tt65 (15828)
mafikám Creative Commons License 2011.08.16 0 0 15857

Ja, azt elfelejtettem írni, hogy a data fülön a subtotal melletti "hide detail"-re rámentem és akkor elmúlt a probléma, viszont egy másik szakaszon nem működött a subototal. Aztán megnyitottam a fájlt újra, de akkor már ez sem segített...

Előzmény: mafikám (15856)
mafikám Creative Commons License 2011.08.16 0 0 15856

Sziasztok!

 

A segítségeteket szeretném kérni. A subtotal (?) funkció nem működik egy bizonyos szakaszon, az összes többi helyen működik.

 

Ezt az anyagot találtam a témában, de nem látok sehol olyan cellát, ami objektumot tartalmazna… http://support.microsoft.com/kb/211769

 

Mi lehet a gond, hogyan találhatnám meg a hibát? Arra is gondoltam, hogy leszedem a subtotalokat és visszateszem (nem én tettem rá, így kaptam), de azzal sem boldogulok!:( Tudnátok segíteni, hogy hogyan oldhatnám ezt meg?

 

Le szeretném fagyasztani az első (A) oszlopot és az első három sort egyszerre, ezt hogyan tudnám megoldani? Külön-külön megy, de egyszerre nem...

 

Köszi szépen a segítséget!!

 

wawabagus Creative Commons License 2011.08.16 0 0 15855

Hello,

Végre én is tudok valami újat mondani :-D

Persze íme szuper időmérőt :-DDD

 

Baromi egyszerű

 

 

-----------------------------

Dim Start_time, End_time, RunTime as date

 

Start_time = now()

 

itt már fut a makród :-)

 

End_time = now()

 

Msgbox RunTime(datefid("s",Start_time, End_time)

 

 

Én azt is csináltam, hogy több helyre betettem a mérőt és kiirattam a végén egy cellába

...így pl megtudtam, hogy melyik fájlt mennyi idő alatt kreálta, sőt azt is melyik fázis volt a leghosszabb.

 

Nagyon hasznos és jót szórakoztam vele :-).

 

Előzmény: Sznida (15854)
Sznida Creative Commons License 2011.08.16 0 0 15854

Szia,

 

Ne haragudj, de ahogy olvastam, hogy "tettem bele időmérőt", akkor felcsillant a szemem.

Én is akartam már haszni VBA-ban is, (mert ABB robot nyelven használtam már) nem sikerült.

El tudnád küldeni ezt az időmérőt?

Bocsánat, hogy nem a Te problémáddal foglalkozok, ne haragudj!

 

Szép napot!

 

Üdv: Sznido

Előzmény: wawabagus (15853)
wawabagus Creative Commons License 2011.08.16 0 0 15853

Sziasztok!

Írtam egy makrót, ami riport fájlokat kreál több országra /egy fájl 17MB kb...elég nagy/.

4 országra kb 50 másodperc alatt fut le.

 

Tettem bele időmérőt, hogy lássam melyik fázis a lassú és úgy látom hogy a fájl mentése.

 

Én 2007-es excelen dolgozom, de a fájl 2003-as....

Lehet ez az ok?

 

Mit tehetek, hogy ne vegyen ennyi időt igénybe?

 

Persze az egy naphoz képest az 1 perc nem sok :-)))...de mégis szeretném tökéletesíteni a dolgot, ha lehet.

 

Köszi a tippeket!!

boraka Creative Commons License 2011.08.16 0 0 15852

Nagyon jó! Azt hiszem ez jobb lesz a beágyazott word sablon helyett.

Szuper vagy! Köszönöm szépen!

Előzmény: Jimmy the Hand (15851)
Jimmy the Hand Creative Commons License 2011.08.16 0 0 15851

Talán ezzel próbáld meg:

 

Sub teszt()
    Dim wd As Word.Application, D As Document
    Dim myImage As Object
        
    Set myImage = ActiveSheet.Shapes("Picture 2").OLEFormat.Object
    
    Set wd = New Word.Application
    wd.Visible = True      'teszteléshez érdemes ezt a sort meghagyni, aztán törölhető
    Set D = wd.Documents.Add
    myImage.Copy
    D.Range(0).Paste    'első karakterhelyre teszi be a képet
    D.Sections(1).Headers(wdHeaderFooterPrimary).Range.Paste        'fejlécbe teszi be a képet
End Sub

 

A kép ilyenkor egy munkalapon van beágyazva. Természetesen az elérési útvonalát (kék betűvel kiemelve) megfelelően módosítani kell.

Előzmény: boraka (15845)
Jimmy the Hand Creative Commons License 2011.08.15 0 0 15850

Igen, felugrik. Ezt kellene elkerülni.

 

Az a gond, hogy a Word applikáció a

o.Verb Verb:=xlOpen

utasítás végrehajtásakor megnyílik egy új word application ablakban, ami by default látható.

Ahhoz, hogy ne látszódjon, vagy az utasítást kellene úgy paraméterezni, hogy pl.

o.Verb Verb:=xlOpen, Visible:=False

már ha lenne ilyen paraméter, de nincs.

Vagy pedig az o objektumból kellene kiszedni valahogy a beágyazott word doksit, és azt átadni megnyitásra egy általam létrehozott, láthatatlan word application instance-nak. Ez sem megy.

 

Még azt tudnám elképzelni, hogy a csatolt word fájl ikonjához tartozó feliratból kiszedni az elérési utat, és úgy megnyitni a doksit. De ezt az elérési utat sem látom, hogy honnan, hogyan lehetne kinyerni program útján.

Előzmény: SQLkerdes (15848)
wawabagus Creative Commons License 2011.08.15 0 0 15849

Szia,

Köszi a tippet. Ezen a vonalon indultam, de valahogy nem akart összejönni.

...míg végül mégis :-D.

 

Köszi!

Előzmény: Törölt nick (15839)
SQLkerdes Creative Commons License 2011.08.15 0 0 15848

Mer mér?  Felugrik az ablakja?

 

Előzmény: boraka (15847)
boraka Creative Commons License 2011.08.15 0 0 15847

Szerintem, csak ide lehet beszúrni, de sajnos, nem javít a helyzeten:

 

Sub teszt()
    Dim  W As Word.Document, WD As Word.Application
    Dim o As OLEObject
    
    Set o = ActiveSheet.Shapes("Object 3").OLEFormat.Object
    o.Verb Verb:=xlOpen

    Set W = o.Object
    Set WD = W.Parent

    WD.Visible = FALSE
    W.SaveAs "D:akármi.doc"
    W.Close
    WD.Quit
End Sub

Előzmény: SQLkerdes (15846)
SQLkerdes Creative Commons License 2011.08.15 0 0 15846

Sub teszt()
    Dim  W As Word.Document, WD As Word.Application
    Dim o As OLEObject
    
    Set o = ActiveSheet.Shapes("Object 3").OLEFormat.Object
    o.Verb Verb:=xlOpen

    Set W = o.Object
    Set WD = W.Parent
    W.SaveAs "D:akármi.doc"
    W.Close
    WD.Quit
End Sub

 

Ide az elejére miért nem lehet beszúrni, hogy:

 

WD.Visible = FALSE

 

Vagy félreértem a kérdést?

boraka Creative Commons License 2011.08.15 0 0 15845

Lehet, egy másik nézetből kellene nekikezdeni. A lényeg, hogy különböző munkalapok, különböző adataiból makróval létrehozok és összeállítok egy word dokumentumot különböző formázásokkal.

A problémám az, hogy sehogy sem tudok egy kis képet (egy logót) a wordbe illeszteni, úgy, hogy a képnek ne kelljen külön elérési utat megadni, hanem az adatokat (és a makrót is) tartalmazó excel munkafüzetből lehessen azt a wordben adott helyre beszúrni. 

Előzmény: Jimmy the Hand (15843)
boraka Creative Commons License 2011.08.15 0 0 15844

Sajnos, semmi, pedig erőst guglizok is a témában...

Előzmény: Jimmy the Hand (15843)
Jimmy the Hand Creative Commons License 2011.08.15 0 0 15843

Nem tudom, nem sikerült megoldani. Ha neked van valamid, kíváncsi lennék rá.

Előzmény: boraka (15837)
boraka Creative Commons License 2011.08.15 0 0 15842

Köszi, sokat segítettél ;-)

Előzmény: SQLkerdes (15841)
SQLkerdes Creative Commons License 2011.08.15 0 0 15841

Az application-öknek van egy visible property-jük, azt kell false-ra állítani.

Előzmény: boraka (15837)
Törölt nick Creative Commons License 2011.08.15 0 0 15840

aztán persze elképzelhető, hogy a fkeres-ben az oszlopszámot is dinamikussá kell tenned. (Pl. megkeresed a számát egy matc (hol.van) fgv-el. Nem ismerem a tábla szekezetét...

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

Lásd el névvel a tartományt. A Névvel ellátott tartomány a sorok/oszlpok beszúrásával dinamikusan változni fog.

A nevet pedig a range-ben adod meg:   Range("NÉV")

De lehet így is, nem kell az autofill:

 

Range("teszt").Formula = "=IF(ISERROR(VLOOKUP(A7,orders,3,0)),""Missing"",VLOOKUP(A7,orders,3,0))"

Előzmény: wawabagus (15838)
wawabagus Creative Commons License 2011.08.15 0 0 15838

Sziasztok!

Megint kéne sajnos segítség.

 

Hogyan tudom rugalmasan függvényekkel feltölteni egy munkalapot?

 

Példéul ez a függvényem:

 

   Sheets("SumUp").Cells(6 + 1, LastCol + 3).Formula = _
      "=IF(ISERROR(VLOOKUP(A7,orders,3,0)),""Missing"",VLOOKUP(A7,orders,3,0))"
   Range("R7").Select
   Selection.AutoFill Destination:=Range("R7:R123")

 

Azt, hogy a függvény mindig az utolsó oszlop utáni x (itt 3. oszlopba) kerüljön azt megoldottam.

azt nem tudom,  hogyan másoljam ezt le értelmesen...

 

Tehát az R, nem mindig lesz R...szóval ezt nem használhatom Selection.AutoFill Destination:=Range("R7:R123"). És persze a az sem biztos, hogy 123 sor lesz.

 

 

Hogyan tundám ezt praktikusan megoldani?

Van ötletetek?

 

Köszi előre is!!

 

boraka Creative Commons License 2011.08.15 0 0 15837

Esetleg meg lehet oldani azt is, hogy a beágyazott doksi megnyitása (mentése-bezárása) ne látszódjon?

Az 'Application.ScreenUpdating = False' itt nem működik. 

Előzmény: Jimmy the Hand (15833)
boraka Creative Commons License 2011.08.15 0 0 15836

Tökéletesen működik! Nagyon köszönöm a segítséget! :-)

Előzmény: Jimmy the Hand (15833)
Jimmy the Hand Creative Commons License 2011.08.15 0 0 15835

;-)

Előzmény: wawabagus (15832)
Jimmy the Hand Creative Commons License 2011.08.15 0 0 15834

Ja, bocs. Ezt elfelejtettem visszaírni:

 

Set o = ActiveSheet.Shapes("Object 3").OLEFormat.Object

helyett

Set o = ActiveSheet.Shapes("Objektum 3").OLEFormat.Object

 

Előzmény: Jimmy the Hand (15833)
Jimmy the Hand Creative Commons License 2011.08.15 0 0 15833

Sub teszt()
    Dim  W As Word.Document, WD As Word.Application
    Dim o As OLEObject
    
    Set o = ActiveSheet.Shapes("Object 3").OLEFormat.Object
    o.Verb Verb:=xlOpen

    Set W = o.Object
    Set WD = W.Parent
    W.SaveAs "D:\akármi.doc"
    W.Close
    WD.Quit
End Sub

 

Kell hozzá csatolni a Microsoft Word xx.y Object Library-t a Tools->References menüben.

A vastagított kódrészekre szigorúan véve nem lenne szükség. Azért kellenek mégis, hogy a Word alkalmazást is be lehessen zárni, különben nyitva maradna.

Előzmény: boraka (15831)
wawabagus Creative Commons License 2011.08.15 0 0 15832

Szuper vagy :-)!!!!!!!!

Köszi, működik :-)

Hurra!

Előzmény: Jimmy the Hand (15830)
boraka Creative Commons License 2011.08.15 0 0 15831

Sziasztok!

 

Egy munkalapra beágyazott word dokumentumot szeretnék makróval megnyitni, majd egy adott helyre elmenteni.

A megnyitás rendben van, de nem tudom (a makrórögzítő nem segít), hogyan lehet elmenteni (mentés másként) és utána bezárni a beágyazott dokumentumot.

 

A megnyitásra ezt adta a makrórögzítő:

    ActiveSheet.Shapes("Objektum 3").Select

    Selection.Verb Verb:=xlOpen

 

Tudna valaki segíteni?

Jimmy the Hand Creative Commons License 2011.08.15 0 0 15830

Nem teszteltem, de sztem valami ilyesmi lesz:

 

    Sheets("SumUp").Cells(6 + 1, LastCol + 3).Formula = _
        "=IF(ISERROR(VLOOKUP(A7,orders,3,0)),""Missing"",VLOOKUP(A7,orders,3,0))"

Előzmény: wawabagus (15829)
wawabagus Creative Commons License 2011.08.15 0 0 15829

Sziasztok!

Mint várható volt megint felmerült egy kis bonyodalom.

VBA kódok és Vlookup.

 

Van egy összesítő sheetem, aminek 4 oszlopát vlookup-okkal szeretném feltölteni.

Fel is vettem a makrót. Bizonyos szintig működik is.

 

A gond ezzel a R1C1-es formátummal van.

Hogyan lehet ezt átírni úgy, hogy ne ilyen relatívan határozza meg a pozíciót, hanem fapadosan pl Vookup(Range("A5")...stb...

Valamiért nekem igy nem működik ezzel a range-vel...de nyílván rosszul csinálom.

 

 

 

    Sheets("SumUp").Cells(6 + 1, LastCol + 3).FormulaR1C1 = _
        "=IF(ISERROR(VLOOKUP(RC[-17],'Country Orders'!C[-17]:C[-15],3,0)),""Missing"",VLOOKUP(RC[-17],'Country Orders'!C[-17]:C[-15],3,0))"
    Range("R7").Select
    Selection.AutoFill Destination:=Range("R7:R123")    Sheets("SumUp").Cells(6 + 1, LastCol + 3).FormulaR1C1 = _
        "=IF(ISERROR(VLOOKUP(RC[-17],'Country Orders'!C[-17]:C[-15],3,0)),""Missing"",VLOOKUP(RC[-17],'Country Orders'!C[-17]:C[-15],3,0))"
    Range("R7").Select
    Selection.AutoFill Destination:=Range("R7:R123")

 

 

RC[-17] helyett pl Range("a7") kéne

'Country Orders'!C[-17]:C[-15], helyett pedig named range (már meg is csináltam "orders")

 

Van tippetek?

Nagyon köszönöm előre is!

 

tt65 Creative Commons License 2011.08.15 0 0 15828

"azonos pontszám esetén mindíg az elsőt írja ki. Ez a probléma is megoldható, de most erre nem térnék ki"

pont belefutottam egy ilyenbe, kitérne valaki erre?

vagy biztos volt már a témáról szó, ha valaki segít melyik hszben találom, megköszönném!

Előzmény: Sztai (15773)
Jimmy the Hand Creative Commons License 2011.08.14 0 0 15825

Private Sub UserForm_Activate()

End Sub

?

Előzmény: Gavriel (15823)
_Nyuszi Creative Commons License 2011.08.14 0 0 15824

OFF

"Basszus hány év megtanulni ezt a makró írás mekkmester módra...."

Teljesen átérzem a helyzetedet: én a héten php-ban gyártottam kódot... Nem tudok programozni.... Vicces volt. :-)

Előzmény: wawabagus (15816)
wawabagus Creative Commons License 2011.08.12 0 0 15822

Persze mindig újabb és újabb dolgok merülnek fel, mint:

 

Miért romlik el a conditional formatting a COPY-ban, ami még az eredetiben tök jó.

A conditinal formattingolt rász magábaölel egy pivotot is...

Ott van a probléma...

 

áááá

 

wawabagus Creative Commons License 2011.08.12 0 0 15821

hahahaha...hát igen

:-D

Előzmény: SQLkerdes (15819)
wawabagus Creative Commons License 2011.08.12 0 0 15820

Szia Delila!

Ó, ez tényleg szuper. Megjegyzem későbbre, közben már "átcsináltam" a makrót....

Köszi!

 

Előzmény: Delila10 (15818)
SQLkerdes Creative Commons License 2011.08.12 0 0 15819

Mondjuk az biztos, hogy futás közben tarkón lőni a kódot tartalmazó excel file-t nem egy best practice :-)

Előzmény: wawabagus (15814)
Delila10 Creative Commons License 2011.08.12 0 0 15818

Hihetetlen, de ez az egy sor létrehoz egy új füzetet, és átmásolja a Sheet1 lapot.  Az új füzet lesz aktív, nem lesz benne több lap. Ezt az új füzeted mentheted más néven, és bezárhatod.

 

A sor: Sheets("Sheets1").Copy

Előzmény: wawabagus (15816)
wawabagus Creative Commons License 2011.08.12 0 0 15817

...vagy SaveCopyAs lesz a megoldás :-DDD?

 

Istenem

Előzmény: wawabagus (15816)
wawabagus Creative Commons License 2011.08.12 0 0 15816

Szia,

Igen tudom, de mások fogják használni és nem biztos hogy majd vágják ezt....

Csak közben az jutott eszembe, hogy ha én ciklust írok, amiben becsukom a makrós munkafüzetet, akkor nem szakad meg a ciklus...nem felejti el hol tart a számolásban?

 

Bocs a hülye kérdését...kezdek már kikészülni ettől a hülye makrótól :-D.

 

Már belekezdtem egy olyan megoldásba, ahol inkább array-ként átmásolom az össze sheetet egy friss munkafüzetbe...

Itt most azon szenvedek, hogy nekem csak az átmásolt munkafüzetek kellenek, tehát sheet1, sheet2, sheets3-ra /vagy ahány van nem/.

Ok, újabb megoldásra váró feladat.

 

OK, törlöm az össze sheetet, mielőtt bemásolnám azt ami kell majd nekem.

Szuper, akkor már csak azt nem tudom, hogyan lehet üres munkafüzetbe másolni:

 

   Windows("Template - Version2.xls").Activate
    Sheets(Array("InventoryReport", "EMEA Orders", "Country Orders", _
        "Country Orders Data", "EMEA calls", "Country calls", "EMEA usage", "Country usage" _
        , "PartUsage Data")).Copy Before:=Workbooks("Book1").Sheets(1)

 

Nincs before, after, mert nincs benne sheet...

 

Basszus hány év megtanulni ezt a makró írás mekkmester módra....

ááááááááááááááááááááááá

 

Előzmény: SQLkerdes (15815)
SQLkerdes Creative Commons License 2011.08.12 0 0 15815

Szerintem ehhez elég az Excel biztonsági beállításait megváltoztatni.  Asszem a Trust Center címszó alatt futnak az excel 2007-ben és felette.

Előzmény: wawabagus (15814)
wawabagus Creative Commons License 2011.08.12 0 0 15814

Sziasztok!

Lenne még egy kérdésem...

 

Adott egy template sok sok sheettel, amin mindenféle manipulációt végzek, majd a végén nyomok egy SaveAS-t.

 

Majd újra nyitom a templetem, hogy egy újabb országra is lefusson ugyanaz a procedura...egészen annyiszor ahány országot talál egy adott helyen.

 

 

A kérdésem az lenne, hogy mivel ciklusba szeretném tenni a procedurát /annyiszor fut, ahány országot talál/...a makro biztonsági bizbasza be fog zavarni...

 

Lehet ezt makróból kikapcsolni? Hogy ne zavarjon be minden macro templet nyitáskor?...

 

Össze vagyok zavarodva, lehet nem jó ötlet hogy SaveAS-t nyomok és becsukódik a template...

 

ÁÁÁÁ

 

Esetleg ahelyett, hogy SaveAS a templetre esetleg az egészet egy új munkfüzetbe kéne másolni és akkor a template nyitva marad?

 

Nem tudom mennyire sikerült érthetően átadni mi a gond...

 

Tudok nekem tippet adni, hogyan lehet ezt praktikusan megoldani?

KÖSZÖNÖM

 

 

wawabagus Creative Commons License 2011.08.12 0 0 15813

Szia Jimmy,

Hahaha...nagyon trükkös megoldás :-). Sosem jutott volna ilyen eszembe.

Köszi szépen, tegnap még vissza csináltam a filteres megoldásom...úgy ezerszer gyorsabb :-), mint a szuper loopos...pedig arra nagyon büszke voltam.

 

 

 

Előzmény: Jimmy the Hand (15811)
wawabagus Creative Commons License 2011.08.12 0 0 15812

Ok, köszi

Előzmény: SQLkerdes (15810)
Jimmy the Hand Creative Commons License 2011.08.11 0 0 15811

Esetleg ezt is megpróbálhatod. Úgy mértem, durván 5x gyorsabb, mint a ciklusos megoldás.

Kb. 55000 sornál 51 sec volt a futási idő. (Lehet, hogy a kézi szűrés-másolás ennél is gyorsabb :))

 

Sub töröl()
    Dim Rng As Range, WS As Worksheet
    Application.Calculation = xlCalculationManual
    Set WS = Sheets("Country Orders Data")
    Set Rng = WS.Range("B2", WS.Range("B" & Rows.Count).End(xlUp))
    WS.Range("B:B").Insert
    With Rng.Offset(, -1)
        .FormulaR1C1 = "=IF(RC[1]<>""Denmark"",1,"""")"
        .Copy
        .PasteSpecial xlPasteValues
        .SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow.Delete
    End With
    WS.Range("B:B").Delete
    Application.Calculation = xlCalculationAutomatic
End Sub

Előzmény: wawabagus (15809)
SQLkerdes Creative Commons License 2011.08.11 0 0 15810

A Calculate-et feltétlenül próbáld meg.

Előzmény: wawabagus (15809)
wawabagus Creative Commons License 2011.08.11 0 0 15809

Szia,

Screenupdate-et lekapcsoltam

Calculate-et viszont nem

 

Közben megpróbáltam, hogy szüréssel nyerem ki ami kell nem ezzel a ciklussal és így sokkal gyorsabb.

 

Köszi!

Utánanézek ennek a calculate dolognak

Köszönöm a sgeítséget!!

 

Előzmény: SQLkerdes (15808)
SQLkerdes Creative Commons License 2011.08.11 0 0 15808

Screenupdating lekapcsolás,

Calculate lekapcsolás

 

35000 sornál akár rengeteget is számíthat.

Előzmény: wawabagus (15807)
wawabagus Creative Commons License 2011.08.11 0 0 15807

Sziasztok!

Lenne még egy kérdésem.

 

Van nekem ez a kódom:

 

    Sheets("Country Orders Data").Activate
    Last = Cells(Rows.Count, "B").End(xlUp).Row
    For i = Last To 2 Step -1
        If (Cells(i, "B").Value) <> "Denmark" Then
            Cells(i, "A").EntireRow.Delete
        End If
    Next i

 

Mivel azonban a sheet, amin töröl kb 35ezer sor van, ez eléggé kikészíti a programot.

Mi lehetne a gyorsabb megoldás? Rászűrés Denmarkra és kicopizás?

 

Köszi a tiippeket!!

 

 

wawabagus Creative Commons License 2011.08.11 0 0 15806

Sziasztok!

Tudnátok nekem tanácsot adni?

 

Vadi új gépet kaptam a munkahelyemen és új programokat is:

 

Windows XP - ->> Windows7

Excel 2003 -->> Excel2007, de a Excel 2003-es még rajta van

 

Vannak régi excel fájlaim, minenféle makróval....meg új fájlok amikben most komponálik makrót stb...

 

TETÜ LASSÚ AZ EXCELEM!!!

 

Megnyitni egy fájlt 3 perc

Elmenteni 2perc

Gagyi makrót futtatni 4 perc

 

A gépem vadi új!

 

Lehet emögött olyan ok, amin esetleg változtatni tudok? Létezik, hogy az excel 2007-en ennyire lassan nyíljanak a régi fájlok?

 

Köszi előre is a tippeket/ötleteket mit lehetne tenni...

Köszi!!!

magyarpityu Creative Commons License 2011.08.11 0 0 15805

Szia Jimmy!

 

Köszönöm a választ, megint tanultam tőled! :))

 

Ezt a 4 elemű tömböt én is nézegettem, de nem tudtam kiokoskodni, milyen adatokat is tárol. Végül megtaláltam a megoldást:

 

Sub szamol()
  Dim Param1 As Integer, Param2 As String
  Dim MenuCommand As CommandBarControl
  Set MenuCommand = CommandBars.ActionControl
  If Not TypeName(MenuCommand) = "CommandBarButton" Then Exit Sub
  Param1 = MenuCommand.Tag
  Param2 = MenuCommand.DescriptionText
  ...

 

A menü több szintes, minden szinten CommandBarControl objektumok szerepelnek. Azokat a menüpontokat, amelyek valamilyen feladatot hajtanak végre, vagyis amelyek meghívják a szamol() makrót, azokat msoControlButton típussal hoztam létre:

 

AlMenu(k).OnAction = "szamol"

AlMenu(k).DescriptionText = "..." 'Param2

AlMenu(k).Tag = "..." 'Param1

 

Azok a menüpontok, amelyekből almenü nyílik, azok msoControlPopup típusúak, és nincs .OnAction tulajdonságuk (pontosabban, ezt a tulajdonságát nem irányítottam a szamol() makróra).

 

Mikor a menüből meghívódik a 'szamol' makró, akkor a CommandBars.ActionControl tartalmazza azt a referenciát, amire szükségem van. Felvettem a 'szamol' makróban egy CommandBarControl típusú objektumot, ennek adtam át a CommandBars.ActionControl referenciát, és innentől kiolvashattam a korábban minden menüpontra egyedileg jellemző .DescriptionText és .Tag tulajdonságokat. Így már át tudok adni paramétereket a meghívott makrónak. Sőt, akár három paraméter is átadható, mert a .Parameter tulajdonság is használható.

Még egyszer köszönöm a segítséget!

Előzmény: Jimmy the Hand (15804)
Jimmy the Hand Creative Commons License 2011.08.11 0 0 15804

Hát én úgy nézem, hogy a variant egy négyelemű tömb, amelynek elemei a hívó menuitem pozícióját mutatják.

 

Sub teszt()
    Dim v As Variant
    v = Application.Caller
End Sub

 

Ha a fenti makrót saját menügombbal indítod, akkor a v(1 To 4) vektor elemei a következők lesznek:

 

v(2) : hányadik menü a felső menüsorban

v(1) : az adott menün belül hányadik menüpont

v(3) : ??? (nem tudom mi ez)

v(4) : kísérleteim szerint, ha legalább 3. szinten van az aktivált menüpont, akkor v(4) értéke 1, egyéb esetben nulla. (Vagyis, ha az aktivált menüpont a főmenü->almenü->menüpont útvonalon érhető el, mint pl. az Eszközök->Védele->Lapvédelem, vagy még ennél is lejjebb van a hierarchiában.)

 

Maximum 2 szintes menürendszer esetén működik az alábbi tesztprogram. A 3. szintre már nem tudtam kiterjeszteni, mert fogalmam sincs, miből derül ki az, hogy az aktív menüpont a hierarchia hányadik szntjén tartózkodik.

 

Sub szamol()
    Dim v As Variant
    With Application
        v = .Caller
        MsgBox .ActiveMenuBar.Menus(v(2)).Caption & " -> " & .ActiveMenuBar.Menus(v(2)).MenuItems(v(1)).Caption
    End With
End Sub

 

Lehet, hogy van egyszerűbb módja is, pl. direkt hivatkozás az aktív menüpontra valahol az Application objektum ezernyi tulajdonsága között. Nem tudom.

Előzmény: magyarpityu (15803)
magyarpityu Creative Commons License 2011.08.10 0 0 15803

Szia Jimmy!

 

Ezt a módszert hogyan lehetne alkamazni menürendszernél?

 

Létrehoztam egy több szintű menüt, minden menüpont CommandBarControl típusú.

 

Const maxMenuCommand As Integer = 40

Dim FoMenu As CommandBarControl

Dim AlMenu(maxMenuCommand) As CommandBarControl

 

Set FoMenu = CommandBars(1).Controls.Add(msoControlPopup)

 

Azokat az almenüpontokat, amelyeknek további almenüi vannak, így hoztam létre:

 

Set AlMenu(k) = FoMenu.Controls.Add(msoControlPopup)

 

Míg azokat a menüpontokat, amelyeknek már nincs almenüje, így:

 

Set AlMenu(k) = FoMenu.Controls.Add(msoControlButton)

 

Minden almenü .OnAction tulajdonságát ugyanarra a makróra állítottam:

 

AlMenu(k).OnAction = "szamol"

 

és a későbbi azonosítás kedvéért még néhány menüpontra jellemző adatot is beállítottam:

 

AlMenu(k).DescriptionText = "..."

AlMenu(k).Tag = "..."

 

Már csak az van hátra, hogy mikor meghívódik a 'szamol' makró, akkor valahogyan azonosítania kellene, hogy melyik menüpont indította el. Ha tudnám, melyik menüpontról lett meghívva, onnantól tudnám a 'szamol' makró paramétereit is, mert minden menüpont .DescriptionText és .Tag tulajdonságait kitöltöttem. Viszont az Application.Caller ebben az esetben egy Variant() típust ad vissza. Hogyan lesz ebből CommandBarControl objektumra való hivatkozás?

 

Előre is köszönöm a segítséget!

Előzmény: Jimmy the Hand (15800)
magyarpityu Creative Commons License 2011.08.10 0 0 15802

Szia Jimmy!

 

Ez fantasztikus, köszönöm szépen! :)) Ezt az Application.Caller-t kerestem!!!

 

Még egyszer köszönöm a segítséget!

Előzmény: Jimmy the Hand (15800)
Jimmy the Hand Creative Commons License 2011.08.10 0 0 15801

kórvégrehajtás kódvégrehajtás

Előzmény: Jimmy the Hand (15800)
Jimmy the Hand Creative Commons License 2011.08.10 0 0 15800

Nem biztos, hogy jól értem a kérdést, de ha igen, akkor a következő megoldást javaslom.

Ne az OnAction értékbe adjad be a paramétert, hanem magát a makrót írd meg úgy, hogy különböző dolgokat csináljon attól függően, hogy melyik képről indult.

 

Tehát pl. minden kép OnAction értéke a meret nevű makró, ami pedig így épül fel:

Sub meret()
    If TypeName(Application.Caller) = "String" Then
        Select Case Application.Caller
        Case "Kép 1"
            MsgBox "A 'Kép 1' objektumra kattintottál."
        Case "Kép 2"
            MsgBox "A 'Kép 2' objektumra kattintottál."
        Case "Szövegdoboz 3"
            MsgBox "A 'Szövegdoboz 3' objektumra kattintottál."
        End Select
    End If
End Sub

Itt tehát az Application.Caller tartalmazza annak az objektumnak a nevét, amelyről a kórvégrehajtás indult.

 

 

Előzmény: magyarpityu (15799)
magyarpityu Creative Commons License 2011.08.10 0 0 15799

Az ID azonosítók mentés, kilépés, újra megnyitás után változnak (de természetesen továbbra is egyediek maradnak), úgyhogy másként kell azonosítani az eseményt kiváltó objektumot. Így aztán most már két kérdésben kérek tőletek segítséget!

 

1. Hogyan lehet (pl. Shape objektum) OnAction eseménykezelőjébe olyan makróhivatkozást megadni, ami paramétereket is át tud adni a meghívott makrónak?

 

2. Hogyan lehet azonosítani azt az elemet, ami kiváltott az OnAction hatására a makróhívást?

 

Illetve talán rosszul közelítek a kérdéshez. Hogyan oldható meg, hogy egy képre kattintva elinduljon egy makró, ami ezt a képet (csak ezt, a többit nem) módosítja?

Előzmény: magyarpityu (15798)
magyarpityu Creative Commons License 2011.08.10 0 0 15798

Sziasztok!

 

Egy dologban szeretném a segítségeteket kérni! Makróval képeket szúrok be egy munkalapra, és azt szeretném, hogy a képre kattintva elinduljon egy makró.

 

Addig rendben, hogy a kép 'Shape' típusú objektum, és az 'OnAction' tulajdonságát beállítom a meghívandó makró nevére, de hogyan adok át paramétert a makrónak? Paraméterek nélkül valóban meghívódik a makró a képre kattintva, de át szeretném adni paraméterként, hogy melyik képre kattintva hívódott meg a makró! Arra gondolok, hogy a meghívandó makró várna egy Long típusú értéket, ami az egérkattintás eseményt kiváltó Shape objektum ID azonosítója lenne. Így próbáltam:

 

Dim abra as Shape

Set abra = Munlalap.Shapes.AddPicture(FileNev, msoTrue, msoTrue, Xpos, Ypos, pWidth, pHeight)

abra.OnAction = "meret(" & abra.ID & ")"

 

Az 'abra' objektum 'OnAction' tulajdonsága valóban felveszi pl. a "meret(12)" stringet, de rákattintva az ábrára hibaüzenetet kapok: "A(z) meret(12) makró nem futtatható. Lehetséges, hogy a makró nem érhető el a munkafüzetben, vagy le van tiltva az összes makró." Viszont a 'meret' makrót Excelből elindítva rendben lefut. Kipróbáltam:

 

sub tesztel()

meret 12

end sub

 

így működik.

 

Mi lehet a hiba? Hogyan lehet ezt megoldani?

tt65 Creative Commons License 2011.08.10 0 0 15797

köszi, valóban  3x(18+1)=57, most már értem honnan a misztikus szám! :-)

Előzmény: Sztai (15794)
Jimmy the Hand Creative Commons License 2011.08.10 0 0 15796

Az Outlook a csatolmányokat belementi az email-be.

Amikor a mellékletet megnyitos, bemásolódik egy temporary mappába, és a továbbiakban az összes mentés, automentés itt rögzül. Aztán amikor be akarod zárni az emailt, az Outlook megkérdezi, hogy mentse-e a változásokat. És ha azt mondod, hogy igen, akkor a temp mappából az email obektumba beágyazódik a csatolt fájl utolsó verziója, és az egész együtt elmentődik vagy az exchange szerverre, vagy a lokális pst fájlba. Mivel elvileg ez (tehát az email + a beágyazott csatolt fájl) a végtermék, és minden egyéb csak munkaverzió, az ideiglenes fájlokra nincs szükség, tehát fölösleges őket az asztalra, vagy egyéb frekventált helyre másolni/menteni. Legalábbis valami ilyesmi lehet az ideológia mögötte.

 

Mindenesetre akár tetszik, akár nem, ehhez kell alkalmazkodni, ha Outlookot használ az ember. Fontos fájlok esetében érdemes rászokni arra, hogy mindenekelőtt lemented a mellékletet egy biztos helyre, és csak utána kezdesz dolgozni vele.

Előzmény: Qtyi (15793)
Sztai Creative Commons License 2011.08.10 0 0 15795

Milyen oprendszered van, milyen outlookod és exceled?

Előzmény: Qtyi (15775)
Sztai Creative Commons License 2011.08.10 0 0 15794

az 57 abból adódik, hogy a példában 18 ország volt, tehát az első 18 pontot kap, a második 17 stb. Ezt úgy számolom ki, hogy 18+1-helyezési sorszám. Mivel 3 csoportban értékelte őket:

n+1-ssz1+n+1-ssz2+n+1-ssz3=3*(n+1)-ssz1-ssz2-ssz3

a ssz-ot pedig a MATCH/HOL.VAN adja meg

Természetesen 57 helyett jobb megszámolni az elemszámot fv-nyel (3*(count(a:a)+1))

Üdv

 

Előzmény: tt65 (15774)
Qtyi Creative Commons License 2011.08.10 0 0 15793

Jimmy, hályog kovács, tt65,

 

Köszönöm a segítségeteket!

Sajnos egyik módszerrel sem sikerült elővarázsolni a file-t.

Emlékeztem, hogy valami T-vel kezdődő krix-krax-nevű könyvtárba "mentettem", de azt nem találtam meg (pedig volt vagy 40 könyvtár mindenféle kezdőbetűvel, és mindet végignéztem).

Viszont megtaláltam egy korábbi file-t, amivel szintén így jártam anno, úgyhogy segítségetek nem volt hiábavaló :)

 

Mégegyszer köszönöm!

 

(Pusztán csak elgondolkodás végett, vajon mire jók ezek a krixkrax nevű, elérhetetlen könyvtárak? Miért nem menti az Outlook valami normális helyre a file-okat alapból?... )

 

Előzmény: Jimmy the Hand (15776)
tt65 Creative Commons License 2011.08.10 0 0 15792

mail ment

Előzmény: Daniel Jonas (15791)
Daniel Jonas Creative Commons License 2011.08.10 0 0 15791

1 Ft = ~366 Euro (az én világomban Júniusi adatok)

             -18  Font

             60   Bura

             182 Dán Dáner

              80  Svéd Bróken

             476 Román Ún

stb.

Ha érdekel; van facebookod?

Mert ez nem ehhez a témához tartozik szerintem... :/

Előzmény: tt65 (15790)
tt65 Creative Commons License 2011.08.10 0 0 15790

egyik kevésnek tűnik, a másik sok, hogy kell értelmezni?

Előzmény: Daniel Jonas (15789)
Daniel Jonas Creative Commons License 2011.08.10 0 0 15789

0.30 Ft/lap (kb. 110 €)

Előzmény: tt65 (15787)
wawabagus Creative Commons License 2011.08.10 0 0 15788

Szia köszi,

Igen, valami olyasmi volt a parancs :-).

Ez lett a megoldás :-)

appexcel.ActiveWorkbook.SaveAs "D:ChannelKnowledge_MissingReports W" & wNum & ".xls"

 

Köszi!!!

 

Előzmény: Jimmy the Hand (15756)
tt65 Creative Commons License 2011.08.10 0 0 15787

OFF minden elsimerésem, ez nagyon jó dolog, igazán érdekes. Az ujságot hol lehet olvasni, előfizethető? :-)

Előzmény: Daniel Jonas (15786)
Daniel Jonas Creative Commons License 2011.08.10 0 0 15786

Hmm... Vajon ezt a szép témát ki hozta létre? :D

 

Amúgy azért használom gyakran, mert (nem muszáj kritizálni...) megterveztem a saját világom, országom, gazdasággal, domborzattal, valutákkal, stb. (köröbelül 2.-ikos kormoban kezdtem) és eleinte kézzel csináltam a dolgokat, de a micorosoft office sokszor nagyban megkönnyíti a dolgomat. A Publisherrel a 2havonta megjelenő újságokat gyártom (hogy később emlékezzek, hogy mi volt az országomban pl. 2010 Februárban, stb. Az excellel gyakran készítek hasonló táblázatokat, pl. az excelben vezetem a napi tőzsde-index grafikonomat is. A térképeket többnyire megcsinálom kézzel, de ma már (szerintem) elengedhetetlen a gépi formátum is, amit először paintal csinálok, majd a Publisherrel az átmásolt térképre ráírogatom az adatokat, neveket... Ezért van szükségem főleg erre a két office alkalmazásra :)

De jól esett ezt így leírni! :D

Még akkoris ha nem ebbe a topikba való... :)

Előzmény: tt65 (15784)
tt65 Creative Commons License 2011.08.10 0 0 15785

szivesen!

ez különösen tetszett: "elég rég használom az excelt bonyolultabb dolgokra is ... 15 éves létemre..."  :-)

Előzmény: Daniel Jonas (15783)
tt65 Creative Commons License 2011.08.10 0 0 15784
Előzmény: Qtyi (15775)
Daniel Jonas Creative Commons License 2011.08.10 0 0 15783

ÉS SIKER!

 

Most hogy látom, hogy ez egy ilyen jól működő fórum, szerintem gyakrabban fogok ide fordulni segítségért! ;)

Más fórumokon jó ha hetente egyszer néznek egy témát, de itt gyorsan és segítőkészen megkaptam a választ a részkérdéseimre is! :)

 

Köszönöm mindenkinek! :D

Üdv legközelebb!

tt65 Creative Commons License 2011.08.10 0 0 15782

Válassz fekvő elrendezést a nyomtatásnál :-)

segéd oszlopokat el is lehet rejteni ...

Előzmény: Daniel Jonas (15778)
Daniel Jonas Creative Commons License 2011.08.10 0 0 15781

Köszönöm! :)

Előzmény: Jimmy the Hand (15780)
Jimmy the Hand Creative Commons License 2011.08.10 0 0 15780

Az alábbi cseréket kell megoldanod, ha magyar Excel-t használsz:

MATCH helyett HOL.VAN

LARGE helyett NAGY

, helyett ;

 

 

Előzmény: Daniel Jonas (15778)
Daniel Jonas Creative Commons License 2011.08.10 0 0 15779

Képet nem kell újból gyártani, csak az előző leírásodat egy kissé érthetőbbé tenni számomra.. :)

Előzmény: Daniel Jonas (15778)
Daniel Jonas Creative Commons License 2011.08.10 0 0 15778

Tetszik az ötleted, én is pont így gondoltam (mármint a képet), csak nekem először is hibát ír ki, mert a vesszők nem tetszenek neki, aztán átírtam pontosvesszőre, mert gondoltam (lehet hogy rosszul) hogy az kell oda, aztán pedig még egy #NÉV? hibával is megdobott... Tudom hogy már hajnali négykor (!!!) ennyit vesződtél vele(m), de letudnád írni egy kicsit tagoltabban? :)

 

És köszönöm mindenkinek a segítséget az eddigiekért is! :)

 

tt65: Tetszik a válaszod, és egyszerűbbnek is tűnik, csak én szeretném kinyomtatni, és ez így már akkor is túl sok oszlop, ha minimálisra csökkentem az oszlopszélességet... De neked is nagyon köszönöm :)

Előzmény: Sztai (15773)
hályog kovács Creative Commons License 2011.08.10 0 0 15777

1. El tudom-e valahogy érni a file-t amin dolgoztam?


Szerintem ha tudod a fájl nevét akkor keress rá (Start>Keresés>Fájlok és mappák) akár *.xls-sel az összes excel fájlra. 

 

(Végülis lementettem a Temporary I. F-ba, de nem találok oda)

 

Vagy csak gondolod,hogy lementetted. Nem lehet, hogy Temp-ből csak olvasásra nyílik meg és ezért nem tudod menteni?

 

Gondolom levelezőfüggő, hogy hol van a Temp mappa. XP-Thunderbird5.0-nál C:Documents and settings<felhasználó>Local SettingsTemp útvonalon éred el.

 

XP-OE6-nál valahol itt:C:Documents and Settings<felhasználó>Local SettingsApplication DataIdentities{....}MicrosoftOutlook Express

 

Előzmény: Qtyi (15775)
Jimmy the Hand Creative Commons License 2011.08.10 0 0 15776

Feltételezem, hogy Outlook a levelezőprogramod. Az Outlook egy olyan rejtett mappába menti a mellékleteket, amit tudomásom szerint sehogy máshogy nem lehet megtalálni, csak az alábbi módon.

 

1. Nyisd meg az eredeti emailben az eredeti csatolmány excel fájlt!

2. Menüből válaszd a Fájl -> Mentés másként parancsot! Ekkor megjelenik a "Mentés másként" ablak, de NE kattints a mentésre!

3. Az ablakban megtalálod azt a bizonyos rejtett Outlook mappát. Keresd meg benne azt a fájlt, amelyet munka közben elmentettél! 

4. Ha megvan, kattints rá jobb gombbal, a helyi menüből válaszd a Másolás parancsot, majd Beillesztés valami jobban megközelíthető mappába.

5. A művelet tetszés szerint megismételhető más fájlokkal is.

 

 

 

Előzmény: Qtyi (15775)
Qtyi Creative Commons License 2011.08.10 0 0 15775

Kedves Szakértők,

 

Kérdeztem a Windows-os topicban is, de lehet, hogy inkáb itt tudjátok a választ. 

Segítséget szeretnék kérni.

Egy excel file-ban dolgoztam, melyet e-mailben kaptam, onnan nyitottam meg. Dolgoztam, dolgoztam, annyira, hogy elfelejtettem, hogy a munkám ilyenkor csak  Temporary Internet Files folder valamelyik krix-kraxos mappájában mentődik (ha mentődik).

 

Dolgoztam, dolgoztam, majd az 1-es munkalapot akartam másolni (duplikálni), sikerült is, de a Munkalap fülön a neve ".xls]Munka1" lett.

Egyszer már megkínlódtam azzal, amikor ezt át akartam írni valami normális névre, ezért gyorsan nyomtam egy mentést, - elfeldeve, hogy ilyenkor csak a Temporary I. F-ba mentem. De legalább nyomtam egyet.

Utána megpróbáltam átnevezni a munkalapot valami normálisabb névre, ami persze nem sikerült. Nem fogadott el semmilyen módosítást, hibajelzést dobott, és csak OK-zni hagyta, hogy ez így nem jó, és visszaugrasztott a Munkalap nevére, hogy írjam át valam elfogadhatóra. Ilyen azonban nem volt, még visszaállítani sem hagyta ".xls]Munka1"-re sem. Nem volt más lehetőségem, ki kellett lépjek az excelből, újabb mentés nélkül.

 

Kérdésem:

1. El tudom-e valahogy érni a file-t amin dolgoztam? (Végülis lementettem a Temporary I. F-ba, de nem találok oda)

2. Miért járatja a bolondját velem a Munkalapok elnevezésével az excel? Hogyan lehet egy ilyen helyzetből kikeveredni?

 

Előre is köszönöm a segítségeteket.

tt65 Creative Commons License 2011.08.10 0 0 15774

sztem érthető. annyi, hogy itt más az algoritmus annyiban, hogy nem 200 a versenyzők száma.

az "57" mibenlétére még ilyen hajnalban nem sikerül rájönnöm :-)

Előzmény: Sztai (15773)
Sztai Creative Commons License 2011.08.10 0 0 15773

egy másik megoldás:

1. A B oszlopban található országokhoz tartozó összpontszám meghatározása: 

F4=57-MATCH(B4,$B$4:$B$21,0)-MATCH(B4,$C$4:$C$21,0)-MATCH(B4,$D$4:$D$21,0)

(a pontszám az elemszám+1-sorrszám, összpontszám=(n+1)*3-ssz1-ssz2-ssz3)

2. Összesített helyezési lista az F oszlop pontszámai és a B oszlop nevei alapján:

E4=INDEX($B$4:$B$21,MATCH(LARGE($F$4:$F$21,A4),$F$4:$F$21,0))

(azonos pontszám esetén mindíg az elsőt írja ki. Ez a probléma is megoldható, de most erre nem térnék ki)

Remélem érthető

Üdv

Előzmény: Daniel Jonas (15759)
tt65 Creative Commons License 2011.08.09 0 0 15772

egy megoldás:

ahol:

F2: =SZUMHATÖBB($E$2:E$201;C$2:C$201;B2)

G2: =SZUMHATÖBB($E$2:E$201;D$2:D$201;B2)

M2: =NAGY($J$2:$J$201;SOR()-1)

P2: =FKERES(M2;$J$2:$K$201;2;0)

 

 

Előzmény: Daniel Jonas (15771)
Daniel Jonas Creative Commons License 2011.08.09 0 0 15771

Igen, csakhogy én függvénnyel szeretném :)

 

Nem. Ez csak egy példa. Minden *ország* fog szerepelni mindhárom oszlopban. :)

Előzmény: hályog kovács (15770)
hályog kovács Creative Commons License 2011.08.09 0 0 15770

Én az egyes neveket végigkeresném a három oszlopban és a nevekhez tartozó helyezéseket adnám össze. Az így kapott összegek alapján rendezném sorba a végső listát, a legkisebb lesz az első. Egyenlőség esetén természetesen holtverseny van.

 

Azt, hogy beépített fv-kel hogyan oldható meg a feladat azt nehezen látom, de lehet, hogy ez csak az én tudásom korlátait mutatja. :-)

 

A valódi listád is olyan mint a képen lévő, hogy van név ami csak két oszlopban van ami csak egyben szerepel és egy név sem szerepel mindháromban? Vagy minden név szerepel mindhárom oszlopban csak a példa egy kicsit pontatlan?

Előzmény: Daniel Jonas (15757)
Daniel Jonas Creative Commons License 2011.08.09 0 0 15769

Köszi! :)

 

Tehát akkor már (valaki... :) el tuja mondani (írni), hogy mit csináljak? :)

(Most hogy az algoritmus megvan :D )

Előzmény: tt65 (15768)
tt65 Creative Commons License 2011.08.09 0 0 15768

Üdvözlünk fiatal barátunk! :-) Az algoritmus, az amire gondoltál, a szabály, ami meghatározza,hogy a befutás sorrendjében ki hány pontot kap. Ez nem exceles dolog, hanem a játékhoz tartozik. Ilyen van a forma1- ben is pl. 

Ha a szabály megvan, akkor már csak számolni kell vele excelben és meghatározni az összesített eredményt. 

Az jó ha magadtól jössz rá sok mindenre, mert az tartós, fejleszti az elmét, de érdemes néha kérdezni is, mert az sokat rövidít, és nem biztos, hogy mindenre neked kell rájönni! :-)

Előzmény: Daniel Jonas (15766)
Daniel Jonas Creative Commons License 2011.08.09 0 0 15767

Bár szerintem erre gondoltál mert kezd beugrani hogy miaz, csak lehet hogy keverem a logaritmussal... :)

Daniel Jonas Creative Commons License 2011.08.09 0 0 15766

Boccs hogy sokára írtam, csak nem ültem egész nap itt :) Sajnálom, de annyira azért sajnos még nem értek az excelhez, hogy értsem, hogy mit jelent az algoritmus, de ha erre gondolsz:

úgy gondoltam, hogy a 200 értéket tartalmazó oszlopokban az első helyen álló "kap 200-at, utána lévő 199-et", stb.

 

Boccs ha nem erre gondoltál, elég rég használom az excelt bonyolultabb dolgokra is, de magamtól szoktam rájönni a dolgokra, és ezért az idegen szavak értelmezése kimaradt... :/

 

Ha illene tudnom, mi az (15 éves létemre) akkor is bocsi :|

Előzmény: Jimmy the Hand (15760)
hályog kovács Creative Commons License 2011.08.09 0 0 15764

"Ez volt a precíz kifejezés." :-)

 

Ez a vicc jut róla eszembe:

 

http://www.nevetseges.hu/index.php?menu=kereses

Előzmény: boraka (15763)
boraka Creative Commons License 2011.08.09 0 0 15763

Lehet még így is, ami mindenhol működik:

 

listavege = Range("F" & Rows.Count).End(xlUp).Row 'sorok száma az F oszlop értékei alapján

Előzmény: hályog kovács (15762)
hályog kovács Creative Commons License 2011.08.09 0 0 15762

Ja és még valami. Ez a sor:

 

listavege = Range("F1048576").End(xlUp).Row

 

Excel2007-2010-ben működik. Excel2003 és régebbi verziók esetén így néz ki:

 

listavege = Range("F65536").End(xlUp).Row

Előzmény: hályog kovács (15761)
hályog kovács Creative Commons License 2011.08.09 0 0 15761

Ha még aktuális a kérdésed akkor lehet  ez egy megoldás. Lehet, hogy nem lesz mintapélda egyetemi programozás jegyzetekben de működik:

 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim listavege As Long
listavege = Range("F1048576").End(xlUp).Row
    If Target.Row = 5 And Target.Column = 4 Then
        valasz = MsgBox("Az adatok be fognak kerülni a gyűjtőlistába." & Chr(10) & _"Folytatja?", vbYesNo)
        If valasz = vbNo Then Exit Sub
            Range("F" & listavege + 1).Value = Range("D5").Value
            Range("G" & listavege + 1).Value = Range("D8").Value
    End If
End Sub

 

A munkalap Change eseményéhez van rendelve és annyit tud, hogy ha a D5-ös cellának megváltoztatod az értékét akkor felugrik egy MsgBox és rákérdez, hogy akarod-e hozzáadni a listához D5, D8 cellák értékét. "Igen" esetén beírja az értékeket a következő üres sorba "Nem" esetén pedig kilép.

Előzmény: adimania (15740)
Jimmy the Hand Creative Commons License 2011.08.09 0 0 15760

A pontozás algoritmusa megvan? Ha megvan, akkor tedd közzé, mert anélkül nem lehet rá képletet írni.

Vagy éppen az algoritmust kellene kitalálni?

Előzmény: Daniel Jonas (15757)
Daniel Jonas Creative Commons License 2011.08.09 0 0 15759

Na talán itt :)

Daniel Jonas Creative Commons License 2011.08.09 0 0 15758

Bocsi, a képet nem tudom hová tette... de majd csinálok vmit, idelinkelem, vagy ilyesmi... :) De aki érti így is az írhat! :)

Daniel Jonas Creative Commons License 2011.08.09 0 0 15757

Üdv!

 

Lenne egy érdekes problémám, ami lehet hogy valójában könnyedén megoldható, de nekem mégsem az...

 

Van egy táblázatom (a képen: a példákat egyenlőre csak beírtam...) ahol van 4 oszlop. Ezekben az oszlopokban sorrendeket fogok állítani fentről lefelé; elsőtől az utolsóig haladva. A negyedik oszlopba azt szeretném, ha az excel egy függvénnyel, amit végighúzhatok az oszlopon, összesítené az előző három oszlopban található tulajdonneveket egy végső sorrendbe.

Például, ha a "példa 1" mindháromszor első, akkor ő kerüljön az első helyre, ha meg például kétszer második, és egyszer első, és a "példa 2" kétszer első és egyszer második, akkor a "példa 2" legyen az első és a "példa 1" pedig a második, és így tovább...

 

Viszont így az a probléma is felmerülhet, hogy valamelyik név ugyanannyi "pontot" kap, azaz ugyanott végez, hogy azzal mit fog csinálni...

 

Kérlek segítsen aki tud!

 

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

Jimmy the Hand Creative Commons License 2011.08.09 0 0 15756

Ha Access-ből fel tudod tölteni adatokkal azt a munkafüzetet, akkor  menteni is tudni kellene, mert tök egyszerű.

Mi a gondod vele?

Gondolom, van valami ilyesmid:

 

Dim WB As Excel.Workbook

 

Aztán beleteszed az adatokat, aztán már csak ennyi kell:

 

WB.Save

vagy

WB.SaveAs (Filename:="akármi.xls")

Előzmény: wawabagus (15755)
wawabagus Creative Commons License 2011.08.09 0 0 15755

Sziasztok!

Kellene egy kis segítség.

 

Van egy exceles template, ami accessból egy access-es makróval frissül automatikusan.

 

Annyit szeretnék hozzátenni a dologhoz, hogy weeknum hozzátételével el is mentődjön a fájl.

 

Variációs megoldások:

1. access megnyitja a templétet és ott egy macro gombbal, futtatom le a mentő makrót és a gombnak meg törölődnie kéne.

Itt leregadtam, hogy hogyan tudok egy gombot törölni...??? Próbáltam felvenni, de nem vett fel semmit :-(.

 

2. az is megoldás lehetne, hogy accessből frissül a template, és onnan menti le weeknum-mal...de ebben a megoldáson itt ragadtam le...:-(

 

Van valami ötletetek?

 

Köszi szépen előre is!!!

 

 

 

wawabagus Creative Commons License 2011.08.09 0 0 15754

Szia!

Tök igazad van :-), a sablonmunkafüzet másolása egy tökéletes megoldás :-)!

Köszi!

Előzmény: Jimmy the Hand (15750)
wawabagus Creative Commons License 2011.08.09 0 0 15753

Köszönöm :-)!

Előzmény: boraka (15747)
Jimmy the Hand Creative Commons License 2011.08.09 0 0 15752

Vagy ha van a References között valami extra cucc, nem árt ellenőrizni, hogy minden gépen telepítve és csatolva van-e.

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

én még ezeklet megpróbálnám:

office frissítés, windows frissítés

Előzmény: Gavriel (15746)
Jimmy the Hand Creative Commons License 2011.08.08 0 0 15750

Ha készítesz egy sablon munkafüzetet, amiben a megfelelő számú munkalap van, akkor azt egy utasítással le lehet másolni, és így kvázi létrehozni az új munkafüzetet.

Ha Workbooks.Add metódust akarsz, akkor még legalább egy lépés, hogy elmented más néven (így tudsz neki nevet adni), és több lépés, hogy új munkalapokat szúrj be. Ezek szerintem nem elkerülhetők. Lásd Boraka kódját.

Előzmény: wawabagus (15739)
tt65 Creative Commons License 2011.08.08 0 0 15749

valami ilyesmi:

Előzmény: adimania (15744)
tt65 Creative Commons License 2011.08.08 0 0 15748

ha jól értettem és csak a mennyiség változik, akkor egyváltozós adatábláról beszélünk

lsd: http://office.microsoft.com/hu-hu/excel-help/egyvaltozos-adattabla-keszitese-HP005199545.aspx

 

ha az egységár is változik, akkor kétváltozós adattábla forog fenn:

http://office.microsoft.com/hu-hu/excel-help/ketvaltozos-adattabla-keszitese-HP005199586.aspx

 

ha ettől is több a változó, akkor esetekről van szó:

http://office.microsoft.com/hu-hu/excel-help/valtas-ertekkeszletek-kozott-esetek-hasznalataval-HP010072669.aspx

Előzmény: adimania (15744)
boraka Creative Commons License 2011.08.08 0 0 15747

Valami hasonlóra gondoltál?

 

Sub UjMunkafuzet()
Dim MunkaLapokSzamaMost As Long
Dim MunkaLapokSzama As Long
Dim MentesHelye As String
Dim MentesNeve As String

 

  MentesHelye = "C:\mappaneve\"
  MentesNeve = "munkafuzetneve.xls"
  MunkaLapokSzama = 5

 

 With Application
    MunkaLapokSzamaMost = .SheetsInNewWorkbook
    .SheetsInNewWorkbook = MunkaLapokSzama
  End With
 
  Workbooks.Add
  ActiveWorkbook.SaveAs Filename:=MentesHelye & MentesNeve
 
  Application.SheetsInNewWorkbook = MunkaLapokSzamaMost
 
End Sub

 

Előzmény: wawabagus (15739)
adimania Creative Commons License 2011.08.08 0 0 15745

Valamiért nem működik a dolog a képfeltöltéssel kapcsolatban, úgyhogy itt tudjátok elérni:

http://www.megaupload.com/?d=GXY9CLPG

Előzmény: adimania (15744)
adimania Creative Commons License 2011.08.08 0 0 15744

Ezt részletezd kérlek, ha nem jelent túl nagy vesződséget!

Köszönöm előre is!

Előzmény: tt65 (15742)
tt65 Creative Commons License 2011.08.08 0 0 15743

inkább illeszd be ide, mert tűzfal mögül nem minden látszik ...

Előzmény: adimania (15741)
tt65 Creative Commons License 2011.08.08 0 0 15742

esetvizsgáló, esetkimutatás, adattábla a te barátod!

Előzmény: adimania (15740)
adimania Creative Commons License 2011.08.08 0 0 15741

Az előbb valmiért nem csatolta a képet, legalábbis én nem látom, úgyhogy feltöltöttem ide:

http://kepfeltoltes.hu/view/110808/probl_ma_www.kepfeltoltes.hu_.jpg

adimania Creative Commons License 2011.08.08 0 0 15740

Sziasztok!

Egy szerintem általatok rutinműveletnek tűnő, ám számomra annál sürgősebb probléma kapcsán fordulok hozzátok.

Mivel a komplett problémát nehézkes lenne írásban magyarázni, ezért egy egyszerű iskolapéldán keresztül szemléltetem, mellékelten pedig csapolok egy képet is:

------------------------------------------------------------------

Van egy adatsorom amelyben az alábbi inputok (tetszőlegesen megadható) és output (számolt érték) vannak:

 

INPUT
Gyümölcs mennyisége (kg): "beadható érték"
Gyümölcs kilónkénti ára (ft/kg): "beadható érték"


OUTPUT
Fizetendő összeg (ft): "számolt érték"

Eddig ugye semmi probléma, a számítás egyszerű függvénnyel megoldható.

Én viszont azt szeretném, hogy egy külön táblázatban egymás alá gyűjtse a fizetendő összegeket, hogyha én változtatok a gyümölcs mennyiségén az input cellában. Valahogy így:

x kg gyümölcs - "x kg gyümölcs esetén számolt összeg"
y kg gyümölcs - "y kg gyümölcs esetén számolt összeg"
z kg gyümölcs - "z kg gyümölcs esetén számolt összeg"
stb...

------------------------------------------------------------------

- Én olyasmin gondolkodtam, hogy be kellene vonni az accest majd az ott kapott adatbázist visszaimportálni excelbe. Ez akkor lenne az ideális ha automatikusan történne. Accesben viszont nem vagyok otthon kb semennyire, de ha elmondjátok hogyan kell, meg tudom csinálni.

- Az is elképzelhető, hogy makrót kell írni, de ott is hasonló a helyzet.

Éppen ezért arra kérlek benneteket, hogy a lehető legegszerűbb megoldást mondjátok nekem, ami persze neketek is kevesebb vesződséggel jár.

Előre is köszönöm szépen a segítségeteket!

wawabagus Creative Commons License 2011.08.08 0 0 15739

Sziasztok!

 

Meg lehet nyitni VBA-ból egy tök új munkafüzetet adott számű sheettel és egyben el is nevezni?

Workbooks.add és utána valahogy ezt a 2 db dolgot be lehet szúrni egyszerre?

 

Vagy több lépésre van szülség?

 

Úgy rémlik már mintha egyszer említettétek vona, ezt a darab dolgot, de sehol sem találom.

 

Köszönöm a segítséget!!

Yo

SQLkerdes Creative Commons License 2011.08.07 0 0 15738

Alapvetően ugyanúgy közelíteném meg, mint Lucky problémáját:

- előállítanék egy számsort, ami vagy nullákat vagy a pozitiv ügyfélszámok esetén a sorok számát tartalmazza (pld. (a2:a500>0)*row(a2:a500))

- a SMALL függvénnyel sorra előszedném ennek a fenti számsornak a darabjait, oly módon, hgoy a cél cella sorának száma határozza meg,hogy hanyadik SMALL-t keressük.

 

Az INDIRECT tuti működik ezzel a technikával.  Sajnos az OFFSET nem, mert a SMALL/LARGE egy 1*1-es tömböt ad vissza és az OFFSET visszaköpi a tömb bemenő adatokat.

Előzmény: kovacsmiklos1985 (15737)
kovacsmiklos1985 Creative Commons License 2011.08.07 0 0 15737

Sziasztok!

 

Egy kis segítséget szeretnék kérni tőletek, hogy ti hogyan bírkóznátok meg ezzel a feladattal.

 

Van egy oszlop, amelybe alap esetben pozitív előjelű ügyfélszámokat jegyzek be, hogyha mondjuk eladok az ügyfél részére egy terméket.

Azokban az esetekben, amikor nem eladok nekik, hanem bármely más munkát csinálok (pl.: információadás) velük, abban az esetben mínuszos (-) ügyfélszámot jegyzek a cellába, vagy üresen hagyom azt.

 

A kérdésem az lenne, hogy hogyan lehet megoldani azt, hogy egy másik munkalapon ki legyen listázva az oszlop azon cellái, amelyekben a pozitív számok voltak beírva (sorkihagyás nélkül, tehát nem szűrős megoldással, hanem valami listázás félével).

Mellékeltem egy képet, hogy az oszlop tartalom hogy néz ki, és ezek közül kellenének külön listába azok a sorok, amelyekbe pozitív számok vannak.

 

Segítségeteket előre is köszönöm!

 

Miki

luckeEEEr Creative Commons License 2011.08.07 0 0 15736

Igazad van, végül csak megoldottam magamtól ilyen nyögve nyelős módszerrel, de ezt legalább el tudom magyarázni. Köszi a megoldást, azt is áttanulmányozom hogyan működik!

Előzmény: SQLkerdes (15735)
SQLkerdes Creative Commons License 2011.08.07 0 0 15735

Alapvetések:

- adatok az A-C oszlopig (ebben a példában a2:c6-ig, javitsd kreativan)

- keresendő adat a D2 cellában

- találat az E:G oszlopokban

 

Teendő:

E2-be írd be a következőt

=IFERROR(INDIRECT("A"&LARGE(IF($A$2:$C$6=$D$2,ROW($A$2:$C$6),""),ROW(A2)-1)),"")

 

F2-be a következőt:

=IFERROR(INDIRECT("b"&LARGE(IF($A$2:$C$6=$D$2,ROW($A$2:$C$6),""),ROW(B2)-1)),"")

 

G2-be a következőt:

=IFERROR(INDIRECT("C"&LARGE(IF($A$2:$C$6=$D$2,ROW($A$2:$C$6),""),ROW(C2)-1)),"")

 

MINDEGYIK fenti cellát Ctrl+Shift+Enterrel kell lezárni (kapcsoszárójelbe kerül a függvény).

 

Ezután, ha tudod mennyi lehet a maximális találatok száma, akkor annyiszor másolod lefele copy-paste-tel a képleteket, ha nem tudod mennyi a maximális találat, akkor az 500.-sorig (mert ugye max 500 találat lehet egy 500 soros táblázatban.

 

Ha xl2007 előtti exceled van akkor az IFERROR nem fog működni, ISERROR a megoldás.

 

Ne tarts olyanból előadást, amihez nem értesz, mert csúnyán rá lehet égni

Előzmény: luckeEEEr (15734)
luckeEEEr Creative Commons License 2011.08.07 0 0 15734

Köszönöm. Így tényleg működik, a duplikációsat nem próbáltam erre a verzióra előzőleg. Azt hogyan lehetne megoldani, hogy a 3 segédoszlopból a találatokat egy kupacba gyűjtse ki, hogy ne kelljen nekem külön kikeresni?

Előzmény: Delila10 (15733)
Delila10 Creative Commons License 2011.08.06 0 0 15733

A variáció előtt mindhárom oszlopban csakis egyszer fordulhatott elő egy-egy adat.

 

A mostanihoz vagy makró kell, vagy 3 segédoszlop. Nézd meg a 15626-os, és 15629-es hozzászólásokat, vagy várd meg SQL-t, ő ír egy szorzatösszeges, vagy egy istentudjami() függvényt.

Előzmény: luckeEEEr (15732)
luckeEEEr Creative Commons License 2011.08.06 0 0 15732

Kérlek segítsetek!!!

 

A múltkor segítettek páran megoldani nekem ezt a feladatot, de variálni kell egy kicsit rajta és hétfőn előadást kell belőle tartanom! Ezért nagyon sürgős lenne.

 

A lényeg az, hogy van egy 3 oszlopból álló Range-em (A2-től C500-ig).

Keresek egy adatot, amit F2-be írok be.

A feladat, hogy a függvény megkeresse az A2:C500 tartományban az F2-be beírt számot és kiírja annak a sornak a tartalmát, amelyik sor tartalmazza a keresett adatot.  Szóval ha a F2-be rögzített szám a B8-ban van, akkor írja ki az A8-at, a B8-at és a C8-at is.

Az F2-be beírt érték viszont több találatot is adhat! A kérdésem az, hogy hogyan szedem szét sorokra a találatokat?

Itt az általam eddig használt függvény, ami duplikáció esetén már nem jó:

 

=OFSZET(A1;SZUM(--(A2:C217=F2)*SOR(A2:C217))-1;0;1;3)

 

Aki elolvassa és tud segíteni, annak nagyon megköszönöm, mert ez fontos lenne!

pimre Creative Commons License 2011.08.06 0 0 15731

Időközben teszteltem a dolgot. A programhoz nem nyúltam, pusztán a munkalap nevét rövidítettem le. És így hibaüzenet nélkül lefutott a program. Tehát az .XValues = szöveg és hasonló értékadásnál a szöveg string hossza korlátozott. Valahol a 256 karakter környékén. 

Előzmény: pimre (15729)
magyarpityu Creative Commons License 2011.08.06 0 0 15730

Sziasztok!

 

Egy furcsa dolgot tapasztaltam, ebben szeretnék segítséget kérni!

 

Létrehoztam egy menürendszert, hogy a makróimat legördülő menüből hívhassam meg, és azt tapasztaltam, hogy a menüből meghívva a makrók bizonyos részei nem működnek! Az Excelből közvetlenül meghívva minden utasítás jól működik, de menüből elindítva a makrót nem működnek ezek a sorok, és hibaüzenet sincs!

 

Ilyenek nem működnek ('Data' egy Worksheet objektum):

 

Data.Cells.ClearContents

 

Dim LastRow As Long
LastRow = Data.Cells.SpecialCells(xlLastCell).Row

 

de különben így sem jó:

LastRow = Data.Cells(1, 1).SpecialCells(xlLastCell).Row

 

ez utóbbi azért különös, mert így viszont már jó eredményt ad:

LastRow = Data.Cells(1, 1).End(xlDown).Row

 

(De mi van, ha nem az első oszlop utolsó elemének helye kellene, hanem a munkalap legalsó cellájának sorindexe?)

 

Menüből hívva csak az utolsó sor ad vissza helyes értéket, míg a makrókat simán az Excelből indítva mind jó értéket ad vissza. Mi lehet ennek az oka, és mit lehet tenni? Előre is köszönöm a segítséget!

pimre Creative Commons License 2011.08.06 0 0 15729

Bocs, hogy túl sokat kérdezek, de találtam valamit. A tegnapi problémám az aposztrof használatával megoldódott. Ma meg is írtam a programot, ami gyönyörűen összefűzi a tengelyek megadásához szükséges stringet, és rajzolja is a grafikonokat.

 

Ámde: Az egyik adatsoromnál, ahol nagyon szétszórtak voltak az adatok, egyszer csak kiakadt. Hosszas töprengés után azt találtam, hogy nem szintaktikai a probléma, hanem az összefűzött parancsstring hossza meghaladta a 256 karaktert, és erre kezdtem gyanakodni. Ki akartam próbálni a makró fényképezés módszerével, hogy ők hogy oldják meg, de azt találtam, hogy kézből kijelölgetve az adatokat, egy bizonyos pont után meglehetősen udvariatlanul, se szó se beszéd, félbehagyja a munkát, és törli az addigi kijelöléseket.

 

Lehetséges, hogy van egy olyan határ, hogy a parancssor hossza nem haladhatja meg a 256 karektert?

 

Előzmény: Delila10 (15666)
Beugró lány Creative Commons License 2011.08.05 0 0 15728

Köszönöm a segítségeteket!

 

pimre Creative Commons License 2011.08.05 0 0 15727

Tulajdonképpen ehhez hasonlót kapok, csak fekete-fehérben, ha a diagram főlé állva az egér jobb gombjával a forrásadatra kattintok. Csak míg ez következetes, addig a diagramra kattintva nem az. 

Előzmény: pimre (15726)
pimre Creative Commons License 2011.08.05 0 0 15726

Sziasztok, meg tudja valaki mondani, hogy az mitől függ, hogy egy elkészült diagramra kattintva az Excel megjelöli-e (lila és kék színekkel bekeretezi) azt az adattartományt, amiből a diagram készült.

 

Nekem egyetlen munkafüzet egyes munkalapjain másképp viselkedik. Egyiken bejelöli, a másikon nem. Szeretném egységesen kezelni őket, de nem tudok rájönni, hogy mitől van a különbség. 

Delila10 Creative Commons License 2011.08.05 0 0 15725

Azt nem figyeltem, hogy 2003-asról van szó. Azzal nem is volt probléma, csak a két újabbal.

A Te kedvedért tettem ki a képet erről a 15717-es hozzászólásban.

Előzmény: SQLkerdes (15724)
SQLkerdes Creative Commons License 2011.08.05 0 0 15724

Ha követed a linket látod, hogy xl2003-ról szól.

2007-ben képtelen voltam előhozni ezt a fícsört.

Előzmény: Delila10 (15723)
Delila10 Creative Commons License 2011.08.05 0 0 15723

Nálad megjelent a tételek elrejtését kínáló doboz? Nálam nem.

Előzmény: SQLkerdes (15722)
SQLkerdes Creative Commons License 2011.08.05 0 0 15722

http://office.microsoft.com/en-us/excel-help/display-or-hide-items-in-a-pivottable-or-pivotchart-field-HP005199384.aspx

 

"Hiding an item in a row field  or column field  removes it from the report, but the item still appears in the dropdown list for the field. Hiding an item in a page field  removes it both from the report and from the dropdown list for the field."

 

Szóval csak a page field-ekkel műxik ez.

 

  1. Double-click the page field.
  2. If the Hide items box is present, select each item that you want to hide, and clear the selection from each item that you want to show.

If the Hide items box is missing, your source data  always lists all available items in the dropdown list for the page field.

 

Előzmény: Delila10 (15721)
Delila10 Creative Commons License 2011.08.05 0 0 15721

A 2010-es sem tudja. :(

Előzmény: Beugró lány (15720)
Beugró lány Creative Commons License 2011.08.05 0 0 15720

Köszönöm, pont erre gondoltam!

 

A 2010-es verzióban esetleg?

Előzmény: Delila10 (15717)
Delila10 Creative Commons License 2011.08.05 0 0 15719

Elnézést, két ilyen makró volt, és nem azt tettem ki, amelyiket kipróbáltam, és jól működött. Itt az igazi.

 

Sub DeleteOldItemsWB()
    Dim ws As Worksheet
    Dim pt As PivotTable
    Dim pf As PivotField
    Dim pi As PivotItem
    
    On Error Resume Next
    For Each ws In ActiveWorkbook.Worksheets
        For Each pt In ws.PivotTables
            pt.RefreshTable
            pt.ManualUpdate = True
            For Each pf In pt.VisibleFields
                If pf.Name <> "Data" Then
                    For Each pi In pf.PivotItems
                        If pi.RecordCount = 0 And Not pi.IsCalculated Then pi.Delete
                    Next pi
                End If
            Next pf
            pt.ManualUpdate = False
            pt.RefreshTable
        Next pt
    Next ws
End Sub

Előzmény: Delila10 (15718)
Delila10 Creative Commons License 2011.08.05 0 0 15718

Kimutatásokról és felesleges adatokról volt itt szó.

 

Nem tudom, a 2007-es verzióra is jellemző-e, hogy azokat a tételeket is mutatja a szűrőkben, amiket már töröltünk a tartományból, de a kimutatás nem felejt. A 2003-as verzióra még igaz.

 

Valahonnan kaptam egykor egy "szellemírtó"-t, ami ezt a hibát megszünteti. Közre adom, biztosan jó hasznát veszi, akinek ilyen gondja van.

 

Sub RemoveGhostPivotItems()
    Dim ghost As PivotItem
    Dim pt As PivotTable
     
    Set pt = ActiveSheet.PivotTables(1)
    pt.ManualUpdate = True
     
    For i = 1 To pt.PivotFields(i).PivotItems
        On Error Resume Next
        For Each ghost In pt.PivotFields(i).PivotItems
            ghost.Delete
        Next ghost
    Next i
     
    pt.ManualUpdate = False
End Sub

Delila10 Creative Commons License 2011.08.05 0 0 15717

Kép a 2003-as verzióból.

 

 

 

A bekarikázott mezőben elrejti azokat, akiket nem akar látni a kimutatásban. Ezután a foglalkozás legördülője csak a megmaradt tételekhez tartozó értékeket mutatja, ill. ezek további szűrését engedélyezi.

Ez az opció nem található meg a 2007-ben.

 

 

Előzmény: SQLkerdes (15703)
tt65 Creative Commons License 2011.08.05 0 0 15716

örülök neki, sok van mit érdemes tudni!

Előzmény: Beugró lány (15713)
luckeEEEr Creative Commons License 2011.08.05 0 0 15714

Hello!

 

Megint módosították az elvárásokat a táblázatommal kapcsolatban. Így már több találatot is ad a függvény, tehát sorokra is szét kellene szedni. Azt mondtad index függvénnyel lehet megoldani. Kérdésem, hogy hogyan?

 

=OFSZET(A1;SZUM(--(A2:C500=F2)*SOR(A2:C500))-1;0;1;3)

 

Köszönöm a segítséget!

Előzmény: SQLkerdes (15633)
Beugró lány Creative Commons License 2011.08.05 0 0 15713

Képzeld! Most meg tudtam oldani valamit, azzal amit tegnap este mutattál a nyilakkal! Köszi!!!! :)

Előzmény: tt65 (15706)
Beugró lány Creative Commons License 2011.08.05 0 0 15710

Tényleg! A 2010-et nézted már?

Előzmény: Beugró lány (15709)
Beugró lány Creative Commons License 2011.08.05 0 0 15709

Ebből az adatbázisból kell minden hónapban egy statisztikát készítenem, ami biztosan halál egysezrű lehet annak aki virtuóz a Kimutatásokban. Nekem nagyon neki kell feküdnöm, hogy ez menjen. S persze, ha kész a táblázat, akkor már automatizmus lesz a munka a továbbiakban.

Előzmény: tt65 (15706)
Beugró lány Creative Commons License 2011.08.05 0 0 15708

Ma reggel megnyitottam a bázisomat egy régebbi verzióban.  Ott készítettem egyszerűen egy Print Screen -t, hogy meg tudjam nektek, mi is a probléma.

 

De megint az adatok bizalmassága miatt nem szeretném idemásolni.

 

Tehát, ha rákattintottam 2x a "Név" tartalmú, a mostani verióban a Jelentésszűrők között lévő mezőre, akkor a régi verzióban felugrott egy "Kimutatásmező" ablak, aminek a tartalma és funkciója hasonló, minta mostani "Mezőbeállítások"-nak. Kivéve azt az egy plusz funkciót, ami a régiben még legalul "Tételek elrejtése" címmel felsorolta az összes nevet, s itt kijelölhettem, hogy melyik nevet akarom látni, ha legördítem a nevek mellett található "fekete háromszöget" :)

 

Már kezdem elfogadni, hogy az új verzóban nem fogom tudni ezt beállítani, s talán tovább kellene lépnem :(((

 

Azt is látom, hgy Ti itt már nagyon régen, évekkel ezelőtt használtátok csak a 2003-at, s balgaság Tőletek olyat kérni, hogy emlékezzetek valami ilyesmire.

 

 

Előzmény: SQLkerdes (15703)
tt65 Creative Commons License 2011.08.05 0 0 15706

Elvileg a pivot tables opcióknál, de én is elbizonytalanodtam, az előző hozzászóló intelmei miatt.

Esetleg nem tudod, az új összetettebb feladat miatt ezt lepasszolni? :-)

Előzmény: Beugró lány (15705)
Beugró lány