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.
Van egy problémám az excellel! Van sok sok munakalpom és a végén egy összesítő! Na most az összesítőt probálom beprogramozni oszlopokra nézve! Azt már megtaláltam hogy a képlet második fele ne változzon ugye ez a $ jel. De a munkafüzet fele meg pont az ellenkezője, hogy nem akar változni pedig az kellene.
=Munka1!$B$3 ezzel próbáltam az egymás alatti 3 cellát átírtam =Munka2!$B$3 , =Munka3!$B$3 ezután kijelöltem mindet és úgy húztam a sarkánál fogva de nem írta be a munka 4, munka 5 hanem ugyanugy 1,2,3 at ísmételte!
Ezt ebben a formában nem fogod tudni makróval megoldani.
Max úgy tudnám elképzelni, hogy van egy userform, amin n darab beviteli mező. Azoknál meg lehet oldani, hogy 1 billentyű lenyomása után máshová kerüljön a fókusz.
Aztán ha mindbe írtál adatot, akkor automatikusan átmásolódik az egész a munkalapra. Vagy valami efféle trükk.
A szövegből oszlopok sem a legjobb megoldás, mert ha véletlenül megcsúszok a számok beírásával, nagyon nehéz visszaellenőrizni, hol tévedtem. Úgyhogy valahogy majd a makró lesz megoldás, bár ahhoz nem nagyon értek... Azért köszi
Igen azt tudom, de nekem olyan kéne, hogy mivel csak egy karakter kerül egy cellába, így amint lenyomok egy billentyűt (ezesetben 1-5-ig számot), minden egyéb gombnyomás nélkül ugorjon át utána a következő cellába.
A cellahivatkozásra állva és az F4-et nyomogatva mind a négy lehetőséget (nincs dollárjel; csak a sor abszolút; csak az oszlop abszolút; a sor és az oszlop is abszolút) végigzongorázod, így könnyebb lehet a dollárjelek kitétele.
Excel 2010-ben dolgozok és rengeteg kérdőívet kell bevinnem táblázatba. Egy-egy cellába egy szám kerül csak 1-5-ig.
Kérdésem, hogy meglehet-e oldani, hogy amikor leütök egy számot, egyből a következő cellába ugrik? Tehát hogy ne kelljen tab-ot vagy jobbra nyilat nyomni.
Keress rá az excel help-ben az abszolút referencia fogalmára. Ha jól értem a problémádat, akkor a kedvezmények!$D$3-szerű képletezésre lesz szükséged, de olvass utána, mert nem mindegy hova teszed a dollárjelet és hogy mennyit.
Excel2007-ben készítek egy táblázatot amiben rendeléseket szeretnék nyilvántartani. Kedvezményes árakat kell számolnia, a kedvezmények táblázatban külön munkalapokon vannak, a képletek ezeknek a celláira hivatkoznak (mivel itt szerepelnek a diszkont kódok és a rendelés módja).
A szükséges képlet megvan, minden működik rendesen.
Ezt a képletet kéne kb 200-300 sorban használnom.
Szeretnék sorozatot csinálni belőle, de ha a jobb alsó sarkánál fogva lehúzom, akkor nem csak azokat a celláknak a sorszámát növeli ami az aktuális sor száma (és nyilván ezt én is szeretném növelni), hanem azoknak a celláknak a sorszámát is amik a táblázatban lévő adatokra mutatnak.
Segítséget kérek. Excel 2003 alatt írok programot. De ezt Excel 2007 alatt kell majd használni, amit sosem programoztam.
A programot egy Excel2007 alatt készült táblázatban használom, amit konvertáltam. Így a konvertált fájl nagyrészt megtartja a 2007-es verzió tulajdonságait. Az ebbe bemásolt program legnagyobb részben rendben lefut, de beleütköztem egy eltérésbe: Az a sejtésem, hogy a 2007-es verzió a munkalapokat másképp kezeli, mint a 2003.
A konkrét zavar a következő helyen fordult elő: A Worksheets(2).Select után a munkalapváltás látszólag rendben megtörtént.
Az ActiveCell.SpecialCells(xlLastCell).Row parancs is rendben megtalálta az utolsó sort.
Viszont a Cells(sor, oszlop) parancs nem az aktuálisnak látszó munkalap cellájának adatát olvassa, hanem a munkalapváltás előtti lapot. Ellentétben a 2003-as verzióval, ahol ez a szándékaim szerint működik.
Tudnátok segíteni, hogy hogyan küszöböljem ki ezt az eltérést a 2007-es verzió alatt?
Kösz a dícséretet. De olyan sok munka nem volt vele. Beírtam a google keresőbe, hogy "excel currency adattípus" amire nem adott értelmes találatot. Aztán elhagytam az excelt, és a "currency adattípus" első találata az volt, amit bemásoltam.
Az igazság persze az, hogy egy mukkot nem értek belőle, csak sejtéseim vannak, hogy miről beszél, de ezek szerint hasznos volt:-)))
Én csak odáig jutottam a kutakodásaim során, hogy valszeg a pénzügyeseknek lehet otthonosabb a currency formátum. Hogy a feltöltést is gyorsítja, azzal értelemszerűen nem találkozhattam, mivel nem dolgozom ekkora adathalmazokkal. De az aggregálási eltérések már nekem is okoztak problémát, amikor az a=b-vel vezérelt eseményeim nem a várakozásaim szerint alakultak a 15-16 ik számjegybeli különbözőség miatt. Emiatt az ilyen vezérlések előtt magam is fixpontos vezérlést alkalmazok, amit általában a kerekítes a 10-ik számjegyre alkalmazásával szoktam elérni. (Makrót is írtam rá). Egy kicsit bosszantó, hogy ennek ellenére nem tűnt fel a kerekítéseim és a currency fixpontos adatábrázolása közti analógia.
Szóval, ha jól értem, gyorsabb, ha több milliárd adatot kell feldolgozni:-))) és pontosabb: "Egyszóval érdemes használni a money adattípust a relációs oldalon és a Currency adattípust a többdimenziós oldalon, mert ezzel gyorsíthatjuk a betöltéseinket. (Arról nem is beszélve, hogy a lebegőpontos számok aggregálása nem biztos, hogy konzisztens eredményt ad)" :-)))
Úgy látom nem szánt meg senki. Ezért fölvázolok neked itt egy egyszerű megoldást. Persze csak ha lehetséges. Mert ahogy leírtad, úgy megoldhatatlan. Ugyanis semmilyen cella alá nem helyezhető el egy teljesen kitöltött munkalap, mivel nem lesz hozzá elég hely. Az azonban minden további nélkül megoldható, hogy két kisebb tartomány közül az egyiket másolja oda az A1A2 feltételtől függően. Ehhez első lépésben kapcsold be a makrórögzítőt, majd manuálisan másold a kívánt helyre az egyik tartományt, és makró vége. Ez lesz a makró1. Majd ugyanezt csináld meg a másik tartománnyal. Ez meg a makró2 lesz. Ezután az egyik makró alá beírod a makró3-t. Ehhez Alt+F8 után a megjelenő makrólistából kijelölölöd az egyiket, és kattintasz a Szerkesztés gombra. Majd begépeled vagy bemásolod az alábbit:
sub makro3 ()
if Range(“a1”)>Range(“a2”) then makro1 else makro2
end sub
És kész. Az a1>a2 feltételt persze csak meghasaltam, mivel nem konkretizáltad. Te természetesen a saját feltételed írd az a1>a2 helyére.
****
Egyébként, ha a két másolandó tartomány egyforma nagyságú, akkor gyakran célszerűbb makró nélkül megoldani a feladatot az alábbi képlet végigmásolásával a potenciális területen: