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.
Jimmy the Hand es robbantomester, köszi szépen. A makróban lefut viszont ha manuálisan csinálom, akkor nem azt kapom, amit szerettem volna, hanem #HIV!, illetve 0. Mi lehet a gond?
Sziasztok! Van egy sok soros excel fájlom és az a gond, hogy ha keresni akarok benne valamit, akkor nem tudok, mert van benne egy csomó üres cella, mert ha az alatta lévő cella értéke ugyanaz, akkor nem töltötték ki, így a filter nem jeleníti meg azokat a sorokat, ahol üres cellák vannak. Hogyan lehetne úgy kitölteni az üres cellákat, hogy a felettük lévő legközelebbi teli cela értékét írja bele? 2007-es excelt használok, a makrókhoz sajnos keveset értek. Előre is nagyon köszi a segítséget!
Ez alapján: (Az Application.Volatile sort attól függően, hogy szeretnéd-e, hogy munkalapváltozáskor újragenerálódjon-e a szám vagy nem, hagyd benne vagy kommentezd ki, ezt én írtam bele, hogy próbálgatni lehessen az F9 billentyűvel)
'This function is used to simulate uniformly distributed random variables [0 1] excluding 0 and 1. Public Function alea() Randomize alea = Rnd() If alea = 1 Then alea = 0.999999999999 End If If alea = 0 Then alea = 1 - 0.999999999999 End If End Function
'Simulate a Poisson distributed randome variable with parameter lambda Public Function Randpoisson(ByVal lambda As Double) As Double Dim N As Integer Dim temp As Double Application.Volatile
temp = alea()
N = 1 While (temp > Exp(-lambda)) N = N + 1 temp = temp * alea() Wend Randpoisson = N - 1 End Function
Élek a gyanúperrel, hogy Ysty azért mondja, hogy nem ez a gond, mert a beállított és a látott kép között olyan nagy az eltérés, hogy azt nem gondolja magyarázhatónak az eltérő "felbontással".
Miközben én vagyok az első aki bevallja, hogy fogalmam sincs mi csinálja a problémát, azért megpróbálkoznék a cella-merge-ölés feloldásával majd ezután pozicionálással. Nem ez lenne az első eset, amikor cellák összeolvasztása megkeveri a matériát...
A normál nézetben teszed középre a képet, ami a monitor felbontásához igazodik. A nyomtatási nézet a printer felbontásában mutatja a lapot. Ezért kell, amennyire lehetséges, a nyomtatási nézetben igazítani, ahol csak a vízszintes igazításon tudsz módosítani.
A link másik végén ott van feketén-fehéren leírva, hogy az Analysis Toolpack tudja amire neked szükséged van. Az AT-t adják az excel-lel együtt, vagyis neked is van.
Mi a probléma akkor? Mert ennél többet én nem látom, h. hogy lehetne segíteni...
A nyomtatási kép a számítógépre telepített nyomtató felbontásának (többé-kevésbé) megfelelően mutatja a képet, ezért nem egyezik a normál módban megjelenítettel.
A vízszintes elrendezést a nyomtatási képen módosíthatod. Bekapcsolod a margókat, azokat elhúzva tudsz állítani az oszlopok szélességén. Sajnos a sorok magasságát csak a normál nézetnél tudod átállítani.
Segítsetek! Excel 2007-ben egyesítettem néhány cellát, beszúrtam egy képet, beigazítottam középre, beállítottam, hogy: "Áthelyezés és átméretezés a cellákkal együtt", úgy is tűnik, hogy oké, de a nyomtatási képben nem a cellában van a kép, illetve a következő megnyitáskor sem... Ilyenkor mi van?
Köszönöm szépen, az idő szűkössége miatt az irányított szűrés, egyedi rekordok megjelenítését használtam (amit Te is ajánlottál, elsőnek), és ez működik, és kellően gyors is! :)
Azt csinálja, hogy Collection-t alkalmaz, ami alapból kiszűri a duplikációkat.
Gondolom a fenti kódot masszírozni kell egy kicsit, hogy működjön a céljaidnak megfelelően, de ezek a kisérletezések azok amik tágítják az ember horizontját!
Mondjuk, ha ezt az utat választod, akkor ne feledd velünk is megosztani a kódot amit kidolgozol, hagy tanuljunk mi is.
Vagy megpróbálhatod használni a FREQUENCY függvényt is a munkalapon.
- valahova ahol nem látszik a munkalapon VBA-ból beteszed a FREQUENCY függvény adott elemre érvényes értékét,
- csak azokat az értékeket olvasod be, ahol a FREQUENCY függvény értéke NEM nulla (a FREQUENCY nulla értéket ad vissza egy szám nem első előfordulásakor),
- majd végül törlöd a FREQUENCY adatokat, szintén kódból.
Továbbfejlesztettem az előbbi képletet. Ez megmondja hogy az A1-be írt dátum ünnep v. hétvége más esetben kiírja, hogy az adott hónap hányadik munkanapja. Tartalmaz egy "ünnepek" nevezetű tartománynevet, amelyet neked kell kijelölnöd és feltöltened az ünnepnapokkal.
Íme:
=IF(OR(WEEKDAY(A1;2)>5;NOT(ISNA(MATCH(A1;ünnepek;0))));" hétvége v. ünnep";NETWORKDAYS(DATE(YEAR(A1);MONTH(A1);1);A1;$G$2:$G$6))
Cellákból töltök fel egy Combobox-ot adatokkal (több ezer sorról van szó). Ugyanazt az értéket ami már szerepel a Combobox item-jei közt, azt nem akarom hozzáadni. A mostani makróm nem is adja hozzá, mert hozzáadás előtt leellenőrzi az összes item-et.
A probléma az, hogy több ezer sorról van szó, ha mindegyik különbözik, akkor folyamatosan ellenőriz mindent, ezért nagyon sokáig tart a feltöltés.
Tud valaki erre egy gyorsítást, vagy valami egyszerűbb megoldást?
A kód:
For i = 2 To usor If Userform1.ComboBox1.ListCount = 0 Then Userform1.ComboBox1.AddItem Cells(i, Oszlop) Adat(i) = Cells(i, Oszlop) Else For j = 2 To Userform1.ComboBox1.ListCount + 1 If Cells(i, Oszlop) = Adat(j) Then Talalat = True Exit For End If Next j If Talalat = False Then Userform1.ComboBox1.AddItem Cells(i, Oszlop) Adat(i) = Cells(i, Oszlop) End If End If Talalat = False Next i
A networkdays függvény paraméterei a Kezdő_dátum (esetedben a hónap elseje), a Vég_dátum (az a nap, amiről meg akarod tudni, hányadik munkanap a hónapban), és az ünnepek. Ez egy, akár névvel ellátott tartomány, amelyik a kérdéses időszakban lévő ünnepnapok dátumait tartalmazza. Természetesen érdemes az egész évi ünnepek dátumát beleírni.
Az előbb leírt képlet - =NETWORKDAYS(DATE(YEAR(A1);MONTH(A1);1);A1) - nem veszi figyelembe az ünnepnapokat. A NETWORKDAYS fv utolsó argumentumában kijelölhetsz egy tartományt, amely az évben előforduló ünnepnapokat tartalmazza és ekkor ezeket is figyelembe veszi a számoláskor.