Az „Excel” fórum célja, hogy keretet adjon az Excel felhasználók széles táborának tapasztalataik megosztására, és lehetőséget a segítséget kérőknek. Az alábbi összefoglaló azért készült, hogy segítse a helyes kérdésfeltevést.
– Írd le szabatosan a problémát. Úgy fogalmazz, hogy ne csak te magad, de a szakértő is megértse, mire szeretnél választ kapni.
– Írd le, hogy milyen verziójú Excellel dolgozol. (Vagy ha nem – ill. nem csak – Excel, akkor micsoda?)
– Írd le, hogy milyen úton indultál el, és hol akadtál el rajta.
– A kérdés megértése szempontjából sokat segíthet, ha feltölteszt egy képet, amin látszik, hogy mit szeretnél, vagy illusztrálja azt.
– Még jobb, ha feltöltesz egy minta munkafüzetet valahová (pl. data.hu). Feltöltés előtt távolítsd el belőle a nem publikus adatokat.
– Ha a feladat jellege olyan, célszerű az "előtte" és "utána" állapotokat bemutatni. (Miből kellene csinálni mit?)
– Ha VBA kódon kell javítani, másold be a releváns kódrészt. Rövid kód mehet hozzászólásba, hosszú kód inkább ide: http://pastebin.com/
– Ha valami nem úgy működik, ahogy kellene, add meg a rendellenes viselkedés jellemzőit, a hibaüzenetet, és a hibát okozó programsort.
ujveg = Range("X1:Y120").Find(What:=y, LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 1).Value For Each cl In Union(Range("B7:U7"), Range("B14:E14"), Range("B24:U24")).Cells
cl.Formula = "'" & cl.Value
Next Union(Range("B7:U7"), Range("B14:E14"), Range("B24:U24")).Replace What:=regiveg, Replacement:=ujveg, LookAt:=xlPart
A ' karakter a szövegjelölő.
A piros sorokat illeszd be erre a helyre. A Dim sort egészítsd ki ezzel: , cl as Range
Remélem így már nem lesz gond. (Igaz, jelezni fogja, hogy a cellában szövegként tárolt szám van, tehát számoláskor nem árt vigyázni vele.)
Emlékszel még a számot kódra cserélős makródra? Most előjött egy hiba, sajnos a kódok között van, E1, E2, stb is, ezt pedig az excel ugye tudományos formátumra alakítja, akkor is ha az összes cellát szövegre állítom. Nem lehetne az alábbi makróba beépíteni, hogy ezek a cellák (Union(Range("B7:U7"), Range("B14:E14"), Range("B24:U24")) mindenképpen szöveg formátumúak legyenek? Vagy az egyéni formátumnál vmi kombináció?
köszi
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As Double, y As Double, regiveg As String, ujveg As String
If Not Intersect(Range("B2"), Target) Is Nothing Then
A Szumha függvénynél csak a feltétel kell: SZUMHA(tartomány; feltételek; [összegtartomány])
pl.A1 cella: =SZUMHA(B:B;"<>*szó*";C:C) minden olyan számot összead a C oszlopban, ahol a B oszlop megfelelő sorában nem szerepel a szó semmilyen összetételben sem (azaz kiszűri ha lasszó és azt is ha szófaj van benne és magát az önálló szót is. Erre a csillag karakter miatt képes. Ha azt akarod, hogy csak a szó -val kezdődőekek ne vegye figyelembe, akkor az első csillagot elhagyod (így nyilván a lasszó összegződik, de az önálló szó nem).
A szöveg.keres tartományon szerintem nem is működik...
Sziasztok! Meg lehet azt oldani Excel függvényben, hogy feltétel megadásnál, mondjuk SZUMHA-nál, minden olyan értékeket adjon össze aminél egy bizonyos szó NEM szerepel?
Az "logfile"-nál rájöttem, hogy csak azokat menti ki amit statikusan én írok be valamelyik cellába. Ami függvénnyel számoltatok vagy beírom hogy 1 2 3 és lehúzom hogy a többit magától számolja runtime error 13 dob :(
Egyenlőre megoldottam úgy, hogy ctrl+F és a "-"-t cserélje ki "."-ra :D
Másik kérdésem miért van az, hogy ez a makrót sikerült egyszer ráerőszakolnom az excelre és azóta sem megy :(
Tökre megörültem, hogy értettem is mit kell csinálni és hogyan és sikerült is. De egyszer elmentette az értéket hogy miről mire ment aztán azóta sem működik. Úgy sem, hogy csináltam egy tök új excelt :(
A 22692-ben még csak addig jutottam, hogy az excel nem minden legitim dátumformát ismer fel stringként. Azóta utána néztem, hogy milyen dátumnak látja a magyar excel a stringeket. Az alábbi táblázatban foglaltam össze a lehetséges eseteket. Az összes többi stringnél a dátumfüggvények hibaüzenetet adnak.
Egy icipici változás van a makróban, az offsetnél van egy -1-es, mivel maga az induló cella offset indexe 0,0. Így ha 5 cellát talál, akkor offset(4,0) pl. az ötödik sor első cellája.
A fenti makrórészt a sorbarendezés után betéve minden képleted működik a másik munkalapon.
Sziasztok! Köszönöm Delilának a linket, máris letöltöttem a könyvet. Köszi Fferi és Jimmy a tippeket, szerintem a kettő kombinációja lesz jó.
Csinálok makrórgözítéssel egy olyat, hogy a korábbi elnevezéseket törli az Excel a két termékre, majd a Formulas, Define Name alatt beírja a makró a képletet először az egyik termékre, majd átírva a másik termékre a képletet, beírja másodszorra is a képletet az Excel elnevező ablakba.
Mindenképp úgy szeretném megcsinálni az automatizálást, hogy egy gombnyomással törlődjön a régi elnevezés, majd utána legyen sorba rendezve minden, majd jön a Define Name egyszer az első termékre, majd ugyanez a másik termékre.
Hogy lehet ide feltölteni Excel fájlt? Nyilván egy sematikus táblát tennék csak fel, nem az igazi munkafájlt.
Szerintem azért szeretné makróval, mert nem gondolta volna, hogy másképp is lehet. Nem beszélve arról, hogy a makrót minden egyes alkalommal futtatni kell, amikor új adatok erülnek a munkalapra. A képletes megoldás pedig automatikusan követi a változásokat...
Valahol 2003 és 2010 között az OFSZET függvényt átnevezték ELTOLÁS-ra. 2003-ban biztosan OFSZET kell az ELTOLÁS helyett, 2007-ben nem tudom, ki kell próbálni.
Sziasztok! Pár hete láttam itt valahol egy linket, ami Kovalcsik Géza makró könyvére mutat, meg tudja valaki adni a pontos hsz. számot? Vagy ha újra belinkelné az illető ide, nagyon jó lenne. Köszi.
Más. Hogyan tudom megcsinálni azt, hogy amikor el akarok nevezni egy tartományt Név definiálással, tehát nem létrehozással, akkor az Excel dinamikusan érzékelje, hogy hol kezdődik és hol végződik az a tartomány?
A struktúra a következő: van 6 oszlop, ahol különböző termékfajták vannak. Az egy csoportba tartozókat, melyeknek azonos a neve, ezeket szeretném definiáltatni a makróval.
Az első oszlop tartalmazza a neveket, összesen 5 fajta termékét.
Ebből az 5 termékből csak 2 terméket, a Sakkot és a Labdát kell definiálni, a többi nem érdekes.
Ahogy Excelben csinálom: átmásoltam egy külső adatbázisból a sheet tartalmát, tehát megvannak az aktuális adataim.
Utána sorba rendezem a terméknév szerint a táblázatot, majd megnézem, hogy kezdődik a Sakk nevű termékek sora, és ott kijelölöm a kezdő cellától az utolsó őt tartalmazó celláig a tartományt, belevéve a mellette lévő másik 5 oszlopot, benne a költségadatokkal, és ugyanezt megcsinálom a másik termékre is, melynek neve Labda.
A Sakk és a Labda tartományelnevezéseket aztán használja egy másik munkalap a vlookup-hoz, mert onnan veszi át a vonatkozó költségadatokat.
Ami a makró részét illeti, logikailag úgy gondolnám, hogy sorba kell először rendezi a táblázatot terméknév szerint, majd csinálni egy utasítást, hogy a makró keresse meg a B oszlopban azt a sort, mely először tartalmazza a Sakk nevet, ezt jelölje ki, majd menjen le addig, amíg eltérő nevet nem talál ugyanabban az oszlopban, majd kijelölve a köztes területet és a mellette lévő további öt sort definiálja Sakk néven a tartományt.
Majd ugyanezt csinálja meg a Labdával is, Labda névre elnevezve.
Éppen csak a hogyant nem tudom erre az utasításra. Ezt rögzítéssel nem lehet megcsinálni, csak if then-nel vagy Case ciklussal gondolom, de a szintaktikát nem tudom.
A múltkori segítséget még egyszer köszi mindenkinek - Fferi, Jimmy, Tbando , a makró remekül működik azóta is :-)
Excelben egy cellában van egy email cím a @ karakterrel. Automatikusan hivatkozást csinál belőle. De én nem szeretnék hivatkozást. Jobb egérgomb helyi menüben kiválasztom a hivatkozás eltávolítását, ezután oké lesz. De ha a cellában (F2) Alt+Enter nyomva egy új bekezdést csinálva hozzáírok valamt, akkor megint hivatkozás lesz azzal együtt, amit hozzáírtam. Megint hivatkozás eltávolítását választom. De ekkor az új bekezdés eltűnik, közvetlenül az email cím után kerül aminek külön sorban kéne lennie. És ez az ami nem jó, mert nekem új bekezdésben (vagyis az email cím alatti új sorba) kéne írnom.
Az If Not IsDate(cl.Value) Then sort nem szabad kikommentelni, mert akkor a már dátumként kezelt értékekkel gond lesz (ha pl. nem szövegként, hanem kapásból dátumként jeleníti meg a cellában, akkor nem lesz benne "-"!
Ezt kezeli az else ág, amely beállítja a magyar dátum formátumot és be is írja mégegyszer az értéket, mert így érvényesül csak.
A hónapnevek, meg a tartomány az példaként kezelendő természetesen.
Rosszul írtam :((((. Az óra oszlopra még rá kell ereszteni a Gyakoriság fgv.-t vagy Darabtelivel meghatározni a gyakoriságokat. A diagramot a gyakoriság táblázat adatai adják.