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.
Excel 2003-ban készítettem egy kimutatást, abból egyszerűen csináltam egy kimutatás diagramot, csodásan működik.
Excel 2007-ben megnyitva viszont nagyon sz.r lett: - A külön fülön levő kimutatásdiagram, nem az lett, mert nincsenek rajta a kimutatás szűrők (azaz a feltételelek), így aztán át kell menni a kimutatásra, szűrni, majd vissza a diagramra, hát ez így nagyon vacak! - Ha Excel 2007-ben készítek a kimutatásból diagramot, akkor meg nem külön fülre teszi, pláne nem szűrőkkel, így meg aztán lehet kerülgetni a kimutatást, h a diagram is jól látszódjon.
Ezt hogy bírták így elrontani, nem értem, vagy csak én nem értek hozzá?
A workbook kódlapjára rakd ezt a kódot. Teendők: változtasd meg a strsheetname="sheet1" sort úgy, hogy a sheet1 helyére a te munkalapod nevét írod. Pld. ha az autoszűrést tartalmazó munkalapodnak az a neve, hogy leltár, akkor a kód helyesen úgy néz ki, hogy: strsheetname="leltár"
Ez a kód azt csinálja, hogy minden nyomtatás előtt automatikusan beállítja a fejlécet a megfelelő szövegre 15-ös betűtipussal. Ha nagyobbat akarsz akkor a kódban lévő két 15-öt cseréld ki arra a számra, amit betűméretnek szeretnél. Mindkettőt!
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim intVisible As Integer Dim rng As Range Dim strSheetname As String
strSheetname = "Sheet1"
For Each rng In Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Areas intVisible = intVisible + rng.Rows.Count Next rng
intVisible = intVisible - 1 'A fejléc nem számít bele
Sheets(strSheetname).PageSetup.CenterHeader = "&15 A lista tartalmaz " & intVisible - 12 & " elemet. &15"
Az új kód a betűméret változtatás nélkül: ****************************************
Sub ChangeHeader()
Dim intVisible As Integer Dim rng As Range
For Each rng In Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Areas intVisible = intVisible + rng.Rows.Count Next rng
intVisible = intVisible - 1 'A fejléc nem számít bele
With ActiveSheet.PageSetup .LeftHeader = “” .CenterHeader = "A lista tartalmaz " & intVisible-12 & " elemet." .RightHeader = “” .LeftFooter = “” .CenterFooter = “” .RightFooter = “” End With End Sub
Azt meg lehetne csinálni, hogy azt a számot írja ki, hogy mennyivel nagyobb, mint 12? És úgy, hogy a szám ne a sor végén legyen? És lehet-e betűméretet növelni? Próbálkoztam, de nem sikerült...
Pl.: A lista tartalmaz .... (autoszűrőzött eredmény mínusz 12) elemet
köszönöm szépen a válaszokat és főleg, hogy ilyen gyorsan jött
az első kérdésemmel kapcsolatban azért szenvedtem, mert én fordítva akartam módosítani, tehát kettőspontosra akartam módosítani a simát :D Ebből látszik, hogy amikor sietne az ember, nem tud józan paraszti ésszel gondolkozni :D
Ha már nem frissítettem az előbb: A nagy lista mellé készítesz egy oszlopot a kis listából így: =HELYETTE([kicsi.xls]munkalapneve!A2;":";""), és ezt lefelé folytatod. Mind a két táblázat legyen megnyitva.
Most már egymás mellett vannak, vagy a nagy lista elemei mellé írsz egy darabtali függvényt, ami mutatja, hányszor szerepel az adott elem a kicsiban (praktikusan 0 vagy 1), és aszerint rendezel, vagy feltételesen formázod ugyancsak a darabteli függvénnyel.
Az a lényeg, hogy a nagy listában ki kell jelölnöm azokat az eszközöket, amelyek a kicsiben benne vannak. Amik pedig nincsenek benne, azokat az eszközöket kell majd a késbbiekben begyűjtenem.
A lépések: 1.) a MAC címek azonos formátumra hozása 2.) egyezőségek azonosítása
Megoldás:
1.) SUBSTITUTE függvény. Ha pld a 00:0X:08:Y0:XY:88 formátumú MAC cím a B1 cellában van, akkor el tudod távolítani a kettőspontokat a következő módon: =SUBSTITUTE(B1,":","")
2.) VLOOKUP függvényt teszel a nagyobb lista minden sora mellé, hogy keresse meg van-e egyező MAC cím a kisebb listában. Ha megadod a két táblázat szerkezetét, akkor a VLOOKUP megírásával is szívesen segítünk. Mit akarsz látni ha egyezés van? A kis lista egy elemét (pld felhasználónév) vagy csak annyit, hogy "Van kislista elem"?
3.) akár még Feltételes formázással is megjelölheted a nagy lista azon elemeit amiknek nincs kislista párjuk (de ehhez is kell mindkét lista szerkezete)
van két táblázatom, az egyikben több ezer sor, a másikban kb 1000 sor, a feladatom az lenne, hogy megnézzem a kisebb lista szerepel-e a nagyobbik listában.
A gond csak az, hogy egy oszlop egyezés van a kettőben, ami viszont MAC cím, és más formában van két listában. Az egyikben 000X08Y0XY88, míg a másikban 00:0X:08:Y0:XY:88.
A kérdésem az, hogy lehet módosítani az első formátumot a másodikra, hogy egyezést találjon az excell? Illetve, ki lehet valahogy íratni, vagy jelöltetni a nagy táblában, hogy melyek azok, amelyek nincsenek benne a kicsi listában?
Ma volt egy érdekes hiba, amire nem tudtam mit mondani. Office 2002 van a gépen, és amikor egy hálózati meghajtón található XLS-re kattintott kétszer a felhasználó, akkor elindult az Excel, csak éppen az állomány nem jelent meg benne. Csak egy szürke mező látszott, alul pedig kiírta, hogy Kész, és semmi más nem történt. Ugyanakkor - illetve utána - a Megnyitás funkcióval már sikerült megnyitni az állományt, és látszott rendesen. Viszont amikor újra kipróbáltuk, azaz becsuktuk az Excelt (még a Feladatkezelőben is ellenőrizve, hogy már nem fut), és újra megpróbáltuk kettős kattintással megnyitni az XLS-t, akkor ismét ugyanez történt. Látott már valaki ilyet? Mi lehet a gond, illetve a megoldása? A gépen Windows XP van, SP3-mal.
Nem tom. RESZOSSZEG? Ha a RESZOSSZEG(102,A:A) függvényt használod, akkor a függvény maga ne legyen az A oszlopban (különben beleszámolódik) és vonj le az eredményből 1-et (a fejléc miatt).
Na, szóval itt van. A makrót minden nyomtatás előtt le kell futtatni. A kért adat a középső fejlécbe kerül, minden más fej- és lábléc üressé válik. Ha máshol van szöveg akkor a releváns részt érdemes kivenni a kódból.
Sub ChangeHeader()
Dim intVisible As Integer Dim rng As Range
For Each rng In Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Areas intVisible = intVisible + rng.Rows.Count Next rng
intVisible = intVisible - 1 'A fejléc nem számít bele
With ActiveSheet.PageSetup .LeftHeader = “” .CenterHeader = "A szûrés utáni sorok száma: " & intVisible .RightHeader = “” .LeftFooter = “” .CenterFooter = “” .RightFooter = “” End With End Sub
Sub ChangeHeader() With ActiveSheet.PageSetup .LeftHeader = “” .CenterHeader = "" .RightHeader = “” .LeftFooter = “” .CenterFooter = “” .RightFooter = “” End With End Sub
Az idézőjelek közé kell betenni a kiirandó tartalmat. Arra tuti van valami függvény, hogy az autoszűrt sorok számát kiszámold, csak én nem tudom. Szóval ha jár erre valaki, aki tudja a megfelelő kódot erre az egy adatra, akkor azt a kódot kell betenni a megfelelő idézőjelek közé.
Delila, aki feketeöves a change események kódolásában, lehet még azt is meg tudja csinálni, hogy az autószűrő alkalmazásakor automatikusan lefussan a megfelelő kód.