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.
Segítséget szeretnék kérni egy feladat megoldásához. Egy adott értékü cella megjegyzésének tartalmát (a szöveget) kellene visszaírni az adott cellába úgy, hogy a megjegyzés is megmaradjon, de a cella értéke (szöveg) természetesen így felülíródik. Egy nagy tábláról van szó, ahol elég sok cellához tartozik ilyen megjegyzés, de bőven van megjegyzés nélküli cella is.
Szóval, próbálkoztam egy kis makróval, de nem találom a megoldást. Az alábbi ciklus akkor akad ki, ha az adott "M" értékű cellához nem tartozik megjegyzés (egyébként, rendesen átírja a megjegyzés értékét a cellába).
For i = 4 To 700
For t = 4 To 128
ActiveSheet.Cells(i, t).Select
If Cells(i, t).Value = "M" Then Cells(i, t).Value = Cells(i, t).Comment.Text
End If
Next t
Next i
Előre is nagyon köszönöm, ha valaki segít a probléma megoldásában.
Sub K() Application.Calculation = xlCalculationManual Selection.AutoFilter Field:=5, Criteria1:="*" & InputBox("Szótöredék:") & "*", Operator:=xlAnd ScreenUpdating = False End Sub
Ez működne, de így meg kikapcsolva marad az aut. frissítés. Ha a sor végére rakom a Application.Calculation = xlCalculationAutomatic -ot akkor cseberből vederbe jutok, mert megint frissül a táblázat.
van egy hatalmas táblám, amiben inputboxszal kérek be egy autoszűrővel szűrendő értéket. A gond az, hogy a szűréskor újrafrissül a tábla, és ezt kellene kikpacsolni vhogy, de az automatikus frissítés is maradjon bekapcsolva a makró lefutása után. A ScreenUpdating = False és a Application.Calculation = xlCalculationManual/Automatic nem jó, mert a Selection.AutoFilter Field:=5, sor lefutása után frissül a tábla azonnal.
Pl. egy bizonyos xls fájl megnyitásakor mindig a Munka1 nevu munkalapja legyen aktiv:
A Vb szerkesztoben a ThisWorkbook objektumra duplán kattintva, a kódablakban a Workbook open eseményhez tartozó eljárás módosítható az alábbiak szerint, majd az excel fájl elmentendo:
Private Sub Workbook_Open() Sheets("Munka1").Activate End Sub
Azt hogyan tudom megoldani hogy egy munkafüzeten belül egy bizonyos munkalap legyen mindíg a nyitóoldal? Most az van ha egy másik munkalapon maradok, rámentek és onnan lépek ki, akkor a köv. megnyitáskor az jelenik meg, nem a főoldal (1. oldal)
These are variables that are dimensioned (Dim) outside the Procedure itself at the very top of any Private or Public Module. See Example below;
Dim lRows as Long
Sub MyMacro () 'Code Here End Sub
All variables dimensioned at this level are available to all Procedures that they are within the same Module the variable is dimensioned in. Its value is retained unless the Workbook closes or the End Statement is used.
Project-Level, Workbook Level, or Public Module-Level
These variables are dimensioned at the top of any standard public module, like shown below;
Public lRows as Long
All variables dimensioned at this level are available to all Procedures in all Modules. Its value is retained unless the Workbook closes or the End Statement is used.
Nem igazán értem a kérdést. Vagyis azt nem értem, mi a probléma a beszúrással. Menü: Beszúrás -> Oszlopok és kész. A képletek elvileg automatikusan követik a változást, és a beszúrás után is a megfelelő cellákra fognak hivatkozni.... Vagy pedig, mi a gond?
Köszönöm a segítséged, közben rájöttem én is hogy ez így nem megy. Az Acces-t még hanyagolom, bár tanultam valamikor azt is.
Tehát a lista marad egy munkafüzeten belül, a lagutolsó munkalapként. Így a frissítés is egyszerűbb lesz, ezt sikerült is megoldani. De van még egy kérdés. Utólag hogyan tudok a mennyiség és a cikk közé beszúrni még egy mennyiségi egységet amit alistában harmadik oszlopként utólag megadnák?
Talán jobb és egyszerűbb az a megoldás, amikor az ártáblázatok munkafüzetében (egy külön munkalapon) direkt hivatkozásokkal vanak átolvasva az adatok az eredeti fájlból. Így nem kell mekrózni, meg másolni, hanem a fájl minden megnyitásakor automaikusan frissülnek (amennyiben ezt választjuk) az adatok. Minden nemű változtatást az eredeti fájlban (és csak ott) lehet és kell elvégezni, mégis minden rendben fog működni.
A kérdésed tipikusan olyan feladat, amire az Access 100-szor alkalmasabb, mint az Excel. És még makrót sem feltétlenül kellene írni hozzá. Szóval szerintem Access-szel kellene hozzáfognod, ha ez szóba jöhet egyáltalán.
"Még annyi kérdésem lenne ha ezt az ártáblázatot külön munkafüzetben akarom tárolni, az megoldható e?"
A végösszeget számoló képlet szempontjából megoldható, mert az FKERES függvény hajlandó dolgozni másik munkafüzetből származó adatokkal is. Viszont az adatérvényesítés szivacs, mert ő nem hajlandó.
Szóval, ha másik munkafüzet tartalmazza az adatbázist, akkor máshogyan kell megoldani, hogy csak a listában szereplő árucikkeket lehessen a cellákba írni. Erre momentán csak olyan ötletem van, ami makró kóddal operál, és egyébként nem túlságosan elegáns.
"Tudom annak egyidőben nyitva kell lennie."
Ez így, ebben a formában nem teljesen igaz, ugyanis zárt munkafüzetből is lehet adatokat kibányászni. De ezt csak az érdekesség kevéért mondtam.
"A lényeg hogy ha árajánlatot akarok készíteni akkor ne kelljen mindegyikben szerepelnie az ártáblának hanem egy közös munkalapból vennék le a lista értékeit."
Ezt a feladatot én legegyszerűbben így oldanám meg:
1. Tegyük fel, hogy a munkalapot (amelyet korábbi útmutatásom alapján elkészítettél) "Lista" a neve.
2. A "Lista" munkalapon marad minden úgy, ahogy most van, kivéve, hogy teszek rá egy gombot, ami egy makrót futtat le.
3. A makró átmásolja egy új munkafüzet első munkalapjára a "Lista" lapon elkészített árajánlatot, de csak az értékeket, viszont a képleteket, és az árucikkek adatbázisát nem.
4. Az új munkafüzetet szépen megformázza (fejléc, színek, keretek, betűméret, munkalap neve, stb.), majd pedig elmenti egy adott néven.
Kérdés persze, hogy szükséges-e az elkészített árajánlatokat eredeti, képletes formában is megőrizni, mert pl. utólagos módosításra van szükség, stb.
Ha igen, akkor a fenti ötletem ebben a formában nem jó.
Üdvözletem mindenkinek :) Segítségeteket szeretném kérni. Mivel tudom nem kis feladatot kérek, minden részmegoldásnak is nagyon örülnék. Végignéztem 1500 hozzászólást és nem igazán jutottam előre, no meg az Excel programozása sem az erősségem. Nem nőket akarok futtatni, csak gondoltam érthetőbb, mintha soroskő, élfóz, vízorr kifejezésekkel gyötörném a segítőket :) A kérés: Adott egy beviteli mező, ahol lenyíló listákon lehet kiválasztani az adatokat, kivétel a dátum. Ezen adatoknak kellene a kimeneti listában megjelenni úgy, hogy a vezérlőgombokkal is lehessen talózni stb... Szóval makró hegyeket kellene írni.
Még annyi kérdésem lenne ha ezt az ártáblázatot külön munkafüzetben akarom tárolni, az megoldható e? Tudom annak egyidőben nyitva kell lennie. A lényeg hogy ha árajánlatot akarok készíteni akkor ne kelljen mindegyikben szerepelnie az ártáblának hanem egy közös munkalapból vennék le a lista értékeit.
Amúgy meg az autoszűrőben van "tartalmazza" kritérium megadási lehetőség is. Rögzítsd le nézd meg mit csinál, de egyébként ez ugyanaz, mintha jokerkaraktert (pl *) használnál valahogy így: *valami*
Joker karakterek a szűrési kritérium megadásánál? (akár a makróban, akár manuálisan) Nekem van ilyen módon működő táblázatom, én így adtam meg a szűrés kritériumát:
Dim C As String C = "*" & Cells(1, 7).Value & "*" Selection.AutoFilter, Criteria1:=C
Ebben a formában nyilván nem működik, mert kitöröltem a felesleges sorokat
Az előző email címes kérdésemre köszönöm mindenkinek a válaszát kipróbáltam őket és működnek. Úgy vagyok vele hogy mindig lehet hibássan megadni úgyhogy ezek tökéletesek lesznek.
Van egy adatbázisom amiben vannak : Cikkszám , Megnevezés. Ezeket irányított szűrővel szűrőm egy cellába beírtak alapján ami tökéletesen működik. Viszont azon gondolkodom, hogy megoldható-e valahogy az, hogy amikor keresek akkor ne csak a szövek elejétől keressen hanem akárhonnan. Láttam már ilyet valahol ott úgy működött a dolog, hogy beítam pl: %valami és kidobta "kisvalami" és a "nagyvalami" is. Nem tudom mennyire érthető hogy mit szeretnék, de reméllem igen. Előre is köszönöm
1. Vedd fel a munkalap A oszlopába az árucikkeket, a B oszlopba a cikkek árát. 2. Legyen C1, D1 és E1 értéke rendre "mennyiség", "cikk" és "ár" (vagyis ez egy fejléc). 3. Jelölj ki a D2-től kezdve lefelé annyi cellát, amennyit akarsz (akár az egész oszlopot is). Ezután a menüből válaszd ki, hogy Adatok -> Érvényesítés. Az érvényesítési feltételben a Megengedve mező értéke legyen "Lista", a Forrás mezőé legyen "=A:A" (idézőjelek nélkül). Ezzel a kijelölt cellákra megszabtad, hogy értéküket csak az A oszlopban felsorolt értékek közül lehet kiválasztani. 4. Az E2 cellába írd ezt a képletet: =HA(HIBÁS(FKERES(D2;A:B;2;HAMIS)*C2);"";FKERES(D2;A:B;2;HAMIS)*C2) 5. A képletet terjeszd ki lefelé amilyen mélyen akarod. 6. Teszteld a megoldást úgy, hogy a C és D oszlopokba különféle értékeket írogatsz. 7. Esetleg az A és B oszlopokat el is rejtheted (Formátum -> Oszlop -> Elrejtés)
Nekem egy olyan választéklistát kéne csinálnom ami tartalmazza az árakat is. ha pl az előtte lévő mezőben van egy darabszám akkor miután kiválasztom a listából hogy pl kenyér akkor a következő cellában szerepeljen ezek együttes ára. kb így nézne ki:
persze a kenyér cellája egy legördülőmenü lenne amiben sokfajta áru van és ez tartalmazza nyílván valahogy az árakat is. Ezt nem tudom, hogy hogyan oldjam meg. :(
Most látom csak, hogy a másolásnál a fórum lenyelte a patternből a visszaper-jeleket. De gondolom az eredetit próbáltad a hibatkozott oldalon, sajnos az sem tökéletes.
Nyilván lehet tökéletest írni, csak a pattern szintaktikát kell megérteni, nekem nincs most éppen erre időm.
Kipróbáltam :) Meglehetősen jól szűr. Egy apróságot azért találtam. Azt tapasztaltam, hogy a "vala..ki@valami.com" típust (tehát a felhasználónévben két v. több pont egymás után) átengedi. Regisztráltam egy ilyesmi email címet a freemail-en. A freemail elfogadta, és megcsinálta. Egy másik freemail-es címről tudtam is oda levelet küldeni. A céges Exchange szerverünk azonban visszadobta azzal, hogy "Az e-mail cím formátuma nem megfelelő."
<i> Bár nem vagyok biztos benne, hogy elvileg hány @ szerepelhet az email címben... talán a "valaki@valami.c@om" vagy a "valaki@@valami.com" is szabályos email címek? </
Nem hiszem hogy szabályos, mert akkor lehetne ilyen e-mail cím: @@@@@@@.com vagy valaki@@@@@.com Ha több @ lenne, a mailserver nem tudná szerintem beazonosítani a felhasználó nevet és a számítógép azonosítót