Keresés

Részletes keresés

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)
Delila10 Creative Commons License 2011.04.22 0 0 14685

Az INDEX függvénnyel is meg lehet oldani.

 

=INDEX($A$1:$B$20;RANDBETWEEN(1;20);1)& " "&INDEX($A$1:$B$20;RANDBETWEEN(1;20);2)

Előzmény: syrius (14682)
Delila10 Creative Commons License 2011.04.22 0 0 14684

=INDIREKT("A" & RANDBETWEEN(1;20)) & " " &INDIREKT("B" & RANDBETWEEN(1;20))

 

vagy ha nem szereted a RANDBETWEEN függvényt, ami a paramétereiben megadott alsó- és felső határok közötti egész véletleneket generál, akkor

 

=INDIREKT("A" & KEREKÍTÉS(VÉL()*(20-1)+1;0)) & " " & INDIREKT("B" & KEREKÍTÉS(VÉL()*(20-1)+1;0))

 

A randbetween függvény akkor áll rendelkezésedre, ha a bővítménykezelőben bekapcsolod az Analysis TooplPak-ot, amivel egy halom új függvényt is kapsz.

Előzmény: syrius (14682)
syrius Creative Commons License 2011.04.21 0 0 14683

Ja és nagyon kezdő számára melyik könyből lehet sok szemléletes példán keresztül megtanulni a makrozást? Nem egyetemi könyvre inkább valami excel for Dummies-ra gondolok.

syrius Creative Commons License 2011.04.21 0 0 14682

Sziasztok, csak felszínesen ismerem az excelt - így is sok örömöm van benne - , de most olyan problémám van, amit nem tudom meg lehet-e oldani vele.

Olyasmi feladatról van szó, mint anno BASIC-ben egy ON x=1,2,3,4... Do a,b,c,d... féle játék, konkrétan mondjuk egy oszlopban van egy csomó szöveg (vagy szám) és onnan kellene egyet kiolvasni akár egy vél() gererálta érték függvényében. PL. az A oszlopban szerepel 20 vezetéknév, a B-ben 20 keresztnév és 1-1 vél()szám által generált érték alapján írjon egy random nevet egy adott cellába. (Remélem érhető voltam) Volna segítség?

'Slice' Creative Commons License 2011.04.21 0 0 14681

Ohh nagyon köszönöm...így már tökéletes

(az a fránya dollárjel)  :)

Előzmény: SQLkerdes (14680)
SQLkerdes Creative Commons License 2011.04.21 0 0 14680

Mielőtt átmásolod az oszlopot, az eredeti (F) oszlop tartalmát alakítsd át =F$3+$A4 stílisra (minden sorban, kivéve természetesen az első adatot (16:00)).

 

Ezután másold át és működni fog a képlet.

Előzmény: 'Slice' (14677)
'Slice' Creative Commons License 2011.04.21 0 0 14679

átmásolom 3-al jobbra a  16:00-ás oszlopott és átírom 16:15-re a kezdő értéket

csak épp a következő számokat már a megállók nevéből próbálja kinyerni, ami nem megy neki.

Előzmény: SQLkerdes (14678)
SQLkerdes Creative Commons License 2011.04.21 0 0 14678

A nem másolja oldalra a számokat részt nem értem...

Nem azt csinálod, hogy a 16:00-t átírod 16:15-re, hanem beszúrsz egy új oszlopot?  Hova szúrod be azt az új oszlopot (F mellé balról, jobbról?).

Valszeg az lesz a gondod, hogy a beszúrt új oszlop elviszi a relatív képleteidet rossz irányba.

Előzmény: 'Slice' (14677)
'Slice' Creative Commons License 2011.04.21 0 0 14677

No ismét egy menetrendi kérdés.

Megcsináltam hogy az egyik oszlop a menetidőket számolva kijön az alábbi képlettel:

 

=F$3+A4

 

A oszlop                              F oszlop

 

          Moszkva tér               16:00

0:02   Városmajor                16:02

0:05   Budagyöngye             16:05   stb

 

Viszont ha egy 16:15-ös indulást vennék fel akkor nem másolja oldalra a számokat mindig érték hibát kapok, mert valahogy a megállót akarja hozzárendelni az értékhez amit nem értelmez.   Hogy tudom odébbvarázsolni valahogy hogy mindig az A oszlop értékével számoljon?

Törölt nick Creative Commons License 2011.04.21 0 0 14676

Az email címemet megtalálod az adatlapomon.

Próbáld ki, amit SQLkerdes javasolt, aztán ha még mindig nem megy, küldd el.

Előzmény: pilota-kex (14673)
SQLkerdes Creative Commons License 2011.04.20 0 0 14675

Nem változtattam semmit, csak az event-et Calculate-ra (-re?).

Közben rájöttem, hogy nem kell volatile függvény, mert a figyelendő terület egyébként is függvény, szóval minden frissítéskor újraszámolódik és izgatja a Calculate event-et.

 

Private Sub Worksheet_Calculate()
    Dim wsLog As Worksheet, rLog As Range
    Dim rQuery As Range, c As Range, Hit As Range
    
    Set wsLog = Worksheets("Munka5")
    Set rQuery = Range("B1", Range("B" & Rows.Count).End(xlUp))
    For Each c In rQuery
        Set rLog = wsLog.Range("B" & Rows.Count).End(xlUp).Offset(1)
        Set Hit = wsLog.Range("B:B").Find(what:=c.Value, after:=rLog, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious)
        If Hit Is Nothing Then
            rLog.Offset(, -1).Resize(, 3).Value = c.Offset(, -1).Resize(, 3).Value
            rLog.Offset(, 2) = Now
        ElseIf Hit.Offset(, 1) <> c.Offset(, 1) Then
            rLog.Offset(, -1).Resize(, 3).Value = c.Offset(, -1).Resize(, 3).Value
            rLog.Offset(, 2) = Now
        End If
    Next
End Sub

Előzmény: pilota-kex (14673)

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