Hirdetés
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Amazfit Bip 6 - jót olcsón
- Samsung Galaxy S23 Ultra - non plus ultra
- Yettel topik
- Okosóra és okoskiegészítő topik
- Apple iPhone 16 Pro - rutinvizsga
- Google Pixel topik
- Szívós, szép és kitartó az új OnePlus óra
- Vivo X200 Pro - a kétszázát!
- Xiaomi 15 - kicsi telefon nagy energiával
- 
			  Mobilarena A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra. 
 Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
- 
			
			  Wyll őstag válasz  sedyke
							
							
								#25197
							
							üzenetére sedyke
							
							
								#25197
							
							üzenetéreSzerintem itt ez a cikk elég jól körüljárja a 
 "Hogyan számoljuk meg excel-ben az egyedi értékek számát"
 témát. Több módszert is mutat. Üres cellák figyelembevétele vagy nem vétele is benne van. Példamunkafüzet, videó is van. Hasonló slashing megoldásához is.
- 
			
			  gdodi csendes tag Sziasztok! 
 Hogy lehet sorokat áthelyezni makróval egy munkalapról a másikra, ha a sorok száma egy változótól függ? Pl.:
 Sub Makró1()
 ' Makró1 Makró
 Rows("1:4").Select
 Selection.Copy
 Sheets("Munka2").Select
 ActiveSheet.Paste
 Sheets("Munka1").Select
 Application.CutCopyMode = False
 Selection.Delete Shift:=xlUp
 Range("A1").Select
 End Sub
 Itt a 4 sor helyett egy változót (esetleg 2-t is, sortól sorig) szeretnék használni, de nem tudom megoldani. Az áthelyezést is csak úgy tudnám megoldani, hogy másolok, majd törlöm az eredetit. Nyilván van sokkal egyszerűbb megoldás.
 Előre is köszönöm a segítséget!
- 
			
			  sedyke tag Sziasztok! Van egy táblázatom rendelésekről. A rendelés száma oszlopban vannak ismétlődések, melyekre továbbra is szükségem lenne más célból. Kérdésem az lenne, hogyan milyen függvénnyel tudnám megszámolni a rendelések darabszámát úgy, hogy az ismétlődő értékeket csak egyszer számolja. 
 Segítségeteket előre is köszönöm!
- 
			
			  Fferi50 Topikgazda válasz  katka84
							
							
								#25194
							
							üzenetére katka84
							
							
								#25194
							
							üzenetéreSzia! Nem feltétlenül kell makró hozzá, de a Visual Basic nézetben (Alt+F11) tudod megcsinálni. Keresd meg az immediate ablakot (ha nem látod akkor Ctrl+G). Ebbe az ablakba írd be: 
 Sheets("Munkalapneve").visible =xlSheetVeryHiddenEnnek az a hatása, hogy mások elől abszolute rejtve marad a munkalap, nem jön elő a jobb egérgombos rákattintásnál levő listában sem. Viszont Te sem látod, Ahhoz, hogy dolgozni tudj vele, ezt a sort kell ugyanide beírni: 
 Sheets("Munkalapneve").visible=xlSheetVisibleTermészetesen a két fenti sor elhelyezhető makróban is (pl. a munkafüzet megnyitásakor vagy bezárásakor lefutó makróban), vagy csak külön is, amit akkor indítasz el, amikor szükséged van rá. (A Sheets("Munkalapneve") helyett írhatod az activesheet kifejezést is az elrejtős sorba - ekkor mindig az éppen aktív munkalapot rejti el. 
 Visszafelé ez ugye nem működik, hiszen a rejtett munkalap nem lesz aktív láthatóan.)Üdv. 
- 
			
			  Wyll őstag válasz  katka84
							
							
								#25193
							
							üzenetére katka84
							
							
								#25193
							
							üzenetéreNem feltétlen kell hozzá makró. 
 Elrejtheted a lapot, majd utána levéded a munkafüzet szerkezetét, amihez lehet jelszót is rendelni:Ekkor viszont nagyon meg kell jegyezned a jelszót. 
 Ha makrót írsz, akkor a makróban benne lehet maga a jelszó, így nem feltétlen kell megjegyezni, az persze más kérdés, hogy ez mennyire biztonságos...
- 
			
			  katka84 csendes tag Közben már megoldottam a problémámat. 
 De azért szívesen fogadnék ötleteket, hogy miként tudnám ezt a dolgot megtanulni. Pl. vmi jó anyagot a makrókról. 
- 
			
			  katka84 csendes tag Sziasztok! Abban kérném a segítségeteket, hogy szeretnék egy teljes lapot úgy elrejteni a kíváncsiskodók elől, hogy csak jelszóval lehessen megjeleníteni. 
 Gondolom, hogy vmi makrót kellene kreálnom hozzá, de ebben sajna nincs nagy gyakorlatom és igen sürget az idő. 
 De azt megígérhetem, h utólag megtanulom a dolgot.Előre is köszönöm szépen a segítséget. 
- 
			
			  Delila_1 veterán válasz  marcyman
							
							
								#25187
							
							üzenetére marcyman
							
							
								#25187
							
							üzenetéreKészíts kimutatást a kép szerint. Az összegző mezőkben látszólag napi összeget ír, de az valójában napi átlag, mint a jobb oldali mezőlista tábla jobb alsó sorában látszik. Érdemes előtte táblázattá alakítani az adataidat, akkor a kimutatás mindig a friss adatokkal számol. 
 A dátum legördülőben kiválaszthatod az aktuális dátumot.
- 
			
			
- 
			
			  marcyman aktív tag Sziasztok, Van egy összetett feladat, amit szeretnék valahogy egyszerűbbé tenni bármilyen módon (akár automatizálni): Adott egy oszlop, amiben dátumok vannak, adott egy amelyikben betűk/számok vegyesen nevezzük őt beszállítóknak, adott egy amelyben számok (eredmények) és adott egy üres. Azt csinálom, hogy szűrővel rászűrök csak a mai napra a dátumos oszlopban, majd szintén szűrővel az első beszállítóra. Tegyük fel, hogy ennek a beszállítónak a mai napon volt 10 szállítmánya, ez jelent 10 különböző eredményt az eredmények oszlopban. A feladatom az, hogy veszem a 10 eredmény átlagát és beírom az üres oszlopba az összes üres cellába, a kiválasztott beszállító mai napi eredményei mellé. Tehát minden eredmény mellett ott lesz az összes eredmény mai napi átlaga. Ezután lépek egy beszállítót a szűrőben, és megcsinálom újra ugyanezt amíg végig nem érek a mai nappal. Pl. négy darab sor végül így néz ki: Dátum (2015.01.27) - beszállító1 - eredmény1 - kizárólag a mai napi beszállító1 eredményeinek az átlaga 
 Dátum (2015.01.27) - beszállító1 - eredmény2 - kizárólag a mai napi beszállító1 eredményeinek az átlaga
 Dátum (2015.01.27) - beszállító2 - eredmény3 - kizárólag a mai napi beszállító2 eredményeinek az átlaga
 Dátum (2015.01.27) - beszállító2 - eredmény4 - kizárólag a mai napi beszállító2 eredményeinek az átlagaés így tovább, persze néha egy beszállítóhoz több eredmény van, a másikhoz kevesebb, változó. Ha nem érthető szóljatok, küldök róla képet. Erre tudna valaki bármilyen gyorsabb, esetleg automatikus megoldást? 
- 
			
			  gyga senior tag törölve 
- 
			
			  gyga senior tag Üdv. Van e arra lehetőség hogy Excelbe tegyem a Word állományt? 
 A következő a problem.
 Adott egy számolós excel tábla. Ebből a táblából veszi át az adatokat egy word file. tehát így párban jó csak.
 Arra gondoltam hogy a word filet integrálnám az execlbe.
 Persze lehet szöveg dobozt betenni de az nem olyan mint a word, mert kell fejléc /lábléc tabulátorok. stb.
 Szóval tudom e a word-öt beágyazni?
- 
			
			  bteebi veterán válasz  Fferi50
							
							
								#25182
							
							üzenetére Fferi50
							
							
								#25182
							
							üzenetéreSzia! Köszi az észrevételeket!  Az átzárójelezés elég buta hiba volt (igazából azt a részt érthetetlen módon nem ellenőriztem le, mondván, hogy az úgyis jó - mert ha nem lenne jó, akkor szólna az Excel Az átzárójelezés elég buta hiba volt (igazából azt a részt érthetetlen módon nem ellenőriztem le, mondván, hogy az úgyis jó - mert ha nem lenne jó, akkor szólna az Excel ), ezt az eseménykezeléses dolgot viszont nem tudtam. Egyelőre nem működik tökéletesen, de majd futok vele még egy kört, hátha sikerül megreparálnom. ), ezt az eseménykezeléses dolgot viszont nem tudtam. Egyelőre nem működik tökéletesen, de majd futok vele még egy kört, hátha sikerül megreparálnom.
- 
			
			  togyerl csendes tag Sziasztok a segítségeteket kérném, még kezdő vagyok excel téren, de azt szeretném megoldani hogy ha hyperlinket csinálok egy fájlhoz a munkafüzetben és utánna a fájl helye változik(elérési út) akkor nem találja a fájlt az excell, van e mód arra hogy a linkelt file -okat integrálja az excell fájlba, vagy ezt hogy lehet kiküszöbölni? 
- 
			
			  Fferi50 Topikgazda válasz  bteebi
							
							
								#25180
							
							üzenetére bteebi
							
							
								#25180
							
							üzenetéreSzia! Egyrészt, ha eseménykezelést végzel, akkor ki kell kapcsolni az eseményeket: 
 Application.EnableEvents=False
 majd a végén visszakapcsolod:
 Application.EnableEvents=True
 Ha nem így teszel, akkor jó esetben csak meghosszabodik a program futása, rossz esetben más cellákat is átír, nem csak azokat, amelyeket szeretnéd.Továbbá van két képlet benne, ami formailag ugyan helyes (nem kiabál érte a fordító), de teljesen blőd eredményt ad, rossz helyre került a záró zárójel: If Sheets("proba").Cells(sor - 72, 5) < Sheets("proba").Range("S130") Or WorksheetFunction.IsNumber(Sheets("proba").Cells(sor - 72, 5)) = True A Te kódodban a True után volt a zárójel, az előréb kell hozni az egyenlőség jel elé, ahogyan itt is látod. Ugyanez van az oszlopos vizsgálatánál is, ott is az egyenlőség jel után kell a zárójel és nem a False után. Üdv. 
- 
			
			  bteebi veterán Sziasztok! Van egy viszonylag nagy táblázatom, és alatta ugyanaz, értékek nélkül. A felső táblázatban alapvetően számok vannak, de van néhány szöveges mező is. Fontos, hogy ezek a szöveges értékek ki legyenek szűrve. Az alsó táblázatba a felső táblázat adatait szeretném bizonyos szűrő feltételek mellett bemásolni. A szűrő feltétel az S130-as cellában lévő érték; ha attól nagyobb a cella értéke, akkor szűrésre kerül, a szűrt érték pedig "" (üres cella) lesz. A két táblázat formailag megegyezik, annyi, hogy 72 sornyi különbség van köztük. Ehhez még nem kellett volna makró, de a szűrő bonyolódása után már nem tudtam megoldani egyszerű képlettel. Ha az első (5.) oszlopban lévő szám nagyobb lenne a szűrőnél, de a mellette lévő (6.) oszlopban a szűrés után is van érték, akkor annak kell az 5. oszlopba kerülnie. A többi oszlopnál (6-11.) pedig, ha az alapérték szűrésre kerül, de a mellette lévő szomszédos oszlopok értékei nem, akkor annak a két szomszédos oszlopnak az átlagát kellene beilleszteni. Valószínűleg túl sok volt az argumentum, egyébként valami ilyesmi volt: =HA(VAGY(F5>=$S$130;SZÁM(F5)=HAMIS);HA(ÉS(SZÁM(E5)=IGAZ;SZÁM(G5)=IGAZ);ÁTLAG(E5;G5);HA(SZÁM(F5)=IGAZ;HA(F5<$S$130;F5;"");""))) Kicsit talán nehezen érthető a probléma, ezért feltettem egy képet: Tegyük fel, hogy a szűrő értéke 100, tehát az ennél nagyobb értékeket szeretném kiszűrni. Ebben az esetben a B2-es cella értéke ki lenne szűrve - a mellette, a C2-es cellában lévő szám azonban nem, ezért a C2 értékét kellene lemásolni 72 cellával lentebbre. A D3-as cella viszont üres, de a mellette lévők (C3 és E3), ezért a szűrés során a C3 és E3 átlagát kellene továbbvinni. Írtam rá egy makrót, de valamiért nem csinál semmit, pedig lefut. A makró a "proba" nevű laphoz van rendelve. Private Sub Worksheet_Change(ByVal Target As Range) 
 Dim sor As Integer, oszlop As Integer
 If Target.Address = "$S$130" Then
 For sor = 77 To 139
 
 If Sheets("proba").Cells(sor - 72, 5) < Sheets("proba").Range("S130") Or WorksheetFunction.IsNumber(Sheets("proba").Cells(sor - 72, 5) = True) Then
 Sheets("proba").Cells(sor, 5) = Sheets("proba").Cells(sor - 72, 5)
 ElseIf WorksheetFunction.IsNumber(Sheets("proba").Cells(sor - 72, 5) = False) Then
 If WorksheetFunction.IsNumber(Sheets("proba").Cells(sor - 72, 6) = True) Then
 Sheets("proba").Cells(sor, 5) = Sheets("proba").Cells(sor - 72, 6)
 Else: Sheets("proba").Cells(sor, 5) = ""
 End If
 End If
 For oszlop = 6 To 11
 
 If Sheets("proba").Cells(sor - 72, oszlop) >= Sheets("proba").Range("S130") Or WorksheetFunction.IsNumber(Sheets("proba").Cells(sor - 72, oszlop) = False) Then
 If WorksheetFunction.IsNumber(Sheets("proba").Cells(sor - 72, oszlop - 1) = True) And WorksheetFunction.IsNumber(Sheets("proba").Cells(sor - 72, oszlop + 1) = True) Then
 Sheets("proba").Cells(sor, oszlop) = WorksheetFunction.Average(Sheets("proba").Cells(sor - 72, oszlop - 1), Sheets("proba").Cells(sor - 72, oszlop + 1))
 ElseIf Sheets("proba").Cells(sor - 72, oszlop) < Sheets("proba").Range("S130") And WorksheetFunction.IsNumber(Sheets("proba").Cells(sor - 72, oszlop) = True) Then
 Sheets("proba").Cells(sor, oszlop) = Sheets("proba").Cells(sor - 72, oszlop)
 Else: Cells(sor, oszlop) = ""
 End If
 End If
 Next oszlop
 Next sor
 End If
 End SubHol rontottam el? Előre is köszönöm a segítségeteket!  
- 
			
			  cellpeti nagyúr sziasztok számokat szeretnék feltenni felső indexbe, de sehogy sem engedi az Excel? Mi ennek a módja? Próbáltam szám formátumként, és általánosba is. Tudtok segíteni? 
- 
			
			  gaborlajos csendes tag válasz  gaborlajos
							
							
								#25173
							
							üzenetére gaborlajos
							
							
								#25173
							
							üzenetéreKöszönöm szépen, ez így működik. Üdv: 
- 
			
			  Delila_1 veterán válasz  gaborlajos
							
							
								#25173
							
							üzenetére gaborlajos
							
							
								#25173
							
							üzenetéreAlkalmazás: 
 Beírod a 20 cég nevét, amit most nálam az I1:M1 tartomány képvisel. Elé, ahol most nálam a Kategóriák szöveg szerepel, beírod pl. hogy Cégek. Kijelölöd a H1:M1 tartományt, és ha 2003-asnál magasabb verziód van, akkor Képletek | Definiált nevek | Kijelölésből új, Bal oszlopból.
 2003-nál és alatta a kijelölés után Beszúrás | Név | Létrehozás.Most beírod az első cég alá a hozzá tartozó emberek nevét. Ez lesz mondjuk az I1:I12 tartomány. Kijelölöd, nevet adsz neki, mint az előbb, csak most a Bal oszlopból helyett a Felső sorból opciót választod. Ezt megismétled a többi cégnél is. Az első cella (a példa szerint A1) érvényesítése Lista, forrása a =Cégek. Itt rögtön válassz is ki egyet. A második (B1) szintén Lista, a forrása pedig =INDIREKT(A1). A listáknak nem kell azonos lapon lenniük az érvényesítésekkel. Nálam most mindegyik kategóriában 7 adat van, de természetesen különböző hosszúságúak lehetnek. 
- 
			
			  torogyuri aktív tag Ha kijelölök több lapot és úgy kezdek el írni egy cellába ugye akkor az összes lapon abba a cellába ugyanaz a szöveg kerül. De úgy is meg lehet csinálni hogy csak azt másolja a többi cellába amit újonnan beleírok ne változtassa meg az egész cella tartalmát csak "hozzáfűzze"? 
- 
			
			  lappy őstag válasz  gaborlajos
							
							
								#25168
							
							üzenetére gaborlajos
							
							
								#25168
							
							üzenetérehttp://prohardver.hu/tema/excel/hsz_10160-10160.html 
 Itt is van egy leírás
- 
			
			  gaborlajos csendes tag Sziasztok! Segítséget szeretnék kérni! 
 Van két legördülő listám, az egyikben cégnevek vannak, a másikban a cégek dolgozóinak neve. Az adatokat egy-egy oszlopból veszi. Hogyan lehet azt megoldani, hogy a cég kiválasztása után a dolgozók legördülő listában csak az adott cég dolgozói jelenjenek meg. Most úgy van, hogy a Cégek és a Cég dolgozói is ugyanazt a sorszámot kapták, így kiválogatni ki tudom, de a legördülő listában ott jelennek meg ahol az eredeti oszlopban voltak, tehát akár a legvégén is. Az szeretném elérni, hogy a legördülő lista elejére kerüljenek.Üdv:G.L. 
- 
			
			  zoli1962 csendes tag Mindenkit Üdvözlök ! Amit leírok már láttam működni, de én nem tudtam megcsinálni.Segítségeteket kérem A munka 1 munkalapja első sorába szűrőt alkalmazok. A szűrés után csak egy sor fog megfelelni a "feltételeknek" Aminek a SOR száma lehet akármennyi is. 
 Ezt a szúrés utáni sort egy új munkalapon mondjuk a munkalap2-n adott celláikban meg akarom jeleníteni. Tulajdonképpen egy jelentést csinálni /amit utánna például ki tudok nyomtatni/
- 
			
			  allein addikt Üdvözlök mindenkit. Adott egy excel, ezenbelül 3 oszlopban, a, b és c oszlopokban adatok szerepelnek. El szeretném menteni másként, .csv-re. Miután elmenetettem és megnyitom a csv-t, lehet látni, hogy mégsem vesszővel vannak elválasztva. HIába töltöm fel a rendszerünkbe a csv-t, nem fogja beolvasni. Tracking számokat szeretném feltölteni partnereink részére. Mi az amit rosszul csinálok? OS X alatt próbálkozom egyébként. Így kellene kinéznie: 
- 
			
			  KERO_SAN aktív tag válasz  Delila_1
							
							
								#25107
							
							üzenetére Delila_1
							
							
								#25107
							
							üzenetéreSzia! Elakadtam egy kicsit. ALT+F11-el megnyitottam a VBA editort, a laphoz hozzárendeltem a kódot, beillesztettem egy üres modult, oda is bemásoltam az általad írt kódot, mentettem. Viszont ha ALT+F8-al futtatni akarom a makrót, akkor egy sincs a listámban  És, ha kitöltök egy új sort a végéig, akkor sem történik semmi. Mit ronthattam el ? 
- 
			
			
- 
			
			
- 
			
			  Fferi50 Topikgazda Szia! Hát persze hogy nem: =Kerekítés(Szum(E4:D4);-1) (ha nem akarod, hogy ilyen szuper jelek jelenjenek meg, használd a programkód gombot) A kerekítés második paramétere határozza meg, hogy hány számjegyre kerekítsen. A -1 azt jelenti, hogy tizesre kerekít a magyar szabályok szerint. Üdv. 
- 
			
			  KO MA újonc Köszönöm 
 Próbálom
- 
			
			  KO MA újonc Sziasztok! 
 Regisztráltam mert kérdésem van. Használom az Excel-t költség táblázatokat készítek.
 A problémám, hogy a beirt képletek eredményét szeretném kerekíteni, Pld. 252. forintot 250. forintra, vagy a szabály szerint a 256 forintra végződőt felfelé 260, forintra.Köszönöm a segítségeteket  
- 
			
			  Delila_1 veterán válasz  Backrau
							
							
								#25139
							
							üzenetére Backrau
							
							
								#25139
							
							üzenetéreEbben az esetben a laphoz rendelendő makró Private Sub Worksheet_Change(ByVal Target As Range) 
 If IsEmpty(Target) Then Exit Sub
 If Target.Column = 2 Then
 Application.EnableEvents = False
 Cells(Target.Row + 1, 1).EntireRow.Insert
 Cells(Target.Row + 1, 1) = Cells(Target.Row, 1)
 Application.EnableEvents = True
 End If
 End Sub
- 
			
			  Backrau aktív tag válasz  Delila_1
							
							
								#25138
							
							üzenetére Delila_1
							
							
								#25138
							
							üzenetéreNem teljesen. Az A' oszlopban a dátumok vannak 2015.01.01-től 12.31-ig. A B' oszlopban pedig egy alkatrész típus számai. Az egész táblázat előre kialakított az egész évre. A lényeg, ha 2015.03.01-én történt egy hiba az adott alkatrésszel én beírom a B' oszlopba az alkatrész számát és töltöm ki tovább a sort. De ha mondjuk van az adott naptári napon még egy hiba, azt jelenleg nem tudom hova beírni, csak ha én kézileg hozzáadok egy sort. Magyarán azt szeretném, ha én beírok tegyük fel 2015.03.01-re egy hibát, akkor automatikusan hozzon létre egy új sort ugyanazzal a dátummal. (Esetleg, ha nem kerül semmi beírásra tűnjön el.) Ez azért lenne fontos, mert ez egy védett doksi lesz, és csak az engedélyezett cellákba lehet majd írni. 
- 
			
			  Delila_1 veterán válasz  Backrau
							
							
								#25136
							
							üzenetére Backrau
							
							
								#25136
							
							üzenetéreÚgy érted, hogy ha a B oszlopba beírsz valamit, akkor annak a sornak az A cellájában jelenjen meg az aktuális dátum? Ha igen, rendeld a lapodhoz a nyúlfarknyi makrót. Private Sub Worksheet_Change(ByVal Target As Range) 
 If IsEmpty(Target) Then Exit Sub
 If Target.Column = 2 Then Cells(Target.Row, 1) = Date
 End SubEzután makróbarátként kell mentened a füzetedet. 
- 
			
			  Backrau aktív tag Sziasztok, 
 lenne egy fontos kérdésem.
 Jelenleg a cégnél Office 2010 van.
 Szeretnék egy olyat csinálni, hogy...
 Az "A" oszlopban dátumok vannak. A "B" oszlopban pedig egy típus jelölő cella.
 Hogyan tudok olyat csinálni, hogy ha mondjuk a "B13"-as cellába beírok valamit, akkor megjelenik alatta egy új sor és az "A" oszlopban marad az aktuális dátum és a megjelenő új sor tudja az előtte lévő beállításokat.
 Remélem meg lehet csinálni. Előre is köszönöm a segítséget..
- 
			
			Üdv. Kollégák Excel 2010-ben van panelrögzítésre valami billentyűkombináció? Google és MS nem segít ebben.  
- 
			
			  Fferi50 Topikgazda válasz  Polllen
							
							
								#25132
							
							üzenetére Polllen
							
							
								#25132
							
							üzenetéreSzia! Akkor lenne igazad, ha csak egy munkalapot tartalmazhatna, de ez nem így van. (Az activesheet az egy darab munkalap, az activeworkbook szintén egy darab munkafüzet -- kiválasztott (selected) viszont több is lehet.) 
 A selectedsheets egy gyűjtemény, magában foglalja az összes kiválasztott munkalapot.
 Idézet a help-ből:
 "Window.SelectedSheets Property
 Returns a Sheets collection that represents all the selected sheets in the specified window. Read-only."
 Ha a művelet eredményét nem szeretnénk viszontlátni, akkor nem kell a konkrét munkalapot megnevezni, szép sorban megmutatja az összes kijelöltet.
 De ha szükség van a nyomtatás megtörténtének információjára, akkor már konkrét munkalapra kell hivatkozni - hiszen lehet, hogy egyik munkalapot kinyomtatod, másokat pedig nem, akkor most mi legyen a logikai változó eredménye??Üdv. 
- 
			
			  Fferi50 Topikgazda válasz  KaliJoe
							
							
								#25120
							
							üzenetére KaliJoe
							
							
								#25120
							
							üzenetéreSzia! Próbáld a következőt: 
 If activewindow.SelectedSheets("wsh_Ürlap").printpreview=true then
 műveletek
 endif
 Ugyanis így adod meg a konkrét munkalapot.Ha több munkalap is ki van választva, akkor pedig 
 For each wsh in activewindow.selectedsheets
 if wsh.printpreview=true then
 műveletek
 endif
 next
 Ezzel végigmész az összes munkalapon és megnézheted, hogy ki lett-e nyomtatva.Üdv. 
- 
			
			  Fferi50 Topikgazda válasz  KaliJoe
							
							
								#25126
							
							üzenetére KaliJoe
							
							
								#25126
							
							üzenetéreSzia! A konstansnak (állandónak) pont az a lényege, hogy egyszer definiálod "direkt" módon az értékét és az soha de soha nem változhat meg a programban. Ezért nem lehet semmilyen változó tartalomhoz kötni a meghatározását, mert akkor már a konstans jelleg nem áll fenn. A makróba be kell "égetni" az értéket, csak úgy tudod változtatni, ha átírod a makróban ezt az értéket. Ha tehát cella értékből akarod kivenni a "konstans" értékét, akkor azt csak változóba teheted bele, de ez a változó természetesen lehet az egész programra érvényes Global, vagy Public is és elég a program indulásakor értéket adni neki, többet nem kell vele foglalkoznod. Nézz rá helpben a változók deklarálására. Üdv. 
- 
			
			  Polllen félisten válasz  KaliJoe
							
							
								#25128
							
							üzenetére KaliJoe
							
							
								#25128
							
							üzenetéreSzia, az ActiveWindow.SelectedSheets.PrintPreview(wsh_Űrlap) így nem működik változó hibával, ahogy eredetileg is írtad. Mondjuk a SelectedSheets-nek elégnek kellene lennie a változó nélkül. 
 Viszont amit belinkeltem, az úgy működik, ahogy van, használtam többször is...A worksheets(xy) elég egyértelműen definiálja mire vonatkozik az utána következő PrintPreview... 
 If Worksheets(wsh_Urlap).PrintPreview = True Then vagy If Worksheets("Sheet1").PrintPreview = True Then
- 
			
			  KaliJoe tag válasz  Polllen
							
							
								#25127
							
							üzenetére Polllen
							
							
								#25127
							
							üzenetéreSzia Pollen, Ez biztos nem megoldás. Mivel a .PrintPreview súgójában benne van az a Variant változó aminek egy munkalapra kell mutatnia, és akkor kérhető ki az Igaz / Hamis érték... a súgó szerint. Egyébként a jelzett "hiányzó változó" hibaüzenettel reagál. De nyilván nem csinálok valamit jól, ha végül nem ez történik.  
 Ehhez kellene a segítség, h az történjen, mit gondolok :-) 
- 
			
			  Polllen félisten válasz  KaliJoe
							
							
								#25126
							
							üzenetére KaliJoe
							
							
								#25126
							
							üzenetéreMindig ugyanazt a sheet-t akarod kinyomtatni? Ez alapján, igen: 
 ...
 Dim wsh_Űrlap As Variant
 wsh_Űrlap = Worksheets("Űrlap Nyomtatáshoz")
 ...
 If ActiveWindow.SelectedSheets.PrintPreview(wsh_Űrlap) = True Then
 Worksheets("Alapértékek").Select
 ActiveSheet.Unprotect
 Worksheets("Alapértékek").Cells(4, "J").Value = Worksheets("Űrlap Nyomtatáshoz").Cells(2, "M").Value + 1
 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
 End If
 ...Próbáld meg ezt: 
 Dim wsh_Urlap As String
 wsh_Urlap = "Űrlap Nyomtatáshoz"
 ...
 If Worksheets(wsh_Urlap).PrintPreview = True Then
 Worksheets("Alapértékek").Select
 ActiveSheet.Unprotect
 Worksheets("Alapértékek").Cells(4, "J").Value = Worksheets("Űrlap Nyomtatáshoz").Cells(2, "M").Value + 1
 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
 End IfBár ha fix, változó sem kell. 
- 
			
			  KaliJoe tag válasz  Delila_1
							
							
								#25121
							
							üzenetére Delila_1
							
							
								#25121
							
							üzenetéreSzia Delila_1, Próbáltam... :-)  Üres makrót eredményez... a nyomtatás ablak előhívása nem vált ki programsor rögzítést, viszont ha elküldöm a nyomtatást, akkor egy egészen másik parancsot hoz. Nevezetesen ez: Üres makrót eredményez... a nyomtatás ablak előhívása nem vált ki programsor rögzítést, viszont ha elküldöm a nyomtatást, akkor egy egészen másik parancsot hoz. Nevezetesen ez:ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False 
- 
			
			  KaliJoe tag Sziasztok, A tény: AZ egyik űrlapomon képeket használok, amelyeket a felhasználó viselkedésétől függően jelenítek meg. Ez jól működik is. A kérdés: Az alábbiakban látható módon egy konstanst használok, hogy bárhol a modulban elérhető legyen a mappa bejárási útvonala. Viszont a konstanst nem engedi csak explicit módon megadni, nem lehet úgy, h egy Alapértékeket tartalmazó munkalap egy cellájában legyen. 
 Ti hogyan oldanátok meg?Const const_KépKönyvtár As String = "D:\CentrumNet WorldWide Kft\Programozás\Jelenléti ív\" 
 'Const const_KépKönyvtár As String = Worksheets("Alapértékek").Cells(7, 1)
- 
			
			  KaliJoe tag válasz  Polllen
							
							
								#25117
							
							üzenetére Polllen
							
							
								#25117
							
							üzenetéreSzia Pollen és Delila_1, Azt hiszem az irány jó, de makacsul dobja a hibaüzeneteket, arra hivatkozva, h definiáljak változót. Készítettem Variant típusút, értékét az aktuális munkalapra irányítottam... de az nem érdekli, csak követel... ... 
 Dim wsh_Űrlap As Variant
 wsh_Űrlap = Worksheets("Űrlap Nyomtatáshoz")
 ...
 If ActiveWindow.SelectedSheets.PrintPreview(wsh_Űrlap) = True Then
 Worksheets("Alapértékek").Select
 ActiveSheet.Unprotect
 Worksheets("Alapértékek").Cells(4, "J").Value = Worksheets("Űrlap Nyomtatáshoz").Cells(2, "M").Value + 1
 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
 End If
 ... 
- 
			
			  KaliJoe tag Sziasztok, Ki tudja, h milyen VBA sorral lehetne meghívni a "nyomtatási nézetet"... és aztán hagyni a felhasználót, h elmolyoljon (kvázi beállítsa a számára megfelelő nyomtatási paramétereket), és ha sikeres a nyomtatás akkor valahol a táblában lökjön egyet egy számlálón. 
 Ez az utolsó rész, miszerint hogy lökjön egyet a számlálón sima liba, de nekem most mindenképp lök rajta... ha a saját magam által készített (nem eredeti Excel) "Nyomtatás" feliratú gombját megnyomja. Emögött lévő makró utolsó sora elvégzi a számláló növelést, de függetlenül attól, h készült-e nyomat.
- 
			
			  koda013 újonc válasz  pingvin baby
							
							
								#12867
							
							üzenetére pingvin baby
							
							
								#12867
							
							üzenetéreErre kaptál választ vagy megoldódott valahogy a probléma? Ugyanez a gondom és nem tudom, mi lenne a megoldás.. Köszi! 
- 
			
			  Jofi81 őstag Egy kis segítségre lenne szükségem. Hogyan tudnám megszámolni, hogy egy tartományban hány sor, illetve hány oszlop tartalmaz egyest? 
- 
			
			  Delila_1 veterán válasz  KERO_SAN
							
							
								#25105
							
							üzenetére KERO_SAN
							
							
								#25105
							
							üzenetéreKét makró kell hozzá. Az első figyeli a 18. oszlop kitöltését, majd indítja a másikat, ami a másolást végzi el. A laphoz rendeléshez, és a modulba tevéshez sok leírás van itt a fórumon. 
 Nem kell előre elkészíteni a 10 lapot, a makrók létrehozzák "1"-től "10"-ig névvel.Az alap táblázatot tartalmazó laphoz rendeld: Private Sub Worksheet_Change(ByVal Target As Range) 
 Dim LapNev As String
 
 If IsEmpty(Target) Then Exit Sub
 If Target.Column = 18 Then
 LapNev = Cells(Target.Row, 1)
 Masolas Target.Row, LapNev
 End If
 End SubModulba helyezd: Sub Masolas(sor, LapNev) 
 Dim a As Object, usor As Long
 Dim ElsoLap As Worksheet
 
 Set ElsoLap = Worksheets(ActiveSheet.Name)
 On Error Resume Next
 Set a = Sheets(LapNev)
 If Err.Number <> 0 Then
 Worksheets.Add.Name = LapNev
 ElsoLap.Rows(1).Copy Sheets(LapNev).Range("A1")
 End If
 On Error GoTo 0
 
 usor = Sheets(LapNev).Range("A" & Rows.Count).End(xlUp).Row + 1
 ElsoLap.Rows(sor).Copy Sheets(LapNev).Range("A" & usor)
 ElsoLap.Move Before:=Sheets(1)
 End Sub
- 
			
			  Delila_1 veterán válasz  KERO_SAN
							
							
								#25097
							
							üzenetére KERO_SAN
							
							
								#25097
							
							üzenetéreMég azt kellene tudni, hogy a 18. oszlop kötelezőn kitöltendő-e? Ha igen, akkor ennek a kitöltéséhez lehet rendelni egy eseménykezelő makrót, ami a bevitel után azonnal automatikusan átmásolja a teljes sort a megfelelő lap első üres sorába. Ha nem, akkor pl. egy gombot lehet kitenni az első lapra, amit minden sor teljes kitöltése után megnyomsz, vagy ez a gomb egyszerre szortírozza a teljes első táblázatot 10 felé. 
- 
			
			  Wyll őstag válasz  Fferi50
							
							
								#25100
							
							üzenetére Fferi50
							
							
								#25100
							
							üzenetéreÉrtem, és valóban működik is! (Nem probléma angolul beírni.) Köszönöm!    
 Persze számformátummal fogom megcsinálni! Elegánsabb. Elegánsabb.Már csak egy (költői) kérdésem maradt: "Ezt a sort így :=HA(valami = 0;"nincs kitöltve";valami) a VBA és az excel szövegként értelmezi." 
 Miért?
 De ha belegondolok, akkor pont azért, mert a VBA számára a Formula property ha nem angol fv neveket tartalmaz, akkor text.
- 
			
			  Polllen félisten Ettől még text-ként értelmezi sajnos. Ha visszaolvasol én pl. ilyeneket használok: 
 "=VLOOKUP(RC[-9],'" & utvonal & "[" & valtozo & "]Shortage'!C1:C10,10,0)"Tökéletesen működik, ha general a cellaformátum. Lehet érdemes akkor még kipróbálni a HA helyett IF-t, ahogy előttem javasolták. 
- 
			
			  Wyll őstag válasz  Polllen
							
							
								#25099
							
							üzenetére Polllen
							
							
								#25099
							
							üzenetérePedig ha megnézem a típust (rákattintok egérrel a szóban forgó cellára, és megnézem fent a ribbonon, hogy mit ír a számformátumának), akkor Általános-t ír.  Most vagy az van, hogy ez így van jól, és még kéne még egy utolsó művelet a VBA-ba (pl. hasamraütök: Run), vagy ez valami kis bug, de akkor is VBA-ból kell megoldanom  
Új hozzászólás Aktív témák
Hirdetés
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Filmvilág
- Garancia kérdés, fogyasztóvédelem
- Brave
- OLED monitor topic
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Magga: PLEX: multimédia az egész lakásban
- Path of Exile (ARPG)
- Kerékpárosok, bringások ide!
- AMD GPU-k jövője - amit tudni vélünk
- További aktív témák...
- HIBÁTLAN iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3276
- Tablet felvásárlás!! Samsung Galaxy Tab A8, Samsung Galaxy Tab A9, Samsung Galaxy Tab S6 Lite
- Honor 90 512GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Asus X470 R9 5900X 32GB DDR4 1TB SSD RTX 3070 Ti 8GB Zalman Z1 PLUS A-Data 750W
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
 
						 
								 
							 
								 
								 
								 
							
 
								
 
								 
							
 
								 
							
 
								 
							 
								 
								 ), ezt az eseménykezeléses dolgot viszont nem tudtam. Egyelőre nem működik tökéletesen, de majd futok vele még egy kört, hátha sikerül megreparálnom.
), ezt az eseménykezeléses dolgot viszont nem tudtam. Egyelőre nem működik tökéletesen, de majd futok vele még egy kört, hátha sikerül megreparálnom. 
							 
							

 
								 
							 
								 
							
 
								 
								 
							 
								 
							 
								



 
							 
								 )
 )
 
								 
							
 4)
4)
 
								 
							
 
								 
							 
							 
								

 Üres makrót eredményez... a nyomtatás ablak előhívása nem vált ki programsor rögzítést, viszont ha elküldöm a nyomtatást, akkor egy egészen másik parancsot hoz. Nevezetesen ez:
 Üres makrót eredményez... a nyomtatás ablak előhívása nem vált ki programsor rögzítést, viszont ha elküldöm a nyomtatást, akkor egy egészen másik parancsot hoz. Nevezetesen ez:
 
							 
								 
								 
							 
  Elegánsabb.
 Elegánsabb.


