Keresés

Részletes keresés

bencesoma Creative Commons License 2011.04.27 0 0 14715

sziasztok Excel-guruk, egy aprócska (és talán láma) kérdésem lenne:

azt hogyan lehet/kell megcsinálni, hogy az Excelben függvény alkalmazásával a cellákba az aktuális értékeket írja be: év, hónap, nap (mármint, hogy 2011, 04, és 27 legyen az addig üres 3 cellában)?

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

Törölt nick Creative Commons License 2011.04.27 0 0 14714

pl. az, hogy ez nem müxik így :)

Előzmény: joe.bacsi (14711)
mixtura_pectoralis Creative Commons License 2011.04.26 0 0 14713

Hála köszönet, így már műxik! :-))

Előzmény: stromba (14710)
Delila10 Creative Commons License 2011.04.26 0 0 14712

Annak jó, aki nem mer (nem tud) makrót írni, alkalmazni.

Előzmény: joe.bacsi (14711)
joe.bacsi Creative Commons License 2011.04.26 0 0 14711

Alt-F11

Insert->Module

 

Function szamolas(keplet As String)    

szamolas = Evaluate(keplet)

End Function

 

Alt-Q

=szamolas(a2)

 

Vagy van valami külön oka, hogy érdemes ezt ennyire megbonyolítani? :)

Előzmény: Delila10 (14708)
stromba Creative Commons License 2011.04.26 0 0 14710

 

"'szükséges referencia a "Microsoft Scripting Runtime"-hoz. VBA-ban Tools - References alatt"

VBE nem VBA, de nem véletlenül írtam oda megjegyzésnek. :)

 

Szóval a Visual Basic Editorban a menüben kiválasztod a Tools-t majd a References-t és bepipálod a "Microsoft Scripting Runtime"-ot. De úgy is működnie kellene amit Jimmy írt.

 

 

Előzmény: mixtura_pectoralis (14707)
Törölt nick Creative Commons License 2011.04.25 0 0 14709

Próbáld meg úgy, hogy ezt:

Dim FSO As Scripting.FileSystemObject

kicseréled erre:

Dim FSO As Object

Előzmény: mixtura_pectoralis (14707)
Delila10 Creative Commons License 2011.04.25 0 0 14708

Hátha valakit érdekel:

 

 

mixtura_pectoralis Creative Commons License 2011.04.25 0 0 14707

Köszönöm, odáig eljutottam, hogy a makrok közé bemásoltam, de futásnál erre "user-defined type not defined" hibát ir ki:

Dim FSO As Scripting.FileSystemObject

 

Előzmény: stromba (14706)
stromba Creative Commons License 2011.04.25 0 0 14706

 

Például. Én szeretek csak annyi sort kimásolni az alapfájlból amennyiben értékes adat van (vizsgáljuk például azt hogy mi az utolsó sor), ez itt lent annyiban egyszerűbb hogy mindenképpen 200 sornyi adatot másol. Az "első munkalap" nem mindig az első munkalap ezért érdemes lenne inkább névre hivatkozni.

 

 

Sub CrDb()

Dim FSO As Scripting.FileSystemObject, folder As Scripting.folder, file As Scripting.file, wb As Workbook

'szükséges referencia a "Microsoft Scripting Runtime"-hoz. VBA-ban Tools - References alatt

Dim directory As String

Dim thisWB, tempWB As String

Dim dbSh As String

Dim i As Long

 

Application.ScreenUpdating = False 'képernyõfrissítés kikapcsolása

 

Workbooks.Add 'adatbázis új munkafüzetben, ezt majd lementheted MIND.xls néven v. akárhogy máshogy

thisWB = ActiveWorkbook.Name

dbSh = ActiveSheet.Name

i = 1

 

    directory = "d:\PersonalData\Test" 'az alkönyvtár ahol a fájlok vannak.

 

    Set FSO = CreateObject("Scripting.FileSystemObject")

    Set folder = FSO.GetFolder(directory)

 

    For Each file In folder.Files

 

        Application.DisplayAlerts = False 'windows üzenetek kikapcsolása

        Workbooks.Open file

        tempWB = ActiveWorkbook.Name

        Worksheets(1).Activate 'az elsõ munkalap ahol az adatok vannak

        Range("A1:J200").Select 'az a tartomány ahol az adatok vannak

        Selection.Copy

 

        Workbooks(thisWB).Worksheets(dbSh).Activate

        Cells(i, 1).Select 'adatok bemásolása az adatbázisba

        ActiveSheet.Paste

        i = i + 200 'következõ adathalmaz 200 sorral késõbb másolódik

        Workbooks(tempWB).Activate

        ActiveWorkbook.Saved = True

        ActiveWorkbook.Close 'becsukjuk az alapfájlt

        Application.StatusBar = tempWB & " kész" 'statusbar frissítése, hol tart a program

 

    Next file

End Sub

 

 

Előzmény: mixtura_pectoralis (14705)
mixtura_pectoralis Creative Commons License 2011.04.24 0 0 14705

Ha jól értem a szöveget, akkor ez sok munkalapot csinál egy munkafüzetbe.

 

Nálam az a helyzet, hogy eltettem a MUNKA könyvtárba 250 db excel fájlt, p001 - p250 néven.

Mindegyikből az első munkalapon lévő A-J oszlopok tartalmát kell kimásolni a MIND.xls fájl első munkalpjára, egymás alá.

Végignéztem őket, a leghosszabb sincs 200 sor, tehát A1:J200 cellákat kell átmásolni, de a célterület az A1, A201, A401, stb. cellákkal kell kezdődnie.

 

A végeredmény a mind.xls első munkalapján a1 - j5000 táblázat, amit már tudok kezelni.

Ehhez kérek segítséget.

Előzmény: Törölt nick (14704)
Törölt nick Creative Commons License 2011.04.24 0 0 14704
Előzmény: mixtura_pectoralis (14703)
mixtura_pectoralis Creative Commons License 2011.04.24 0 0 14703

250.

igen.

Csak egymás alá kell másolni őket, az oszlopok azonosak.

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

Mennyi a rengeteg? A szerkezetük teljesen azonos?

Előzmény: mixtura_pectoralis (14701)
mixtura_pectoralis Creative Commons License 2011.04.24 0 0 14701

Üdv, látom, nagyon profik vannak itt vba szkriptek terén is, máris van reményem.;)

Az access listára irtam, azt a választ kaptam, hogy szkripttel oldható meg, de fogalmam sincs, milyen access szkriptet kellene irni, és csak sql-hez értek.;)

Viszont akkor a másik oldalról fognám meg a probléma gyökerét, és talán ebben tudtok segiteni.

 

Adott rengeteg excel fájl, heti pénztár forgalmi adatokkal, 10 oszlop, 110 sor.

Access-be át kell másolni őket, de access-be csak egyesével lehet, abba beleőszülök.

 

Az lenne a legegyszerűbb, ha az excel fájlokat - mindegyik egy munkalapos - egyetlen fájl egyetlen munkalapjára, egymás alá be lehetne másolni, azt már - pici kézimunkával - be tudnám importálni access-be.

 

Valaki tudna egy szkripttel segiteni?

szkripnyik Creative Commons License 2011.04.23 0 0 14700

Kösz!

Egyébként, ahol a problémám adódott volt egy harmadik (szintén LONG típusú) szorzótényező is.

Ha azt írom előre és nem a konstans tényezőt, akkor nincs probléma...

:-))

Kellemes ünnepet!

Előzmény: Törölt nick (14698)
Törölt nick Creative Commons License 2011.04.22 0 0 14699

VBA, Integers are 16-bit signed types, when you perform arithmetic on 2 integers the arithmetic is carried out in 16-bits. Since the result of multiplying these two numbers exceeds the value that can be represented with 16 bits you get an exception. The second example works because the first number is first converted to a 32-bit type and the arithmetic is then carried out using 32-bit numbers.

Előzmény: szkripnyik (14696)
Törölt nick Creative Commons License 2011.04.22 0 0 14698
Előzmény: szkripnyik (14696)
maiann Creative Commons License 2011.04.22 0 0 14697

hohoóó, így fényévekkel egyszerűbb, köszönöm a segítséget, SQLkerdes és Delila10!!

szkripnyik Creative Commons License 2011.04.22 0 0 14696

Vak vagyok és világtalan, de ez a 4 sor:

 

Sub moricka()
Dim szorzat As Long
szorzat = 99 * 999
End Sub

 

Vajon miért jelez overflow hibát?

 

Delila10 Creative Commons License 2011.04.22 0 0 14695

Hogy legyen meg magyarul is.

 

 

A különböző tartományoknak nevet adsz.

Az A1:A4 nálam a Főlista névre hallgat.

Fontos, hogy az allisták azt a nevet kapják, amelyik főlista-beli kategóriába tartoznak. A C1:C11 tartomány neve szín, az F1:F12-é név.

 

Az első érvényesítés az A13 cellában van, a lista forrása: =Főlista

A B13-as érvényesítésnél a forrás: =INDIREKT(A13)

Előzmény: maiann (14692)
SQLkerdes Creative Commons License 2011.04.22 0 0 14694

Néhány hasznos link:

 

 

http://www.contextures.com/xldataval02.html

Előzmény: SQLkerdes (14693)
SQLkerdes Creative Commons License 2011.04.22 0 0 14693

Az excel ezt native-an is tudja, nem kell hozzá makró.  A megoldás az INDIRECT (magyar:  INDIREKT) függvény, de hosszú lenne írásban elmagyarázni.  Mindjárt keresek egy linket ahol már készen le van írva.

Előzmény: maiann (14692)
maiann Creative Commons License 2011.04.22 0 0 14692

sziasztok, én az execelen belül szeretnék egy legördülő listát létrehozni, ami eddig nem jelent gondot. Viszont van egy "A" lista(a főfeladatokról) és B lista(ami egyes főfeladatokat bont részfeladatokra). ha egy listába raknám mindezt, nagyon hosszú lenne kiválasztani az illetőnek a  megfelelő feladatot, ezért szeretnék (makróval?) hivatkozni: ha kiválasztom a főlistából az adott feladatot, a következő cellában a legördülő lista az előbbiekben kiválasztott főfeladathoz tartozó részfeladatai jelennének már csak meg, szűkítve az egész részlistát.  első ránézésre makróra gondoltam, de abban meg nem igazán vagyok otthon... Esetleg ötlet a megoldásával kapcsolatban?KÖszi!

syrius Creative Commons License 2011.04.22 0 0 14691

Köszi, (ki is próbálom, de csak ha visszajöttem egy kis husvéti pihiről)

Előzmény: Delila10 (14690)
Delila10 Creative Commons License 2011.04.22 0 0 14690

Akkor ezekből válassz (de lehet más képlet is):

 

=(INDIREKT("A"&INT(VÉL()*(20-1)+1))&","&INDIREKT("B"&INT(VÉL()*(20-1)+1)))*1

=(INDEX(A:B;RANDBETWEEN(1;20);1)&","&INDEX(A:B;RANDBETWEEN(1;20);1))*1

 

Az 1-gyel való szorzás ahhoz kell, hogy az összefűzéssel (&) előállított szövegeket számokká alakítsuk.

Előzmény: syrius (14689)
syrius Creative Commons License 2011.04.22 0 0 14689

Hát én első nekifutásra egyszerűbb dologra használtam volna. (Lehet, hogy egyszerűbben is mehetett volna...? Ki tudja milyen függvényeket rejt a most telepített csomag.) Szóval egyszerűen többjegyű számokat kellene kiiratnom véletlenszerűen betűvel. Az egyes oszlopokba beírtam a megfelelő neveket, majd az összefűz paranccsal és a most telepített INDIREKT-tel generálom a számokat - egészeket és tizedes törteket. De jó lesz ez még sokmindenre.

Előzmény: Delila10 (14687)
syrius Creative Commons License 2011.04.22 0 0 14688

yessss:-) Működik. Megyek, felhasználom.

Delila10 Creative Commons License 2011.04.22 0 0 14687

Szívesen, nekem is jutott ezzel a feladattal egy kis szórakozás.

 

Gyerekkorunkban szólásokat, közmondásokat cetlikre írtunk fel úgy, hogy az első felét egyik-, a másodikat másik színű papírra. Aztán húztunk 1-1 papírt a két halomból, és összeolvastuk.

A vezeték, és keresztnevek helyett most beírtam pár mondást, ilyen eredményeket kaptam:

 

Alamuszi macska partot mos.

Nézd meg az anyját, nagyfejű.

Nagy az Isten mint hal a vízben.

Lassú víz nagyot ugrik.

Ahol a bor az úr, a kutya ugat.

A beteg embernek ne nézd a fogát.

Ki korán kel, orvos a barátja.

Jó kezdet aranyat lel.

Ritka, mint hal a vízben.

Jó bornak orvos a barátja.

Ki korán kel, nagyot ugrik.

Él, mint a fehér holló.

Pénz beszél, ami fénylik.

 

... és így tovább.

Előzmény: syrius (14686)
syrius Creative Commons License 2011.04.22 0 0 14686

Köszi, jó ilyenre ébredni:-) Megvan a napi programom, remélem sikerrel járok.

Előzmény: Delila10 (14685)

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