Jó tipp, bár most sem értem, a Vlookup-ra miért nem változik.
Hátha valakit érdekel, megoldottam bár nem túl elegánsan úgy, hogy egy listbox-hoz rendeltem egy egysoros makrót. A listbox változása után kell frissiti a feltételes formázást, úgy, hogy a jelzõcella képletét felülirja:
Sub ListBox2_Change() Cells(1, 13) = "=+VLOOKUP($D$17,'Invoices 2010'!$B$4:$H$60,5,FALSE)" End Sub
próba, másik gépen csinálsz vele vmit, mented, visszaviszed felülírod. hátha
A calculate a saját, VB-ben írt függvényedre vonatkozott volna. A beépített függvénnyel nem tudom, mi baja lehet. Talán az Office-ra kellene egy frissítést küldened.
Ha saját készítésû függvény van abban a bizonyos cellában, akkor az nem frissül úgy, ahogy az Excel beépített függvényei. Próbálj meg beletenni egy calculate utasítást.
Sziasztok! A következõ lenne amit valahogy meg kellene csinálni de egyszerûen nem tudom:
A oszlopban megyék neve Mellette a B oszlopban pedig adatok.Egy tetszõlege cellába azt kellene kiírni, hogy melyik a minimum(a B oszlopban ) az adatok közül, de nem a számot írja ki hanem a vele egy sorba lévõ(A oszlopba) megye nevét.
nem változik. egyébként calculation automatic ra van állitva.
Igen, egy konkrét cellára hivatkozik az összes formázás. Valami automatikus frissités beállitással lehet a gond, mert általában mûködik, csak néha elakad. Ha a jelzõ cellát frissitem függvényfelülirással akkor megint jó, de ha csak szimplán az érték változik meg, akkor nem mindig.
egy feltételes formázással kapcsolatos kérdésem van 2007 -es Excelben. Beállitom 3 db rule-al azt, hogy egy cella attól függõen változtassa a devizanemet a formázásban, hogy egy másik jelcella értéke milyen devizanemet ad ("USD", "HUF" stb). A gondom az, hogy nem mindig vált át a formázás a jel változásakor, néha igen, néha beragad és többé nem, akkor csak a rule megnyitása + apply paranccsal tudom újra aktiválni.
csak le szerettem volna ellenõrizni pár feladatot amiben nem voltam biztos, de már mindegy.
gondolom a ecdl-hez kell neki, de mire a több ezer feladat megoldókulcsát bemagolja vagy csinál belõle vmit, annyi idõ alatt meg is tanulhatja az excel kezelését. és hasznára is válna ;)
Valaki meg tudná mondani nekem, hogy a 4. modulhoz(táblázatkezelés) hol találhatom meg a megoldókulcsokat?
Nem sok esély van rá hátha Nyisd meg az excel-t(start>futtatás>excel.exe) majd a munkaablak(ctrl+F1) megkeresed a "Elsõ lépesek"-et vagy a fájl menü legalulra...
Más. Eltûnt egy excel fájlom. Megnyitottam módosítottam - beírtam egy x-et - el akartam menteni azt ,mondta a fájl nem lehet menteni. Mondom le vagy szarva bezárom majd újra megnyitom. Erre eltûnt a fájl. Kész sehol nincs. Keresés nem találta, lomtárban nincs, legutóbb megnyitott dokumentumok alatt szerepel de megnyitni nem tudja. Ez most...
Angol nyelvû az Exceled? Nézd meg a Vezérlõpulton a területi beállításokat. Ha ott a magyar szokásnak megfelelõen vesszõ van megadva tizedesjelként, akkor a beírt 2.15-öt dátumként (2010.02.15.) értelmezi az Excel, és átállítja a cellaformátumot. A megjelenített 40224 azt mutatja, hogy a máig ennyi nap telt el 1900.01.01 óta. Ha számként akarod bevinni, vesszõvel írd: 2,15 Ha viszont szövegként van rá szükséged, mint például egy fejezet címe, akkor a bevitel elõtt adj a cellának szöveg formátumot.
Egy kérdés emberek. Miért van az, hogy egy cella formátumát beállítom számra. 2 tizedes jegy és ha beírom pl:2.15 akkor 40224,00 csinál belõle. 2.05re meg ezt: 40214,00 Mit tehetek ellen? Egyéb iránt még a régi 97est használom.
Mikor kitettem ezt a vigyori pofát, nem vettem észre, mit mutat. Elnézést.
Nyilván rosszul kérdeztem?!? Tehát törlök egy tartományt: Rows("5:10").Delete Shift:=xlUp De legközelebb a törlendõ tartomány a ("5:25") lenne...Aztán megint más... Ezért kellene a változó a második helyre.
Helló! Van egy sorom: Rows("5:10").Delete Shift:=xlUp Azt szeretném elérni, hogy a törlendõ tartomány egyik elemét változóval tudjam megadni. (Mondjuk a 10.)
Ha a dátumaid az A1-ben kezdõdnek, akkor a B1-be: =HA(VAGY(HÉT.NAPJA(A1;2)=6;HÉT.NAPJA(A1;2)=7);"X";"")
Ez csak a szombatok és vasárnapok mellé tesz X-et. Ha az ünnepnapok mellé is szeretnél tenni, akkor az év ünnepnapjait be kell valahova írnod egymás alá, majd ennek a kijelölt tartománynak add az Ünnepek nevet (Beszúrás, Név, Név megadása). Ezután a B1 képlete:
Nincs mit. Ha már VB-nél tartunk, nem szükséges új változót alkalmazni a példádban. s2 = Right(s, Len(s) - 1) helyett az s = Right(s, Len(s) - 1) is elég. Igaz, hogy ez matematikai képtelenség, de a programnyelvekben normális értékadás. :)
Jó azt azért tudom, hogy 5+4=9 de én string-eket adtam össze. Az asc-t és a chr-t is ismerem csak nem jutott eszembe ez az alkalmazásuk. De persze köszönöm szépen mégegyszer a segítséget.
Az & összefûzi az adatokat. Alma & fa=Almafa, 5+4=9, 5 & 4=54.
Az oszlop változó az aktív oszlop sorszámát veszi fel, ha tehát az aktív oszlopod N, akkor 14 lesz a változó értéke. Az "A" betû ASCII kódja 65, a lekérdezése munkalapon =kód("A"), vagy ha az A a B3 cellában van, akkor =kód(b3). Itt érdemes megemlíteni, hogy a kód(b3) függvény a B3 cella elsõ karakterének ASCII kódját adja vissza.
VB-ben: változó(vagy cella)=asc("A").
Az asc ellentéte a CHR(x), ami egy numerikus értéket alakít át nem numerikussá. Mivel az A értéke 65, ezért kell 64-et hozzáadni az oszlop változó értékéhez. Ha a változó értéke 1, akkor a chr(változó+64) értéke "A". A változó 14-es értéke esetén 64+14=78, ami az N karakter ASCII megfelelõje.
Wow! Te tényleg értesz ehhez az Excel Visual Basic-hez! Ezt az & jeles dolgot nem is tudtam. Ez menyiben különbözik a + -tól? És a Chr(oszlop + 64) sem hiszem hogy eszembe jutott volna! Szóval köszönöm szépen a segítséget, sokat segítettél és ismét tanultam valamit!
Kicsit kevesebb sorral:
Sub Címmel() Dim lap As String Dim cím As String
lap = ActiveSheet.Name cím = Selection.Address Sheets("Munka1").Cells(1).Formula = "=" & lap & "!" & cím End Sub
Másik megoldás, ahol relatív hivatkozás lesz a Munka1!A1-ben:
Sub RelHiv() Dim lap As String Dim sor As Integer Dim oszlop As Integer
lap = ActiveSheet.Name sor = ActiveCell.Row oszlop = ActiveCell.Column Sheets("Munka1").Cells(1).Formula = "=" & lap & "!" & Chr(oszlop + 64) & sor End Sub
Mindkét kérdésedre a cells.find keresést javaslom. Az elsõ esetben a találat sorának értékét beteszed egy változóba (sor=selection.row), és a módosítások begépelése után ennek a sornak az oszlopaiba íratod be az új értékeket.
A másodiknál egy ciklusba teszed a keresést, minden találatnál mejeleníted a formon az aktuális sor értékeit, és két gombhoz rendelve vagy kezdesz valamit az aktuális sor adataival, vagy tovább kerestetsz. Do Loop ciklusba érdemes tenni, ahol azt figyelteted, hogy a sor értéke nem lett-e kisebb, mint az elõzõ találatnál, mert ez a keresés az utolsó elõforduló érték után az elsõt találja meg.
Sziasztok! Tud nekem valaki segíteni? A problémám a következõ: adott egy táblázat A3:G1000ig. ennek is csak egy része tartalmaz adatokat. Csináltam hozzá gyönyörû form-ot amivel lehet hozzáadni adatot a következõ üres sorba. Pl. 342-ik sor még tartalmaz adatot, akkor makróval a 343-ik sorra ugrik és 6 textbox értékeit beilleszti a megfelelõ oszlopokba. Hogy érthetõ legyen: A oszlop "darabszám", B oszlop "gyártó", C oszlop "tulajdonság" stb.. B oszlophoz tartozik a textbox1, C oszlophoz a textbox2... és így tovább. (mert az A oszlop "darabszám" excelen belül SZUM fügvénnyel számított) Van egy listboxom, ahová beállítottam a rowsource-ot A3:G1000. listboxban benne van az összes sor amit eddig tartalmaz a táblázat, sõt ha új sort adok hozzá a "hozzáad" commandbuttonnal, akkor az is megjelenik. Ûrlapként funkcionál a Form, de oda-vissza szeretném ha mûködne, tehát ha kiválasztok egy elemet a listboxban akkor azt módosítani is szeretném, és visszaíratni a saját sorába, nem pedig legalulra új sorként /hozzáadás gomb - már mûködik/ (így mûködik, de ez nem jó) Egy készletlistáról van szó tulajdonképpen. Jelenleg ha kiválasztok egy elemet a listboxban akkor a megfelelõ textboxokban (1-6-ig) a listbox megfelelõ oszlopainak az értékét (szövegét) írja.
A másik meg a keresés lenne egy különálló textbox-al amihez tartozik egy button, amit ha megnyomok akkor az adott textboxba írt szöveget kikeresi a listboxban, és rá is ugrik. ( a háttérben is kereshet magában az excel táblában, a lényeg hogy a listboxban válassza ki a találatot..) és persze lehetnek egyforma találatok tehát újbóli megnyomásra ugorjon a következõre, és így tovább, majd kezdje az elejérõl. És persze, hogy bonyolítsam a már amúgy is jócskán bonyolult dolgot, szabad szöveges keresés legyen, tehát a listbox bármelyik oszlopában lévõ találat érdekel. Például ha beírok egy számot akkor az "termék ára" /<- nem ez a neve../ oszlopban is keressen vagy a "darabszám" vagy "tulajdonság", stb.. bárhol érdekel a találat... listbox properties-ben beállítva 7 oszlop, és oszlopfejléceket is mutatja, de ez lényegtelen.
Elõre is köszi a segítségeket! :-)
Köszi a választ de nem ilyen egyszerûre gondoltam csak nehéz megfogalmazni hogy mit is alkarok. De közben asszem rájöttem a megoldásra: Az aktív lap aktív cellájára fog hivatkozni a Munka1 A1 cellája.
Sub t() Dim h, mf, s, o, s2, o2 As String mf = ActiveSheet.Name s = Str(ActiveCell.Row) o = Str(ActiveCell.Column) s2 = Right(s, Len(s) - 1) o2 = Right(s, Len(o) - 1) h = "=" + mf + "!" + "R" + s2 + "C" + o2 ' Worksheets("Munka1").Cells(1, 1) = h End Sub
vagy ha pl. egy másik lapon lévõ cellán állsz – ez az aktív cella –, és oda akarod bevinni a Munka2!A1 értékét: Selection=Sheets("Munka2").Cells(1,1)
Az aktív lap B3 cellájába (ha nem a B3 az aktív): Cells(3,2)=Sheets("Munka2").Cells(1,1)
A Cells(1,1) helyett írhatsz Cells(1)-et is, mert a cellákat így értelmezi az Excel: A1 -> Cells(1), B1 -> Cells(2), ... IV1 ->Cells(256)
Sziasztok! Egy ilyen hivatokzást: =Munka2!A1 tehát, hogy egy lap cellája hivatkozzon egy másik lap cellájára hogyan lehet megírni makróban úgy, hogy a munkalap neve és a cella is változó legyen?
Szívesen. Igen, az a válasz is a kérdésedre jött. Én is háromszor olvastam el a kérdést, mire rájöttem, mit szeretnél elérni. Elõször nekem is a HA függvény jutott eszembe. Nem a megfogalmazással volt baj, csak elég nehéz szavakba önteni ezt a kérdést. A "B"-t is megadhatos egy cellában. Ha pl. a C1-be írod a B betût, a függvény: =INDIREKT(C1&B1) Másik lapra is hivatkozhatsz: =indirekt("Munka1!A" & b1)
Ha ez is nekem jött: =HA(A1=7;A1;"semmi, vagy amit akarsz kiiratni") , akkor ezt nem tudtam értelmezni, mert nem írt ki semmit, ha nem írtam az idézõjelek közé!
Hello! kellene egy gyors segítség! Adott egy tábla. Egyik oszlopba a szobák számai, melette a hozzá tartozó rá. Vannaka bérlõk, és melette h meik szobát vették ki. Nekem az árat kell kiszámolni csak össze van keveredve. Meik függvényt használjam és hogyan?
Lehet az Excelben dinamikusan hivatkozni? Azt értem ez alatt, hogy egy cella tartalmát szeretném megjeleníteni, de attól függõen, hogy egy másik cellában milyen szám áll. Pl: A1-ben 7-es szám van. Én egy cellában a B(A1)-es (B7 cella) tartalmát szeretném kijelezni. Értelemszerûen az A1- ben lévõ érték idõnként változik. Próbáltam =B(A1) kombinációkat, de sajnos mindig hibát jelzett. Tud valaki segíteni? Köszönöm elõre is!
Köszönöm! Nagyon jó. Botton_Click esemény lett, és változókba tölti a beírt dátumok numerikus értékeit.
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) sz = TextBox1.Text If sz > "" And Len(sz) = 10 Then If Mid(sz, 5, 1) = "." And Mid(sz, 8, 1) = "." And _ IsNumeric(Mid(sz, 1, 4) * 1) And IsNumeric(Mid(sz, 6, 2) * 1) _ And IsNumeric(Mid(sz, 9, 2) * 1) Then _ Sheets("Munka2").Cells(1, 1) = CDate(TextBox1.Text) * 1 End If End Sub
A TextBox-ból való kilépés után a Munka2!A1 cellája felveszi a beírt dátum numerikus értékét. Ha nem írsz be értéket, vagy nem a 2009.12.27 formában írod be a dátumot, nem történik semmi.
A dátumokat nem "2009.12.27" formátumban, hanem számként kell megadni.
.MinimumScale = 40174 .MaximumScale = 40272
A lapodon egy oszlopban hivatkozol a dátumokat tartalmazó cellákra (=A2), és a képleteket formátumát általánosra, vagy számra állítod. Így megkapod a dátumok számértékét. A tengely formázásánál már beállíthatod a dátum formátumot.
Helló Mindenkinek! Elakadtam, hát ide szaladtam... Diagram kategória tengely, skála értékeinek átállítását próbálom makróval elvégeztetni. Így rögzítette:
Nem diagramon vagy összesíteni kellene, hanem a magukat a napokat (dátumokat) kellene bejuttatni a listából a kimutatásba. Kimutatásvarázslóval csak összeget vagy a darabszámot összesíti.
A dátumokat tartalmazó oszlop címét a SOR, és az ADAT mezõbe húzd át.
Megcsinálod a dátumozást úgy hogy a cellaformázás>számfülön az kategóriáknál kiválasztod a dátum mezõt.(Majd ha lehet akkor másolod) Diagram varázslónál amikor létrehozol egyet vagy a 2.lépés-nél a adat fülön kiválasztod a x kategóriatenger felirataihoz beszúrod a dátumhoz tartozó cellákat (ugyanúgy ahogyan a tartományt hoztad létre)vagy amikor létrehoztál egyet:Akkor dupla katt az egyik értékre és kiválasztasz neki egy színt(ugyanúgy mindegyikhez) Gondolom erre gondoltál
Az elõzõhöz Egy kereszttáblás kimutatás celláiban kellene a dátumokat feltüntetni. Bal szélen oszlopban az adatok, felsõ sorban a hónapok, a megfelelõ dátumokat pedig az 'adatterületen' a megfelelõ cellákba kellene beírni. Úgy tudom a kimutatásvarázslóval csak számokat lehet kezelni.
Sziasztok!
Azt szeretném kérdezni, hogy egy listából hogyan tudom összeválogatni különbözõ adatokhoz tartozó dátumokat havonta. M.
Ezt csak makróval lehet megoldani.
Sub Csere() Dim A, B, köztes Dim a_cim As String Dim b_cim As String
Set A = Application.InputBox("Melyik cella tartalmát cseréljem meg?", "Csere", Type:=8) a_cim = A.Address Set B = Application.InputBox("Melyikkel?", "Csere", Type:=8) b_cim = B.Address köztes = A Range(a_cim) = B Range(b_cim) = köztes End Sub
A makró bekéri a két cella helyét, amit egérkattintással is megadhatsz, utána felcseréli a két értéket. Tehetsz ki hozzá egy gombot, ha többször használod.
Sziasztok! Hogyan tudnám rávenni az Excelt, hogy két kijelölt cella tartalmát felcserélje?
Kimutatás diagramot készíts, ne sima diagramot. Jelöld ki a két oszlopot, Adatok -> Kimutatás vagy kimutatásdiagram -> Kimutatásdiagram (kimutatással együtt). Az Elrendezésnél a SORhoz tedd a terméket tartalmazó oszlop címét, az ADAThoz az eladott darabszámét. Figyelj, hogy ide az összeg kerüljön, mert elõszeretettel darabszámot akar tenni az Excel. Ha darabot tenne, duplaklikk, a megjelenõ párbeszéd dobozban átállíthatod összegre. Új adatok felvitele után adj frissítést a kimutatásban. A kimutatáson állva a Kimutatás eszköztáron egy felkiáltójel ikon adja a frissítést.
Diagramot kell készítenem és elakadtam. Már széttanulmányoztam a súgót és a guglit is. A lényeg, hogy oszlopdiagramot kell készítenem a termékféleségek és az eladott darabszám függvényében. A probléma az, hogy van kb. 10 féle termék. Mellette lévõ oszlopban az eladott darabszám. De emellett más adatok is vannak a táblázatban, ezért nem 10 sor van, hanem kb. 50. Így egy termék az oszlopban többször is szerepel. Azt kellene elérnem, hogy a diagramban van 10 oszlop a termékeknek, majd mikor ismételten az adott termék kerül rögzítésre, akkor annyival növelje a diagram értékeket, amennyi be van írva a darabszámba mellé.
Pl. 50 sorban 8-szor szerepel a bab, a darabszám az mindig más érték.
Hogyan lehetne rávenni az ecxel-t, hogy automatikusan figyelje, hogy mikor a bab-ot rögzítem, akkor a darabszámával növekedjen a diagram?
Gondolom valamilyen hozzárendeléssel, de ezt nem találtam a súgóban.
Excel 2007-es-ben van.
Köszönöm elõre is!
ctrl+c, ctrl+v és a beillesztésjelnél választod "csak az értéket", vagy =c1 és végig másolod
Egy olyan kérdésem lenne, hogy át szeretném másolni egy cella tartalmát egy másik cellába, de úgy, hogy ne a függvény másolódjon, hanem csak a függvény eredménye.
Pl.: Ha csinálok egy 'A1+B1=C' függvényt akkor a függvény nélkül csak az eredményt tudjam kimásolni azaz a 'C'-t.
THY
Amikor átviszed a vevõk adatait a gyûjtõ lapra, az összegeiket szorozd meg -1-gyel így: egy cellába (akárhova) beírod a -1-et, másolod, kijelölöd a vevõk összegeit, jobb klikk, irányított beillesztés, szorzás. A -1-et tartalmazó cellából törölheted az értéket. Két napja írtam privátban, hogy ha megadod az e-mail címedet, elküldöm a tovább egyszerûsített lapokat. Még jobb, ha elküldöd a fájlodat, persze hamis adatokkal, hogy lássam a felépítést.
Delila köszi. Minden jól mûködik! Hogyan tudnám a kifizetetlen, azonos vevõket és szállítókat összesíteni, hogy a végén csak a különbözetet kelljen elszámolni a cégek között? Példa: Pirosalma Kft, mint szállító 1000 Ft, vevõként ugyanõ 1500 Ft. Egyenleg 500 Ft-al tartozik a Pirosalma nekünk. Azt már megcsináltam, hogy kézzel kerestem ki az azonos cégeket és az egyenleg oszlop megjegyzése attól függ száll. v. vevõ a nagyobb beírja ki kinek tartozik. Nekem automatán kellene hogy összesítse a ki nem fizetett, de azonos cégeket. Köszi Samu
A szállítóknál a P oszlop képlete: =HA(WEEKNUM(E2+1;2)=WEEKNUM(MA()+1;2);1;0)
Tanítsd meg a 2003-at sok új függvényre: Eszközök/Bõvítménykezelõ. Jelöld be az Analysis ToolPak, és egy bajjal az Analysis ToolPak-VBA elõtti négyzeteket. Az O oszlop képlete ezután =HA(ÉS(E2<MA()+2;AB2="n");1;0), A P-é pedig legyen =HA(WEEKNUM(E2;2)=WEEKNUM(MA();2);1;0). Három fix adat lesz a kritérium táblában: S4->AB oszlop címe, R5->1, S5->n. Csak az R4 változik a kigyûjtendõ adatoknak megfelelõen. Az egyik kigyûjtésnél az O, másiknál a P oszlop címét kell beírnod. Mikor átmásolod az adatokat a gyûjtõ lapra, egy oszlopba vidd be melléjük, hogy ez a vevõ_heti, vevõ_lejárati adata. A szállítók lapján alakítsd át a képletet az n+1 naphoz.
Köszönöm az eddigieket Delila. A kiegyenlítést nem az M, hanem az AB oszlopban jelölöm i a kifizetett n a ki nem fizetett. Az excel 2003 sajnos nem ismeri a weeknum-ot. Ezzel próbálkoztam már. Egyébként a szállítók fülön nem esik egybe a hetek száma a fizetési kötelezettséggel, mert n napon indított összeg csak n+1 napon érkezik a szállítóhoz, tehát a köv.hétfõi esedékesség is még adott hét kötelezettsége.