-
Mobilarena
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Mutt
senior tag
válasz
lanszelot #52900 üzenetére
Szia,
Ahhoz, hogy mondjuk az első 3 sort rögzítsd ne jelöld ki a sorokat hanem állj a negyedik sorba és használd az ablaktábla rögzítést. Ha nem az első oszlopban vagy akkor a balra lévő oszlopok is rögzülnek.
Más szóval: Rögzítéshez állj egy cellába es attól balra és felfele rögzülnek a sorok és oszlopok.
Azért makacs a videón az Excel, mert a kijelölés legfelső sora és oszlopa mindig az A1 cella, amitől nincs semmi balra/ felfele ami rögzíthető. Ilyenkor a látható sorok felére teszi a rögzítést az Excel.
Üdv
-
Fferi50
Topikgazda
válasz
lanszelot #52766 üzenetére
Szia!
Ha csak ennyiből áll a makród, akkor természetes a hibaüzenet, mivel nem tudhatja, hogy melyik cellával szeretnél dolgozni.
Ezt a sort én Delila makrójának a CV -s sora helyett javasoltam. Tehát kellenek hozzá az abban szereplő további sorok, hogy világos legyen a makrónak, mi a feldolgozandó terület.
Valószínűleg nem voltam elég világos.
Sajnálom, hogy feleslegesen fárasztottalak.
Üdv. -
Fferi50
Topikgazda
válasz
lanszelot #52755 üzenetére
Szia!
Bocs, a nagy igyekezetemben elírtam, így helyes:CV.Formula = "=" & Replace(CV.TEXT,",",".")& "*A1"
Ezek nem aposztrófok, hanem idézőjelek! A Replace függvény kicseréli a számokban levő magyar formátumú vesszőt pontra, mert a makróban angol formátum kell.
Remélem, így már működik ez is (bár elvileg a másik formának is működni kellene...)
Üdv. -
-
Delila_1
veterán
-
Delila_1
veterán
válasz
lanszelot #52736 üzenetére
Ennyi az egész. Bekéred a szorzandó területet, amit vagy bepötyögsz, vagy egérrel kijelölöd, a többit elvégzi a makró. Hozzárendelheted egy gombhoz, ahogy már föccer is írta.
Ha állandó a terület, az inputbox helyett megadhatod direktben:Set Terulet = Range("A1:Z1")
Sub Szozas()
Dim Terulet As Range, CV As Object
Set Terulet = Application.InputBox(prompt:="Kérem a szorzandó tartományt", Type:=8)
For Each CV In Terulet
CV.Value = CV.Value * Cells(1, 1)
Next
End Sub
-
Fferi50
Topikgazda
-
föccer
nagyúr
válasz
lanszelot #52732 üzenetére
Alapvetően egy objektum orientált visual basic-ként kell kezelni.
Makróbarátként kell menteni a munkafüzetet, bekapcsolni a fejlesztő eszközök menüt. A legegyszerűbb, ha kiraksz egy gombot, amihez a megírt makrót rendeled.
alt+F11 bill kombinációval hívod elő a VBA editort. Bal oldalt a modul-ba dupla katt és már lehet is írni a kódot.
Ha visszalapozol ott a fórumba, sok-sok megírt kódot látsz.
Minden makró sub - end sub kód közé kell rakni. 1 modulba mehet több sub is.
egy cella értékét a sheets("munkalap neve").range("cella hivatkozás").value objektumban éred el vagy a sheets("munkalap neve").cells(sor azonosító, oszlop azonosító).value objektumban.
Változó deklaráció a Dim változó név As tipus utasítással. Ciklusok mennek. For - Next fog neked kelleni. feltétel keelés simán If - then - else - end if kulcsokkal mennek.
Operátorok közül a megszokottak.
Érték adás klasszikusan jobbról balra végrhajtás van i = i+1. Ugyan ez megy a cella értékeinek a megadásával is működik.
sheets("munkalap1").range("A1").value =sheets("munkalap1").range("A1").value + 1
Ha programozásba otthon vagy, akkor ezzel nagyjából már menni is fog ennek a feladatnak am egoldása.
Ma készen vagy a makróval, akkor VBA mecsok, jobb klikk a gombon és makró hozzárendelése. Ott lesz a megírt sub neve. Kijelölöd, okézod és már kattinthatod is a gombot.
-
föccer
nagyúr
válasz
lanszelot #52728 üzenetére
Az excel egy program. Alapvetően egy keretrendszer, amin belül a program adta korlátok között azt csinálsz amit akarsz.
Alapadat - > algoritmus -> eredmény
Ez az excel működési alapelve. Amit te szeretnél, hogy az alapadtba visszatöltse neked az eredményt, ami viszont logikailag hibás és/vagy adatvesztéshet és/vagykörkörös hivatkozáshoz és a futásban stack overfow-ba esne.
Ahogy Fferi írta, amit szeretnél arra nincs felkészítve az excel. Nem véletlen. Ellenben meg lehet oldani sok máshogyan. Megoldásból megírtunk többet is. Néhány kattintás. Ha szeretnéd segítünk a makró felprogramozásában és akkor menni fog az is. Ehhez viszont kellene néhány konkrétum. Elnevezések, munkalap nevek, pontos cella pozíciók.
A leírtak alapján a makró megírása sem nagyon nagy feladat, még én is meg tudom csinálni 1-2 óra alatt
üdv, fg
-
Fferi50
Topikgazda
válasz
lanszelot #52728 üzenetére
Szia!
"+A1*(aktuális cella tartalma) - jelentése;
Ahol C1 cella értéke 24
+A1*24 -re valtozik a cella értéke
Ahol D1 cella értéke 47
+A1*47 -re valtozik a cella értéke
Stb."
Erre kiváló az irányított beillesztés - szorzás =>ahogyan Delila írta az 52718#-ban. A tartományokat egyszerre is kijelölheted, összefüggőket egérrel simán, a külön-külön levőket egér és Ctrl -al.
DE: Ha változtatod az A1 értékét, akkor ismét meg kell csinálni ugyanezt. (Más kérdés, hogy honnan és hogyan kerül új érték a C1,D1 stb. cellákba előtte.)
Mivel nem írhatsz egy cellába értéket és képletet is egyszerre!!! Ha képlet volt és felülírod értékkel, a képleted elvész. EZ A SZABÁLY!
Az Excel annyit tud, amennyit itt leírtunk neked. Amit képlettel nem lehet megoldani, az makróval még megoldható.
Ennyi! Szerintem engedd el a problémát. Részemről elengedtem.
"Mi van ha valaki dolgozik is vele?"
Tudomásul veszi a rendszer korlátait vagy keres olyan rendszert/programot , amiben megoldható a feladat. Amit leírtál az egyébként nem életszerű, az alapadatokat általában mindenki szereti látni és megőrizni.
Üdv.
Ps. A semmit sem érő munkalapok/sorok teszik lehetővé, hogy megoldd a feladatot, ezek egyébként el is rejthetők a felhasználók elől. -
föccer
nagyúr
válasz
lanszelot #52725 üzenetére
1. munkalap
A1 cellába az ominózus szám2. munkalap
bármilyen tartományba az alap számok, amiket meg kell szoroznod, A1-től. Ide tetszőleges módon beviheted ezeket, bármilyen mennyiségben, csak legyen egy "maximum sor és oszlop"
3. munkalap. Ide jönnek az eredmények. A1 cellába =HA(Munkalap2!A1="";"";Munkalap2!A1*Munkalap1!$A$1)
Ezt a képletet 1x kell kiterjesztened az egész tartományra a 3. munkalapon és mindig a munkalap1 A1 cella értékével fogja kiszorozni a munkalap2-re betett adatokat. A munkalap3 pedig az eredményt fogja tartalmazni, ahonnan tetszőlegesen kimásolhatod.
A számolótáblát megcsinálni gyakorlatilag bárhány cellára kb 20 másodperc, utána bárháynszor használhatod, csak a munkalap1 és munkalap2 alapadatait kell változtatodnod.
Tök felesleges erre programot írni, meg makrózni. Ha minimálisan is rutinban vagy, tényleg 1 perc megcisnálni.
-
Fferi50
Topikgazda
válasz
lanszelot #52725 üzenetére
Szia!
"De az alap számokra nincs szükségem, csak zavaró tényező, ha ott van."
És amikor megváltoztatod az A1 tartalmát, akkor honnan fogja tudni az Excel, hogy mit szorozzon meg vele? Hiszen az alap számok a szorzás után eltünnek! a leírásod szerint.
Szerintem még mindig 2 malomban őrölünk, ezért jó lenne ha példával és képpel ! illusztrálnád a problémádat: Kiindulási helyzet és elérni kívánt eredmény megmutatásával.
"Mint ha programoznál.
Ezekhez a cellákhoz add hozzá a szorozva A1 cellaval képletet."
Csakhogy más a programozás és más a képlet!!!
A makróban/programban megteheted, hogy egy cella értékét megváltoztatod - akár képlettel, akár konkrét átírással, írhatsz bele új képletet és visszaírod az adott cellába.
A munkalapon, képletben ilyen lehetőség NINCS, saját magára nem hivatkozhat a cellában levő képlet! Ez egy szabály, amit vagy elfogadsz és aszerint használod az Excelt vagy elfelejted és nem képletezel hanem programozol.
Ezért kell használni ilyen esetekben segédtartományokat (oszlopot v. sort), ahova bekerül az a képlet, amellyel az általad alap számoknak nevezett értékekre és az A1 cellára hivatkozunk. Az alap oszlop marad változatlan, a segédoszlop pedig a képletnek megfelelően változik.
A képletet pedig lehúzással, másolással (irányított beillesztés - képlet), sőt akár villámkitöltéssel is átírhatod.
Sajnos úgy látom, olyan funkciót próbálsz az Excellel képletben megoldani, ami nincs - bármennyire is furának és hiányosságnak tartod.
Vannak a rendszerben szabályok és azok szerint kell használnunk.
Üdv. -
Fferi50
Topikgazda
válasz
lanszelot #52721 üzenetére
Szia!
Most, hogy mégegyszer figyelmesen elolvastam amit írsz, az a válaszom, hogy ez így nem megoldható képlettel:
"Ugyanazt a képletet kellene hozzá adom különböző cellákhoz:
+A1x(aktuális cella tartalma)"
Egy adott cellába nem írhatsz olyan képletet, ami saját magára (aktuális cella!) hivatkozik. Ill. írhatsz, de az hibás eredményt, leginkább 0-t fog eredményezni.
Az A1 x aktuális cella eredményét egy harmadik cellába kell képletezned! Ezután a harmadik cella értéke automatikusan változik, akár az A1, akár az "aktuális cella" értékét változtatod meg.
A javaslat a következő:
Ez a kiindulás.
A következő lépés: B2 cellára Ctrl+C (másolás)
Utána kijelölöd ahova szeretnéd a képletet, pl. C2 : D5
Ezután Paste - Paste Special - Formulas Eredmény:
Ezután A1 cella értékét változtatom 10-re. Eredmény:
Ha ez így nem működik nálad, akkor szerintem mutasd be legalább képpel, mit szeretnél elérni, mert lehet, hogy félreértünk valamit.
Üdv. -
-
föccer
nagyúr
válasz
lanszelot #52006 üzenetére
A lényeeg, hogy az excel a cella értékében egy számot tárol és dátumként formázza azokat az adatokat, amit dátumként, időként látsz. A szám értéke az a 1900. jauár 01. 0:00:00-től eltelt idő. 1 egész az 1 nap. Tehát 1 óra az 1/24, azaz 0,0416666. stb.
Ha egy dátumhoz házzáad 1-et, akkor az +1 nap. Ha két dátumot kivonsz egymásból, és az eredmény kereken 7, akkor a két dátum között pont 7 nap volt.
Ez alapján kell kialakítani, hogy mikor, milyen művletet kell megadni és/vagy mennyivel kell eltolnod a dátumot.
üdv, fg
-
Fferi50
Topikgazda
válasz
lanszelot #52001 üzenetére
Szia!
A dátum/idő formátumban az egész szám (egész rész) mindig a napok számát jelenti és a tört rész az időt (órát,percet stb.).
Tehát ahogyan Karikari is írta 24/7 = 3,428571 , azaz 3 nap és 0,428571 pedig az idő.
Ha szögletes zárójeles időformátumot ( [ó]:pp:mm ) használsz, akkor pedig a 3 napot is átszámolja órába igy 3*24=72+ a törtrész adódik hozzá az eredeti idődhöz.
Üdv. -
karlkani
aktív tag
válasz
lanszelot #52001 üzenetére
5:00+(24/7) esetén a 24/7 nem 24 napot jelent. 5:00-t beírva (0,208333333), majd átformázva dátum formátumra az eredmény 1900.01.00 5:00 lesz, ha hozzáadod a 24/7-et (3,428571429), akkor pedig 1900.01.03 15:17 (0,208333333+3,428571429=3,636904762). Ebből a 3-at (egész számot) veszi napnak, a tört részt időnek (0,636904762=15:17:19).
-
Fferi50
Topikgazda
válasz
lanszelot #51999 üzenetére
Szia!
A "jelenség" oka a cellaformátumban és az Excel dátum/idő ábrázolásában keresendő. A formátumkódokat magyarul fogom írni:
Az A4 cellád formátuma egyéni időformátum: ó:pp:mm
Az A5 cella "örökli" ezt a formátumot.
Az A6 cella független az előző formátumoktól, általános formátumú lesz.
Viszont az A7 cella ugyancsak "örökli" az A4 cella formátumát.
De akkor mi történik a 3,428571 (24/7) tel az A5 és A7 cellákban?
Itt jön képbe a dátum/idő ábrázolás.
Excelben ez is számként tárolódik, a számok egész része jelenti a napokat, a tört része pedig az időt. A napok az 1900. január 1 óta eltelt napok számát jelentik (1=1900.01.01 és így tovább). Az idő pedig a számok tört része.
Amikor időformátumot használunk az Excel egyszerűen figyelmen kívül hagyja - ó:pp:mm esetén - illetve átszámítja órákba - [ó]:pp:mm - a napokat.
Erről magad is meggyőződhetsz, ha a cellákra állva változtatod a cellák formátumát - általános, szám, dátum, egyéni idő a mutatott két formában.
Tehát nincs ebben semmi rendkívüli, ez az Excel normális működése.
Az a hab a tortán(!?), hogy amennyiben így írsz be egy cellába, hogy 5:00:00 akkor "magától" automatikusan idő formátumot ad az adott cellának.
Más rendetlenség is van, pl. írd be egy cellába 5.3 esetleg 5-3 és azonnal "rövid dátum" formátumban jelenik meg a cellában - a Windows beállításoknak megfelelően.
Üdv. -
válasz
lanszelot #43010 üzenetére
Az a leírás OpenOffice Writer-hez van, Excel-ben nincs ilyen külön "brossúra nyomtatás" opció...
Excelben "kicsit" körülményesebb megvalósítani, de talán ez megoldás lehet a számodra
1. A4-es papírméret mellett létrehozod az A6-os szegmenseket illetve minden egyes oldal egy új munkalapra kerüljön
2. Ellenőrződ az oldaltörést, hogy az csak is a kitöltött szegmensek területét fedje le. (Nyilván Te majd más cellaméreteket használsz, hogy az kiadja az A6 méretet, illetve margók stb beállítás, de utána az oldaltörést mindenképp ellenőrizd le)
3. A nyomtatási képen a képen látható opciók legyenek kiválasztva minden oldalon. (Amennyiben az első munkalapod kész van, minden beállítás passzol, akkor az újabb munkalapokat az első másolataként hozd létre, akkor nem kell a nyomtatási beállításokat minden oldalon beállítgatni) Munka2 munkalap
Nem tudom, ez hasznos-e a számodra, de talán igen...
-
sztanozs
veterán
válasz
lanszelot #43001 üzenetére
Booklet módban kell nyomtatni, ha támogatja a nyomtató.
Xerox pl:Wordben viszont nem kell nyomtató támogatás, tudja alapból is:
https://support.office.com/hu-hu/article/f%c3%bczet-vagy-k%c3%b6nyv-l%c3%a9trehoz%c3%a1sa-a-wordben-dfd94694-fa4f-4c71-a1c7-737c31539e4a?ui=hu-HU&rs=hu-HU&ad=HU
Új hozzászólás Aktív témák
Hirdetés
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Eladó Steam kulcsok kedvező áron!
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Kaspersky, McAfee, Norton, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- ÁRGARANCIA! Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! Microsoft XBOX One S 1TB lemezes játékkonzol garanciával hibátlan működéssel
- BESZÁMÍTÁS! Logitech G923 kormány + Driving Force Shifter garanciával hibátlan működéssel
- Samsung Galaxy A13 64GB, Kártyafüggetlen, 1 Év Garanciával
- Beszámítás! Lenovo Legion Slim 5 16AHP9 notebook - R7 8845HS 16GB RAM 512GB SSD RTX 4060 8GB Win11
Állásajánlatok
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest