Köszönöm ki fogom ezt próbálni. Viszont a korábbi makróval kapcsolatban nem jutok dűlőre. Annyit már elértem, hogy a két cella tartalmát szöveg típusú változóba teszem. Akkor nem nagyon kapok típus hibát. Viszont ha a munkafüzet sheetchange eseménynél okoz problémát de a munkalap change nincs probléma de akkor állandóan másolni kell az eseményt ha új táblázatot csinálok
Ahhoz, hogy egy lapra lépéskor elvégződjön valamilyen művelet, a ThisWorkbook laphoz kell rendelned egy eseményvezérelt makrót, a Workbook_SheetActivate-t.
Például ha a lapra lépéskor a B oszlop értékéből ki akarod vonni az A oszlop értékét a második sortól kezdve, akkor a makró
Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim usor As Long
usor = Range("A" & Rows.Count).End(xlUp).Row Range("C2:C" & usor) = "=B2-A2" End Sub
Mint látod, a lapra lépéskor meghatározzuk az aktuális lap A oszlopának utolsó kitöltött celláját (usor), és a képletet a második sortól az utolsóig íratjuk be.
A füzetben lévő nagyon sok képlet lassíthatja a feldolgozást, ezért a képlet beírása után a helyükre beilleszthetjük az értéküket.
Range("C2:C" & usor).Copy Range("C2").PasteSpecial xlPasteValues Application.CutCopyMode = False 'másolási mód megszüntetése Range("A1").Select 'az A1 cellára lépünk. Nem fontos, de megszűnik a C2:C(usor) kijelölése.
Ahhoz, hogy egy lapra lépéskor helyesen: Ahhoz, hogy MINDEN lapra lépéskor...
Szevasztok Office 2016-t használok, és régebbi táblázatoknál IV az utolsó oszlop, amit használni, formázni tudok. A megnyitott új táblázatoknál nincs ilyen probléma. Van-e erre valami megoldás? A válaszokat köszönöm dönci5
Sziasztok. Előszöris Boldog Új Évet 2016-ra. Hogy kell összeállítani a SUMIF() -függvényt? Erre gondoltam "=SUMIF(R[-" & változo & C:R[-1]C, "feltétel")" Nekem ez valahogy nem áll össze. Előre is köszönöm. Imre
Szia Ne haragudj, hogy zavarlak, de azt szeretném kérdezni, hogy az OFFICE 2016 eredeti változat, vagy nem és honnan? [email protected]. Előre is köszönöm. Imre
Egyáltalán nem haragszom. Ha az eredetin azt érted, hogy vásároltam-e, nos nem, de aktiválva van, és kifogástalanul működik.Már nem tudom honnan, de némi turkálással nem gond beszerezni.
Sziasztok. Lenne egy kérésem. A feltételes formázásnál pontosan mit jelent a "Leállítás, ha igaz" opció. És ezt mikor kell bejelölni, mert működik mindenkét esetben ha jelölve van, vagy nincs. SetFirstPriority és ez az tulajdonság? Előre is köszönöm.
Van esetleg valami gyorsgomb kombináció a feltételes formázás szabálykezelő behívására?
Kiteheted az ikonját a Gyorselérési eszköztárra.
Gyorselérési jobb szélén a legördülőből kiválasztod a További parancsokat. A Választható parancsoknál a Minden parancsot hívd be. A megjelenő listában keresd meg a Feltételes formázást, és a Felvétel gombbal másold át a jobb oldali listába. Ott a fe-le gombokkal meghatározhatod a helyét a többi ikon között.
Így mindig kéznél lesz, bármelyik menü látszik éppen a menüszalagon.
Excel makróval való mentési problémám lenne! Szeretném új, .XLS formátumban elmenteni egy Excel munkafüzet egy konkrét lapját, abba a mappába, ahonann az alap munkafüzet megnyitásra került, úgy hogy a lapon szereplő értékek értékbeillesztéssel kerüljenek át az új lapra. Szerény tudásom alapján az alábbi makrót alkottam, de sajnos nem működik. Generálja az új lapot, de aztán hibával leáll!
WST.Select WST.Name = "Az új név" Range("A1:J112").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("A1").Select ActiveWorkbook.Save ActiveWorkbook.Close Workbooks(neve).Activate End Sub
Előre is köszi a segítséget!
Sheets("másolandó lap neve").Copy Cells.Copy Range("A1").PasteSpecial xlPasteValues ActiveWorkbook.Save ActiveWorkbook.Close
Az első sor átmásolja egy új füzetbe a lapot, és az új füzetet teszi aktívvá. A cells.copy másolja az összes cellát, a köv. sor beilleszti az értéket. A két utolsó ment és zár.
1: Nekem . XLS formátumban kelle az új munkafüzet. Jelenleg .XLSX-ként menti. 2: A számítógép Dokumentumok mappájába teszi az új munkafüzetet, Nekem az kellene, hogy abba a mappába mentse, amelyikben az eredeti munkafüzet található! Illetve még egy kérdés. Hogyan tudom ugyanebben a makróban megadni az új munkafüzet nevét?
Kis segítségre lenne szükségem. Szeretnék megnyitni egy új excel munkalapot, majd abból adatokat importálni. A megnyitás sikerült, de sajnos nem tér vissza az eredeti munkafüzetbe, hogy ott az adatokat beillessze. Mit csináltam rosszul?
Melyik füzetből melyikbe akarsz másolni? Az eredetiből (a makrót tartalmazóból) "Az új munkafüzet neve" nevűbe, vagy fordítva? Melyik területet a másik füzet melyik területére?
Az újonnan ("Az új munkafüzet neve") megnyitott munkafüzetből akarok másolni adatokat az A, B, C oszlop 8. sorától kezdődően, addig, amíg a sorok adatokat tartalmaznak, és ezt az adathalmazt szeretném beilleszteni az eredeti (a makrót tartalmazó) munkafüzet, D10 cellájától kezdődően, lefelé, a D, E, F oszlopokba.
Sub Masolas() Dim utvonal As String, WSE As Worksheet Dim usor As Long
Ismét segítségre lenne szükségem makróval kapcsoltban. Szöveges adatok találhatók egy munkafüzet G10-G69-es tartományában. Maximum 3 féle adatról van szó, (Mondjuk nevekről) de teljesen összekeverve vegyesen. Szeretnék ezek közül mindegyikből egyet-egyet(természetesen különbözőeket) kiválogatni, és az adott munkafüzet B6-B8-as celláiba másoltatni. Tudom, hogy képlettel ez teljesen jól megoldható, de én mindenképp makróval szeretném csinálni. Előre is köszi!
Nem nagyon értem, ha 3 féle adat van a G oszlopban, akkor miért kell hármat választani közülük véletlen szerűen? Csakis ugyanazt a hármat választhatod minden esetben.
Sub Harom() Dim sor As Integer, ide As Integer
ide = 6 Do While ide < 9 Ujra: sor = Round(Rnd() * (69 - 10) + 10, 0) If Application.WorksheetFunction.CountIf(Range("B3:B6"), Cells(sor, "G")) = 0 Then Cells(ide, "B") = Cells(sor, "G") ide = ide + 1 Else GoTo Ujra End If Loop End Sub
Ügyelj, hogy az Ujra címke a sor elején legyen. Nagy kár, hogy itt nem lehet tabulátorral tagolni a bemásolt makrót.
Bocsi: Én nem fogalmaztam egyértelműen. Tehát. Az oszlopban maximum 3 féle adat szerepelhet(de lehet egy vagy két féle is). Azt szeretném, hogy ez kerüljön föl a B6-B9-es cellákba. Ha csak egy féle van, akkor egy, ha kettő, akkor 2 és így tovább. Természetesen mindegyikből csak egy, úgy hogy mindenféleképp a B6os cellában induljon. Az is fontos még, hogy az legyen a B6-os cellában, amelyik az oszlopban is feljebb van, aztán a B7-ben a következő már ettől különböző adat és így tovább. Remélem így már egyértelmű. Előre is köszi. Utoljára szerkesztette: Storey, 2016.03.15. 16:10:23
Erre való a speciális szűrés. A G9-be írj címsort, amit másolsz a B5-be. Beállsz a G9-be, majd hívod az Adatok | Rendezés és szűrés | Speciális menüt. Paraméterek: Más helyre másolja, Listatartomány G9:G69, Hova másolja: B5, Csak az egyedi rekordok megjelenítése.
Sajnos ezzel egyáltalán nem boldogulok. Van amikor két ugyanolyan adatot 2x ír be, máskor egyszer sem írja be, és nem is tudom automatikusan elindítani, úgyhogy más megoldást kell keresnem.
Sub Szures() Range("B6:B8").ClearContents Range("G9:G69").AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=Range("B5"), Unique:=True Range("B5:B8").Interior.ColorIndex = -4142 End Sub
Egy másik megoldás, ahol a B5:B8 tartományt másoljuk a CC1:CC4-be, majd a szűrés végrehajtása után innen illesztjük be a B5:B8-ba az eredeti formátumot.
Sub Szures() Range("B5:B8").Copy Range("CC1") Range("B6:B8").ClearContents Range("G9:G69").AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=Range("B5"), Unique:=True Range("CC1:CC4").Copy Range("B5").PasteSpecial xlPasteFormats End Sub
Ennek továbbra is az a baja, hogy ha csak egy, vagy két féle érték van az oszlop soraiban, akkor az egyikből kettőt tesz be (és nem mindig van 3 féle adat. Lehet egy vagy kettő féle is, ez változó). Másik probléma még, hogy amikor másolja az adatokat sajnos az alatta lévő sorokban lévő dolgokat is törli, és azt nem kellene. Mindenesetre köszi!
Sziasztok! Makróval kapcsolatos kérdésem lenne: egy autószűrővel leszűrt listán hogy tudok egy ciklust végig futtatni ami csak a látható sorokból olvas ki vagy módosít egy cellát?
Az A1:A1000 tartomány szűrt adatait vizsgálja, a látható cellák hátterét pirosra festi.
Sub Szurt_adatok() Dim sor As Long
For sor = 1 To 1000 If Rows(sor).Hidden = False Then Cells(sor, 1).Interior.Color = vbRed End If Next End Sub
Igazad van, elég, ha a szűrt állomány tagjain megy végig. Az A1 címsor, azért indítom A2-ből.
Sub Szurt_adatok() Dim ter As Range, CV As Range
Set ter = Range(Range("A2"), Range("A" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible) For Each CV In ter Range("B" & CV.Row) = 2 * CV Next End Sub
Köszi. Erre gondoltam. Csak ez a For Each megoldás nem jutott eszembe.
Sziasztok. A gyakoriság() nevű függvénnyel kapcsolatban kérdeznék. Van valamilyen szempont/támpont amely szerint a csoport tömb elemeit ki lehet választani? mert nekem sajnos mindig elég nehéz meghatározni az elemeit. Előre is köszönöm.
Sziasztok! Adva van egy vízszintesen egyesített cellám, mondjuk A és C oszlop között az 1. sorban. A cella tartalmaz értéket. Ha az A1-es cellára hivatkozom, akkor az egyesített cella értékét kapom meg. Viszont ha a B1-re, vagy C1-ra (vagy bármi más későbbi oszlopra) hivatkozok, akkor már 0 értéket kapom eredményül. No most a problémám, hogy az egyesített cella bármely részére is hivatkozok, én az egyesített cellák tartalmát szeretném megkapni. Erre van valami megoldás-ötletetek? Előre is köszönöm!
Az egyesített celláknál mindig az első cellából lehet az értéket kinyerni, ez esetben ez olyan mintha az A1 "letakarná" a B1, C1 cellákat amikben amúgy nincs érték. Ha jól értem és azt szeretnéd hogy a B1, C1 re hivatkozva is kapj értéket, szerintem az nem fog menni képlettel.
Én is erre jutottam, csak bíztam, hogy hátha valaki más okosabb nálam. VBA-ban biztos voltam, hogy megoldható, csak azt nem szívesen csinálnám. De aztán lehet, hogy ráveszem magam. ;o)
.. jobb fölső sarok "..." alatt van a download link az első sorban vannak az értékek a második csak azt mutatja, hogy melyik az utolsó olyan oszlop ahol érték volt a harmadik pedig a 2. sor értékei alapján írja ki az első sorból vett értéket Utoljára szerkesztette: norbre, 2016.05.11. 13:39:41
Köszi. A példám azért jócskán le volt egyszerűsítve, sajnos segédtábla kilőve, egy 80 (rendszámok) x 500-as (dátumok) táblából dolgozom, ahol random össze vannak vonva 2-5 cellák némely sorokban. (ahol az adott rendszám több napig dolgozik egy fuvaron) Én adott rendszám + dátum kombináció értékét keresem index + hol.van függvényekkel operálva. És itt jött az elő, hogy a több napos túrák esetében csak az első napra ad információt. És ráadásul abszolút alapszintű felhasználják a táblát, a lehető legkevesebb karbantartandó dologra van szükségem. XD Szóval úgy néz ki, egyszerűen sehogy sem megoldható... Köszi mégegyszer minden gondolkodásod! :)
Hali! Na, kihívások a köbön. :) Az alábbi képletem van: INDEX('[NK konti vezénylés.xlsx]2016'!$1:$1048576;HOL.VAN($B4;'[NK konti vezénylés.xlsx]2016'!$C:$C;0);HOL.VAN($V$2;'[NK konti vezénylés.xlsx]2016'!$2:$2;0)) A C:C oszlopban rendszámok vannak, a 2:2 sorban pedig dátumok
Viszont a C:C oszlop nem fix, mert a 19.héten a B oszlop, a 20. héten a C, a 21. héten a D oszlop, és így tovább. Hogy tudom a HOL.VAN függvényben a tábla paramétert dinamikussá tenni úgy, hogy az egész önállóan változzon annak függvényében, hogy egy külső cellában milyen dátumértéket adok meg? Tehát igazából a $C:$C rész kellene cserélnem valahogy dinamikusra...
Valakinek valami tipp? Ezt is képlettel, VBA nélkül kellene megoldani....
Végülis azzal oldottam meg, hogy abban a táblában, ahol a keresendő értékek vannak hetenként oszlopokban, ott bevezettem egy segédoszlopot, amire hivatkozik a képletem, és ami fkeres + hol.van fv-ek segítségével mindig felveszi a keresett hét értékeit. ;o)
Fura hibát észleltem. A bankomtól minden hónapban le szoktam menteni a számlatörténetet excel-be (.xls). Eddig mindig sikerült, de ebben a hónapban nem megy. Illetve letölti, de csak egy üres, szürke, lapfülek nélküli fájlt tölt be és a fenti parancsok is inaktívak. Sőt, az előző hónapokban lementettek is így töltődnek be, pedig azok eddig jók voltak. Ha elküldöm őket gmail-en, majd megkapom, ott a gmail meg tudja helyesen nyitni. Más .xls fájl működik. Előző a hónapban nem volt Office frissítés(tudtommal) ami bekavarhatna. Két itthoni gépen próbáltam, ugyanaz a hiba. W7 Pro-t használok és Office 2010-et.
Köszönöm, lalakov
A bank (BB) a hunyó. Utoljára szerkesztette: Delila1, 2016.08.02. 06:39:56
Hello, excelben olyat meg tudok oldani, hogy van egy sorom amiben ki vannak toltve oszlopok ezeket le szeretnem zarni es nyitva maradnak csak az editalhato oszlopok ez eddig ok amit viszont szeretnek, hogy ha valaki hozzaad + egy sort akkor a fix oszlopok ott is ottlegyenek szoval ne egy ures sor keruljon oda. Eleve mar sort nem enged berakni ha le van zarva a sheet. Koszi
Tiszteletem az excel isteneknek!
Kérdéssel fordulnék hozzátok. Van egy szép táblázatom nagyjából 1.200 cikkel. Van ebben egy termék, valamint az, hogy mennyi a termék darabsúlya. Ez a szám azonban egy cellában van a termék nevével. Hogy tudnám egy külön oszlopba tenni a darabsúlyokat? 2007-es excel van csak a cégnél legálisan, szóval ezzel tudok operálni. A táblázat nagyjából így néz ki:
Nézd meg a Szövegből oszlopok menüpontot, az segíthet.
Ugorj neki újra a feladat megfogalmazásának, mert nem világos, mit szeretnél. Valószínű, hogy más sem érti, azért nem kapsz választ. Használd a pont és vessző billentyűket. Ezekkel sem kerül többe a leírás, viszont növelik az érthetőséget. Utoljára szerkesztette: Delila1, 2016.08.17. 14:21:00
Ami kékkel van az állandó szeretném ha minden sorba ugyan az lenne es persze ne legyen módosítható. Ami üres oda lehet csak írni. Amit szeretnék, hogy ha valaki hozzáad + sort akkor az a + sor ugyan úgy nezzen ki mint a képen latható masodik sor. Ezt meg lehet oldani excelben, vagy csak másolással oldható meg? A sor hozzáadásnál arra gondolok mikor jobb eger gombal a sor elején lévo számra kattintva kivalasztom az insert-et. Remélem, hogy már érthetőbben fogalmaztam :)
A meglévő adataidat alakítsd táblázattá (a táblában állva Beszúrás | Táblázatok | Táblázat). Az A3 képlete legyen =A2, ugyanígy a D3 és F3 is hivatkozzon a fölötte lévő cellára. Add meg a színeket. A táblázattá alakítás azt teszi, hogy újabb sor bevitele esetén az új sor örökli a fölötte lévő sor képleteit, formátumait.
Most jelöld ki azokat az oszlopokat, ahova írhat a felhasználó. Cellaformázás, Védelem fül. Vedd ki a pipát a Zárolt négyzet elől. A 3 oszlopod maradjon zárolt. A védelem akkor lép életbe, mikor levéded a lapot. Lapfülön jobb klikk, Lapvédelem. Ott érdemes kivenni a pipát a Zárolt cellák kijelölése négyzet elől, hogy a zároltakra rá se tudjanak klikkelni. Jelszót is adhatsz, ami a lapvédelem feloldásához kell majd, anélkül bárki feloldhatja.
Érdeklődnék, hogy exbeleben, hogy lehet megoldani hogyha valaki kimásolja az eredeti munkalapot akkor a másolaton szereplő cellák színé is megváltozzon. PL. a táblázatomnak a cellák színe most zöld azt szeretném elérni hogyha áthelyezés vagy másolással új munkafüzetre parancsal valami átmásolja a munka 1 munkalapomat akkor a cella színe legyen piros a másolton. Ja és fontos, hogy ne makróval legyen megoldva. Előre is köszi a segítséget
Beviszed egy cellába az =CELLA("filenév") függvényt. Ennek az eredménye a füzet útvonala, a fájl neve kiterjesztéssel, és az aktuális lap neve, pl. C:\Mappanév\[Próba.xlsx]Munka1 Ezt most csak azért írtam be, hogy a feltételes formázásnál innen tudjam másolni a függvény eredményét.
A lapod celláira feltételes formázást adsz: =CELLA("filenév")<>"C:\Mappanév\[Próba.xlsx]Munka1" és beállítod a piros hátteret. A cellába írt függvényt törölheted.
Nyomtatási problémám van. Be van állítva a nyomtatási terület, be van állítva, hogy 1 oldal széles/magas legyen, be vannak állítva a margók, mégsem tölti ki teljesen a margókig rendelkezésre álló területet. Tudja valaki, hogy ez miért van és hogy lehet ezen segíteni?
Ott az eredeti méret 83%-a nem játszhat bele esetleg? Próbáld átállítani másra, mondjuk pont 100-ra
A rohadék azért csinálja mert be van állítva a "Fent ismétlődő sorok"-nál egy terület.. amint kiveszem máris jó!! Viszont nekem meg szükségem van erre az ismétlődésre.. tipp valakinek a megoldásra?
Normál nézetben látszanak a vízszintes és függőleges oldaltörések szaggatott vonalakkal. Addig szélesíts az oszlopokon, és magasíts a sorokon, míg kitöltik ezt a körülhatárolt rész.
Ezt is próbáltam, de az a baj, hogy ez csak egy sablon, és mindig más adatok kerülnek bele, így az olvashatóság miatt változhat a sorok és oszlopok mérete :/
Sziasztok! Egy kis segítséget szeretnék kérni. Van egy táblázatom amiben termékek szerepelnek Pl: ACUAISS HIALURONSAV HIDRATÁLÓ SZEMCSEPP - 15 ml Egyik oszlopban a név másikban a kiszerelés. Összefűz függvénnyel megoldható, hogy egymás mellé kerüljenek az adatok. Viszont van olyan amikor a termék neve mellett ott van a kiszerelés is, így ott ez a függvény nem használható. Meg lehet azt adni valahogy az excelben, hogy amikor a termék nevében szerepel a kiszerelés akkor ne használja az összefűz függvényt amikor nem szerepel akkor meg igen. Nem egyenként szeretném módosítani hanem tömegesen. Talán van valamilyen ha függvény meg valami ami figyeli a tartalmat. Előre is köszi a segítséget
Ahhoz hogy ez működjön, a kiszerelésre valamilyen egyértelmű azonosítás kell.. pl mindig " - " (szóköz kötőjel szóköz) van a megnevezés és a kiszerelés között?
Function kiszerelés(cella As Range) Dim b As Integer, f As Boolean
f = False For b = 1 To Len(cella) If IsNumeric(Mid(cella, b, 1)) Then f = True Exit For End If Next If f Then kiszerelés = Left(cella, b - 1) Else kiszerelés = cella End If
End Function
A füzetedben Alt+F11-re bejön a VB szerkesztő. Bal oldalon kiválasztod a füzetedet, majd Insert menü, Module. Jobb oldalon kapsz egy üres felületet, oda másold be a fenti makrót.
Vegyük, hogy a füzetedben az egyik lapon az A oszlopban vannak a megnevezések, és a B-ben a kiszerelések (már ahol külön vannak) Címsort feltételezve a C2 képlete legyen =kiszerelés(A2). Ez beírja a megnevezést addig, míg számot nem talál a karakterek között. A D2 képlete =HA(A2=C2;B2;JOBB(A2;HOSSZ(A2)-HOSSZ(C2))). A két képletet másold le a többi adatod mellé.
Érdemes a két oszlopot másolni, majd saját magára irányítottan, értékként beilleszteni. Ezután az A és B oszlop törölhető. Utoljára szerkesztette: Delila1, 2016.08.31. 16:42:01
Sajnos ez sem jó, mert néha olvashatatlan lesz kinyomtatva az adat, így csak sortörés állítható be.. Jobb híján széthuzogattam az oszlopszélességet, azt hiszem így marad amíg microsofték nem javítanak ezen a funkción.. azért köszi az ötletelést
Nahát:-) Sosem csináltam még makrót, köszi szépen a segítséget. Szépen leszedte a kiszerelést a terméknevekről, ezzel már tudok dolgozni. Még egyszer nagyon köszönöm a megoldást