- Mr Dini: Ha szeretnéd rootolni az LG Smart TV-d, tedd meg most!
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- plevips: Építkezünk 3. rész (2024)
- bb0t: Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- gban: Ingyen kellene, de tegnapra
-
GAMEPOD.hu
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
-
ROBOTER
addikt
Üdv!
Ha egy sheet bizonyos celláit zárolom, másokat pedig nem, majd a lapot védetté teszem, van különbség aközött, hogy a táblázatban vagy VBA-ból akarom módosítani a cellát?
Védett lapon VBA-ból hibát ad akkor is, ha nem lockolt cellához nyúlok, viszont kézzel jól követi a locked/unlocked állapotot, hiba nélkül. Amit lehet átírhatom, amit nem lehet, azt nem engedi. Ha újra feloldom a sheetet, akkor VBA-ból is újra enged módosítani minden cellát.
Hogy van ez?
[ Szerkesztve ]
-
Fferi50
őstag
válasz ROBOTER #43302 üzenetére
Szia!
A VBA-ban is tudni kell a nem zárolt cellát kezelni. Viszont vannak olyan műveletek, amelyeket zárolt munkalapon nem lehet végrehajtani.
Makróval védetté teheted a munkalapot úgy, hogy az csak a felhasználó műveleteit gátolja, makróval mindent végrehajtathatsz. Ehhez a Protect metódus UserInterfaceOnly tulajdonságát True -ra kell állítanod, amikor védetté teszed a munkalapot.
Célszerűen a makró futtatása során a műveletek előtt ismét be kell állítani a védettséget:
Sheets(x).Protect Password:="Jelszó" , UserInterfaceOnly:=True
Ez a beállítás mindaddig hatásos, amíg a fájl nyitva van. A munkafüzet bezárása után viszont megszűnik a hatása. Ezért minden megnyitáskor újra ki kell adni ezt a parancssort a védeni kívánt munkalapokra.
Üdv. -
Delila_1
Topikgazda
válasz Fferi50 #43303 üzenetére
Nem szűnik meg a füzet bezárása után sem a lap védettsége.
Ha eredetileg nem volt védve a lap, aSheets(x).Protect Password:="Jelszó" , UserInterfaceOnly:=True
sor akkor is védetté teszi.
Védelemnél azt is be szoktam állítani, hogy a zárolt cellákat ne lehessen kijelölni.Sheets(x).EnableSelection = xlNoSelection
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz Fferi50 #43305 üzenetére
Ezt nem értem. A makróval – aminek az első sora tartalmazza a UserInterfaceOnly beállítását – akarunk valamit megváltoztatni a lapon. Ha nem akarjuk indítani a makrót, akkor is védve van a lap.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
válasz Delila_1 #43306 üzenetére
A lapvédelem - amennyiben azt korábban bekapcsoltuk a munkafüzetben - megmarad.
A UserInterfaceOnly lehetővé teszi, hogy másik makróval is írj az adott munkalapra, nem kell minden makróban szerepelnie.
A lap védve marad, ha bezárod és újranyitod a munkafüzetet, de a UserInterfaceOnly beállítás már nem érvényes, ismételten ki kell adni, hogy minden makró használhassa "kedvére" az adott munkalapot. Persze nem kötelező a megnyitáskor beállítani, de a munkalap változtatásra használt makróban benne kell lennie.[ Szerkesztve ]
-
ROBOTER
addikt
válasz Fferi50 #43303 üzenetére
Köszi!
Kipróbáltam, de valami mással van a baj.
Érvényesíteni próbálok egy cellában, lista hozzáadásával. És csak ezt nem engedi.
A cella nem zárolt. Kézzel enged hozzányúlni.s = "=AUX2!$A$2:$A$" + CStr(rowCount)
With Range("PARTNER").Cells(Target.Row, 1)
.Interior.Color = RGB(0, 200, 0) 'csak próba, működik
End With
With Range("PARTNER").Cells(Target.Row, 1).Validation
.Delete
' a következő sorra hibát ad:
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=s
End With
De makróból csak akkor engedi a validationt állítani, ha unprotected a sheet. Viszont engedi átszínezni vagy hasonlót.
Ha beteszem a fenti kód elé, hogy
ActiveSheet.Unprotect...
akkor megy, és jól megy. Megcsinálhatom, hogy minden makró elejére és végére beteszek 1-1 protect/unprotectedet, de nem túl elegáns.[ Szerkesztve ]
-
Delila_1
Topikgazda
válasz ROBOTER #43309 üzenetére
Az érvényesítésben szereplő adatokhoz adj címsort, majd a Beszúrás | Táblázat menüben alakítsd táblázattá. A kép szerint adj nevet az adatokat tartalmazó soroknak.
Rendeld a lenti makrót a lapodhoz, ahol az A oszlopba be akarod vinni az érvényesítést.
Ügyelj rá, hogy az az oszlop, ahova írni akarsz, ne legyen zárolt.
Szerek.: Mivel táblázattá alakítottad az érvényesítéshez szükséges adatokat, a táblázat bővülésekor automatikusan bővül a Lista nevű tartomány, nem kell külön gondoskodni róla.Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect
With Cells(Target.Row, 1).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Lista"
End With
Cells(Target.Row, 1).Activate
ActiveSheet.Protect
End Sub[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
válasz ROBOTER #43311 üzenetére
Szia!
Amennyiben az érvényesítésed listája növekvő-csökkenő és nem új listát kell megadni, akkor megoldás lehet egy rugalmasan változó területet tartalmazó nevet definiálni, menüből:
Pl.=ELTOLÁS(AUX2!$A$2;0;0;DARAB2(AUX2!$A$2":$A$1000);1)
neve legyen lista.
Makróból:ActiveWorkbook.Names.Add "lista2",RefersTo:="=OFFSET(AUX2!$A$2,0,0,COUNTA(AUX2!$A$2:$A$1000),1)"
Ebben az esetben,ha adsz az A oszlophoz újabb értékeket, az érvényesítés automatikusan ki fog rá terjedni.
Ráadásul, ha minden igaz a nevet is hozzá tudod adni a védett laphoz makróból.
Tehát egyszer az elején meghatározod az érvényesítést, utána nem kell hozzányúlni.
Üdv. -
lappy
őstag
Szeretnék egy olyan cella színezést ami egy véletlen szám generálás után törénik.
A táblázat így néz ki:
[kép]
amit szeretnék hogy egy véletlen számot generálok, majd amilyen értéket felvesz annak megfelelően a cella színe megváltozik a mellékelt színűre (adat nem lesz benne).
feltételes formázással meg lehetne, de sok ilyen cella van így vmi makró kellene amivel ezt meg tudom tenni, viszont nem egybefüggő tartományról van szó. A másik hogy több fajta véletlen szám is lehet, de ezek nem keverednek egymással. Minden ötletet szívesen fogadok.
Bámulatos hol tart már a tudomány!
-
Fferi50
őstag
Szia!
Tehát: generálsz egy véletlen számot, színeznéd a cellát, de a szám nem kerül bele a cellába? Jól értem? Mivel generálod a számot? Képlettel v. makróval? Mi van a különböző fajta számokkal, azokról hogyan deríted ki, milyen szín kell?
Egyébként a feltételes formázás nyilván akkor tud működni, ha a szám valahol ott van a munkalapon. Mivel az új Excel verziókban sok feltételes formázás is megadható, nincs akadálya annak, hogy a számértéktől függően add meg a formázás színét mind a 10 számra.
A színezést a makróban simán meg tudod oldani a generálás során - akkor is ha belekerül a szám, akkor is ha nem, pl. select case utasítással.
Üdv. -
lappy
őstag
válasz Fferi50 #43315 üzenetére
Igen a generált szám fog látszani a cellában. véletlen.között függvénnyel generálok közvetlen a cellában 1-9 egy számot az egyik oszlopban a másik oszlopban a 0,01-1000000 ig és a harmadik oszlopban is a megadott számokkal.
Ez valójában 4 oszlop az egyikben a színek vannak a másik háromban pedig a számok. Ha a második oszlopból generálok egy számot akkor a hozzá tartozó színű lesz a cella. És így tovább a harmadik-első és a negyedik-első oszlopok között.ezt hol találom? "számértéktől függően add meg a formázás színét mind a 10 számra"
[ Szerkesztve ]
Bámulatos hol tart már a tudomány!
-
Fferi50
őstag
Szia!
2 lehetőség is van:
a.) Kezdőlap - Feltételes formázás - cellakijelölési szabályok - egyenlő - ezt megcsinálod minden számra. Ha előtte kijelölted a területet, akkor arra lesz érvényes, ha nem, akkor a szabályok kezelése menüpontban állíthatod be a területet.
b.) Kezdőlap - Feltételes formázás - új szabály - csak az adott tartalmú cellák formázása - cellaérték - egyenlő utána területkijelölés:
Ezt is megcsinálod minden számra, azonos területre.
Üdv. -
escsé
tag
Sziasztok!
Kastamonu Kastamonu P501
A fent leírt cellatartalomból kellene kinyernem egy új cellába a "Kastamonu Kastamonu " utáni színkódot. Azaz a példa "P501"-t. -
ROBOTER
addikt
válasz Fferi50 #43313 üzenetére
Pferi50 és Delila_1: Köszönöm, összeraktam a segítségetekkel. Csináltam egy próbát, egyik lapon a lista, másikon az érvényesített cella, ami nem zárolt, de a lapot levédtem, és automatikusan bővül a lista
Pferi50:
ACOUNTA(AUX2!$A$2:$A$1000)
-t kicseréltemCOUNTA(AUX2!$A:$A)-1
-re. Próba szerint hibátlan.Ide kapcsolódik: Ha makróból definiálok egy nevet, feltételezem az a füzet bezárása és visszatöltésa után újra élni fog. Érdemes az újratöltéskor törölni, vagy ha már létezik a név, úgyis felülírja?
[ Szerkesztve ]
-
Fferi50
őstag
válasz ROBOTER #43323 üzenetére
Szia!
A nevek mindaddig megmaradnak a munkafüzetben, amíg ki nem törölted azokat - mindegy, hogy a munkafüzetben kézzel vagy makróval hoztad létre azokat. Tehát ismételt megnyitás esetén nem is kell már foglalkozni velük, hacsak nem módosítani szükséges.
Ha nem létezik a név, a Subscript out of Range (9 -es hibaszám) hibaüzenet adja tudtul.On Error Resume Next
nev=names("neve").name
if Err=9 Then ' a név még nincs létrehozva
létrehozod a nevet
endif
Err=0
On Error Goto 0
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz Petium001 #43326 üzenetére
Szia!
Talán az FKERES 4. paraméterét?
Az 1-es érték azt jelenti, hogy közelítő értéket ad vissza, a keresettnél nem nagyobb, legnagyobb értéket. Ehhez a keresendő értékeknek nagyságszerinti sorrendben kell lennie a táblázatban.
A 0 érték a pontos egyezőséget jelenti. Ekkor nem kell rendezettnek lenni a keresési oszlopnak.Üdv.
[ Szerkesztve ]
-
escsé
tag
Sziasztok!
Letöltöttem a mikroszoftos sablont. Ezt átalakítottam saját kedvemre táblázattá. A formázott részben (nem saját, örökölt formázás) csinálok egy hivatkozást egy másik munkalapra, akkor nem a tartalma, hanem a hivatkozás "képlete" látható.
Nincs szerkesztésben a cella.
pl.: =Adatlap!C3 látható.Mit kell beállítani hozzá, hogy a hivatkozott cella tartalma legyen látható?
[ Szerkesztve ]
-
Sakab
senior tag
Sziasztok, segítségetekre lenne szükségem. Win 7 alatt Excel 2007 el hiába nyitok meg xlsx táblázatokat, egyik cellában sem akarja kiszámolni a függvényeket. Ugyan ezt az xlsx-t megnyitva tableten ios, ott pedig szépen működik. Átírok 2 cellát és abból kiszámol kb másik 30at, kapásból változik. Itt pedig valamiért nem történik semmise. Szerintetek mi lehet a probléma?
-
Delila_1
Topikgazda
válasz ROBOTER #43323 üzenetére
Ha azt a listát, ahova az érvényesítéseket akarod makróval bevinni, táblázattá alakítod, az első cellába beviszed az érvényesítést. Mivel táblázat, a többi sorban is automatikusan ott lesz, és egyáltalán nem kell makró.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
ROBOTER
addikt
Szia!
Továbbra is gondom van ezzel az implicit intersectionnel.
Időnként hibát dob, nem tudom elkapni/beazonosítani az okot.
Létrehozok egy sheetet, történik rajta egy esemény (az első oszlopban kiválasztok egy elemet egy listából), ekkor jön ez a sor:
Range("KÖLTSÉG").Cells(rowID, 1).Formula = "=EGYSÉGÁR*MENNYISÉG"
Application-defined or object-defined error jön a fenti sorra, majd az Excel bezáródik és újraindul Majd kitöltök utána 10 sort alá, és tökéletesen működik, sőt az első sornál ha újra meghívódik a képlet beíró Sub, az is működik.
Ki lehet kerülni? Lehet úgy képletet tölteni a formula tulajdonságba, hogy az névvel ellátott oszlopokra hivatkozik, de tartalmaz sor-koordinátát? Vagy maradhatna, de mi lehet a gond?
-
szőröscica
addikt
Sziasztok!
Van egy VBA kodom, ami eddig tokeletesen mukodott (sot Excel 2010-es gepeken most is mukodik). Egy Excel tabrol kellene kikuldenie egy emailt, de Excel 2016-os gepeken Run-time error '-2147467262 (80004002)-t dob. No such interface supported.
A kodreszlet az alabbi, a masodik sornal akad el:
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Item.To = EmailList
.Item.CC = CCEmailList
.Item.Subject = Subject
.Item.Send
End WithVan esetleg otletetek, hogy mi baja lehet? Google elso korben nem sokat segitett.
Koszi
-
Fferi50
őstag
válasz szőröscica #43337 üzenetére
Szia!
Úgy néz ki, hogy megváltoztak a használható tulajdonságok.
[link] Itt megtalálhatod a hozzá tartozó helpet.
Az Application.Version függvényében hajtathatod végre a kódot egyik v. másik Excelben.
Az Excel 2016 verziója 16.0Üdv.
[ Szerkesztve ]
-
Petium001
csendes tag
válasz Fferi50 #43327 üzenetére
Szia!
Az a baj, hogy nagyon nem értek hozzá, és ebben a gazdasági helyzetben egyre rosszabb ahogy telnek a napok
Tudnál nekem segíteni? Neked szerintem gyorsan menne, megadnám milyen feltételek alapján kellene működnie, és tuti 2 perc alapján összeraknád ....
Előre is köszi
Petium
-
Mutt
aktív tag
válasz ROBOTER #43335 üzenetére
Szia,
Több infó kellene nekünk, mert nehéz kitalálni hogy miért nem fut le a kód.
Watch ablakba be kellene húzni a változókat és megnézni, hogy melyik nem kap értéket, lehet hogy nem is a tartományokkal van gond.
Két ötlet:
1. Spill funkció használata (itt feltételezem hogy az első sor fejléc. Ha kibontás hiba van, akkor foglalt a céltartományRange("KÖLTSÉG").Cells(2, 1).Formula2 = "=EGYSÉGÁR*MENNYISÉG"
2. INDEX függvénnyel próbáld meg a megfelelő elemet kinyerni:
Range("KÖLTSÉG").Cells(rowID, 1).Formula = "=INDEX(EGYSÉGÁR*MENNYISÉG,)"
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Lasersailing
senior tag
Sziasztok,
Azt miért csinálja az excel, hogy egy képlet módosítása esetén nem számolja ki a képlet értékét?
A képlet értéke a módosítás előtt MAX(0,F4) volt, azaz a "-d4"-et írtam be.
A calculate options automatic-on van.Ha F2-vel belépve a cellába magát a szöveget kijelőlve másolásra az adott excel sheet későbbi oszlopába bemásolom, majd ott módosítom, akkor számol rendesen.
-
Delila_1
Topikgazda
válasz Lasersailing #43342 üzenetére
A beállításoknál ki van kapcsolva az automatikus számolás.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz Lasersailing #43344 üzenetére
Erre. Most állítottad be, vagy így volt?
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
válasz Lasersailing #43342 üzenetére
Szia!
Nem lehet, hogy a cella formátuma szöveg? Nézd meg és állítsd át általánosra.
Üdv. -
North15
csendes tag
Sziasztok!
Excel 2016, VBA-ban hogyan tudok arra feltételt írni, hogy egy cellatartalom át van-e húzva? Itt a betűtípuson belüli
áthúzásragondolok. -
jackal79
aktív tag
Sziasztok,
egy kis segítségre lenne szükségem. Tételezzük fel, h egy oszlopban több ezer 1 és 2 érték szerepel. Arra lennék kíváncsi, h hány db 2-es érték van. Ehhez milyen függvény szükséges?
Köszi!
Új hozzászólás Aktív témák
- Kerékpárosok, bringások ide!
- Mr Dini: Ha szeretnéd rootolni az LG Smart TV-d, tedd meg most!
- Skoda, VW, Audi, Seat topik
- Motorola Edge 40 - jó bőr
- Politika
- Mibe tegyem a megtakarításaimat?
- Végre megjelenési dátumot kapott az xDefiant
- Megérkezett a Google Pixel 7 és 7 Pro
- Autós topik
- Crypto Trade
- További aktív témák...
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! LEGOLCSÓBB! Automatikus 0-24
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest