Keresés

Részletes keresés

Törölt nick Creative Commons License 2011.03.07 0 0 14290

Ebből is látszik, hogy Sznidoval együtt kisemberek vagyunk. De sztem a zseni is csak a saját maga által keltett káoszban ismeri ki magát, de nem a máséban ;-)

 

Előzmény: tt65 (14289)
tt65 Creative Commons License 2011.03.07 0 0 14289

Pedig a zseni a káoszban is kiismeri magát! :-)

a rend csak a kisembereknek kell!

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

Csatlakozom, nekem is zavaros. Amúgy sztem a pivot tábla lesz a barátod...

Előzmény: csurika01 (14286)
Sznida Creative Commons License 2011.03.07 0 0 14287

Szia,

 

Nekem zavaros, esetleg ha csatolnál egy képet a tábládról, egyértelműen hivakoznál a cellákra, és írnál egy példát, akkor talán egyértelműbb lehet! :)

 

Üdv: Sznido

Előzmény: csurika01 (14286)
csurika01 Creative Commons License 2011.03.07 0 0 14286

Sziasztok!

 

Visszaolvastam jópár hozzászólást, de vagy én voltam vaksi, vagy nem volt hasonló kérdés.

 

 

Egy oszlopban vannak különböző azonosítók(számok), amik ismétlődhetnek. A 2. dimenzióban a soroknál 1-x -ig a hozzá tartozó értékek.

 

Megoldandó: szeretném egy külön táblázatba kigyűjteni az oszlopokban előforduló azonosítókhoz tartozó 1-x-ig(nem ismétlődnek) az összegeket, tehát ha 123 azonosító 53-szor fordul elő, és a hozzá tartozó 1-x-ig sorértékek öszzegét szeretném megjeleníteni. Remélem nem nagyon zavaros. 

 

     a   b   c  d  e  f

3   1   3

 

3   2  3

 

4  3  2

 

5  2  2

 

2  1 2        stb...

 

és azt szeretném látni hogy pl. 3-as a összege 3 példa szerint a b 6...és így az összes tagra. 

 

Bocsánat a nem hozzáértő fogalmazásért.

 

Köszönöm előre is.

 

Törölt nick Creative Commons License 2011.03.07 0 0 14285

1) Nyiss egy új munkafüzetet.

2) Nyomj ALT+F11-et -> belépsz a Visual Basic Editor-ba.

3) Menüből az Insert -> Module paranccsal adj egy új kódmodult a munkafüzethez. Az ilyen kódmodul való a makrók tárolására. A most hozzáadott modul meg is nyílik a képernyő jobb felső tartományában.

4) Ebbe a modulba másold be a makró kódot, amit a 14260. hsz-ben küldtem.

5) A bemásolt kódban a "C:\itt_vannak_a_fájlok_mappa\" helyére írd be azt a mappát, amelyikben a feldolgozandó excel munkafüzetek vannak. Teljes elérési út kell, és \ (Backslash) jel legyen a végén.

6) Térj vissza az Excel főablakba és mentsd el ezt a munkafüzetet, akámilyen néven, akárhová, csak ne abba a mappába, amit az 5) pontban megadtál.

 

A fenti lépésekkel létrehoztál egy munkafüzetet, benne egy akárhányszor lefuttatható makróval.

A makró futtatása:

ALT+F8 gombokkal előhozod a létező makrók listáját, ott kiválasztod az "Összevon" nevűt, és az Indítás gombra kattintasz. Akkor a kód lefut, és azt fogja csinálni, amit korábban írtam.

Előzmény: yxc432 (14284)
yxc432 Creative Commons License 2011.03.07 0 0 14284

Akkor valami nem stimmel.

Makrot rögzitem, megadom a ctrl+a gombot futtatásra, r9gzitést lezárom.

ctrl+a megnyomására egyetlen egyet csinál: az eredeti makrot szövegként bemásolja attól a cellától kezdve, ahol a kurzor áll.

 

Előzmény: Törölt nick (14276)
Delila_1 Creative Commons License 2011.03.07 0 0 14283

Az összevont cellákat tartalmazó tartományt nem gombbal, menüből sem tudod rendezni. Többször, többen írtuk már ebben a fórumban, hogy az összevonásokat a lehetőség szerint el kell kerülni.

Tegyél be ide egy képet a tartományodról, lehetnek hamisak is az adatok.

Előzmény: Karnaval (14281)
yanoold Creative Commons License 2011.03.06 0 0 14282

Kedves Excel Mexálottak!

 

Volt már, hogy segítséget kértem itt a fórumon, viszont lenne egy-két téma, amit a témát megfelelő mélységben ismerővel megbeszélnék személyesen Pécsen. Ebből levehető, hogy célszerűségi alapon pécsi, vagy Pécs környékieknek lenne egy-két alkalommal fizetős feladat.

Témakörök:

-Adatbevitel, vagy adatok kinyerése adott cellába egy cella mellett megjelenő "lebegő" ablakban lévő munkalapról. A celláról lelépéskor eltűnik, vagy cserélődik a használható "lebegő" munkalap.

-Több munkalapról kigyűjtött adatok elküldése e-mailben másik felhasználóhoz, és ott egy struktúraazonos munkafüzetbe adatok beolvasása. (Nem ugyanannak a fájlnak a közös használata)

-Hiperhivatkozások halmazából (kb. 50 db.) Kiválasztani azt a 3-5öt amit egy- egy faladathoz használni lehet. (Logikai függvények)

 

 

 

yanoold

 

 

Karnaval Creative Commons License 2011.03.06 0 0 14281

Mondjuk nem biztos, hogy alkalmas gombbal akartam sorba rendezni...

Előzmény: Karnaval (14280)
Karnaval Creative Commons License 2011.03.06 0 0 14280

Köszi!

Sajnos kifogásolta a következőket:

 

 

 

Előzmény: Delila_1 (14279)
Delila_1 Creative Commons License 2011.03.06 0 0 14279

NE JELÖLD KI az összegző oszlopot, csak állj benne, mikor a rendező ikonra kattintasz. Ha az értékeket, és az összegzéseket tartalmazó oszlopok között nincs üres oszlop, a teljes táblázatot rendezheted így az aktuális oszlop szerint.

Előzmény: Karnaval (14277)
Karnaval Creative Commons License 2011.03.06 0 0 14278

(Elnézést az elgépelésekért)

Előzmény: Karnaval (14277)
Karnaval Creative Commons License 2011.03.06 0 0 14277

Sziasztok!

 

Egy olyan dolgot kellene holnapra meggyinálnom, ami szerintem pofonegyszerű, csak nekem nincs meg a rutinom.

 

Van egy terméksor, bizonyos időközönként árazva, a sorok végén eg oszlopban pl =E6+G6+I6+K6+O6+Q6+S6+U6+W6+Y6 ... egyenlet mutatja az aktuális összeget.

 

Eszerint a sorvégi összeg szerint szeretném csökkenő sorba tenni úgy, hogy a saját egész sorait is vigye magával, ne csak az összeg oszlopát.

 

Biztos értitek...
Előre is kösz a segítséget,
Karna

Törölt nick Creative Commons License 2011.03.06 0 0 14276

Ez azt csinálja, hogy egy adott mappában lévő összes .xls kiterjesztésű fájlt megnyitja, és azok első munkalapját átmásolja abba a munkafüzetbe, amelyikben a makró fut. Érdemes ezért egy új munkafüzetbe tenni a makrót, továbbá összegyűjteni a forrásfáljokat egy mappába, és ezen mappa teljes elérési útvonalát megadni a kód alábbi sorában:

SourcePath = "C:\itt_vannak_a_fájlok_mappa\"

Előzmény: yxc432 (14275)
yxc432 Creative Commons License 2011.03.05 0 0 14275

Ennek mit kellene csinálnia? Csak saját magát másolja attól a cellától kezdve, amelyikben a kurzor van.:-(

Előzmény: Törölt nick (14260)
SQLkerdes Creative Commons License 2011.03.04 0 0 14274

Nem feltétlenül, mert most hogy utánagúgliztam, találtam azért panaszkodást usedrange ügyben.

Azt olvastam, ha csinál az ember egy usedrange.rows.count-ot (v. menti a workbook-ot) akkor a usedrange elfelejt minden múltbeli cuccot, reseteli magát és a tényleges usedrange lesz.

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

Upsz... Jobban megnézve, a net inneső végéről is úgy tűnik, hogy hülyeséget írtam.

Azt hiszem, összekevertem a UsedRange-et a SpecialCells(xlCellTypeLastCell)) izével. Elnézést kérek...

:o

 

Előzmény: SQLkerdes (14272)
SQLkerdes Creative Commons License 2011.03.04 0 0 14272

Most gyorsan kipróbáltam amit írtál (G6-ba beír, elmegy onnan, G6-ra visszamegy, G6 töröl) és ezek után a UsedRange.Address A1-et adott.

 

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

Igen, ezt a különbséget én is észrevettem. Meg mást is. Ha például egy vadiúj, üres munkalapnak mondjuk a G6-os cellájába beírsz egy tetszőleges értéket, aztán kitörlöd, a Te programod szerint a UsedRange G6-on lesz, és ezáltal a munkalap nem-üresnek minősül. Ez szerintem nem annyira jó.

 

Igazából nem értem teljesen, hogy ez a UsedRange hogyan is működik, azért nem is szoktam használni..

(Ez válasz SQLkerdes kolléga 14269-esére is).

Előzmény: E.Istvan (14270)
E.Istvan Creative Commons License 2011.03.04 0 0 14270

Nagyon szépen köszönöm a While-os válaszod, kevéske tudásom alapján erre tippeltem én is.

Ez utóbbi függvényedet teszteltem. Én ezt a programot arra használom, hogy a teljesen üres munkalapoktól megszabaduljak. A két lehetőség abban eltér, hogy a függvényed minden esetben üresnek mondta a munkalapot, ha a cellák üresek voltak. A másik program (ami egyébként nem az én munkám gyümölcse) viszont ha a háttérszín, vagy cellaszegély be volt állítva, vagy valamelyik cella megjegyzést tartalmazott, akkor már nem tekintette üresnek a lapot.

Előzmény: Törölt nick (14268)
SQLkerdes Creative Commons License 2011.03.04 0 0 14269

Vagy:

 

Worksheets(2).UsedRange.Value = False

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

Itt meg egy másik:

 

Function Üresmunkalap(WS As Worksheet) As Boolean
    If WS.Cells.Count = Application.WorksheetFunction.CountBlank(WS.Cells) Then Üresmunkalap = True
End Function

Előzmény: E.Istvan (14266)
Törölt nick Creative Commons License 2011.03.04 0 0 14267

A While ciklus működése:

A futás oda ér, hogy While kifejezés.

Ha a kifejezés értéke igaz, a teljes ciklusmag végrehajtódik, aztán a kifejezés újra kiértékelésre kerül. A ciklus mindaddig megy, amíg a kiértékeléskor True az eredmény. Amint egy kiértékeléskor False eredmény jön ki, a futás a Wend utáni első utasításon folytatódik.

 

Nem tudnám egzakt módon meghatározni a különbséget, de biztosan van, ha egyszer mindketten léteztnek...

Annyi bizonyos, hogy a Do..Loop ciklusból középen is ki lehet lépni (pl. egy feltétel kiértékelése után) az Exit Do paranccsal, míg a While..Wend ciklusban ilyen lehetőség nincs. A Help azt írja, hogy a Do..Loop utasítással rugalmasabb és strukturáltabb ciklusokat lehet írni. Abban is biztos vagyok, hogy amit While...Wend ciklussal meg lehet oldani, azt Do..Loop-pal is meg lehet, szóval az előbbit nem kell bevenned a repertoárba.

 

A magam részéről ezt szoktam meg, és csak akkor használok mást, ha ezzel nem tudom megoldani, amit akarok. Nem emlékszem, hogy az utóbbi 3-4 évben használtam volna Do...Loop ciklust.

Előzmény: E.Istvan (14265)
E.Istvan Creative Commons License 2011.03.04 0 0 14266

Ha érdekel a téma, akkor itt egy progi, ami megvizsgálja, egy munkafüzetben, hogy üres-e a munkalap.

   
    Dim EgyCella As Boolean
    Dim A1EsCella As Boolean
    Dim A1Ures As Boolean
    Dim lap As Object

 

    For Each lap In Worksheets
        EgyCella = lap.UsedRange.Cells.Count = 1
        If EgyCella Then A1EsCella = lap.UsedRange.Address = Cells(1).Address
        A1Ures = lap.Cells(1) = ""
        If EgyCella And A1EsCella And A1Ures Then
            'üres a munkalap

        Else

            'nem üres a munkalap

        End If
    Next lap

Előzmény: tt65 (14261)
E.Istvan Creative Commons License 2011.03.04 0 0 14265

Ezt While ciklust eddig nem ismertem. Illetve ismertem csak nem VBA alatt. VBA-ban én mindig a Do …. Loop ciklust használtam.

Az angol tudásom elég kezdetleges. Ez a While ugyan az és ugyan úgy működik, mint a Do … Loop? (Már amennyiben ez utóbbinál is előre írom a feltételt, mert azt látom hogy a While-nál nem lehet a végén a feltétel.) Vagy van valamilyen különbség a kettő között?

Előzmény: Törölt nick (14260)
Törölt nick Creative Commons License 2011.03.03 0 0 14264

Ja, nem is vettem kritikának. Csak mentegetőztem egy kicsit, amiért lusta voltam minden eshetőséget figyelembe vevő kódot írni ;-)

Előzmény: tt65 (14263)
tt65 Creative Commons License 2011.03.03 0 0 14263

Nem kritikának szántam, csak miután lefutattam, ez jutott eszembe! örülnék, ha már ilyeneket tudnék írni! :-)

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

Igen, lehetne még cifrázni, mert ez csak egy kezdetleges változat.

Ha például a cél munkafüzet ugyanabban a mappában van, ahol a forrásfájlok, valószínűleg kiakad a program, amikor önmagát is meg akarja nyitni. Aztán, ha a forrás munkalapokon csatolások vannak, akkor nem tudom mi történik. Aztán az is lehet, hogy a forrásfájlok nincsenek egy helyen, vagy nem Excel formátumban, stb.

Gondoltam, majd ha a kérdező pontosít, én is pontosítok.

Előzmény: tt65 (14261)
tt65 Creative Commons License 2011.03.03 0 0 14261

szuper.

annyival lehetne még turbózni, hogy ne csak az első lapot, hanem minden olyant ami nem üres adjon hozzá!

Előzmény: Törölt nick (14260)

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