-
Fototrend
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
-
bteebi
veterán
Sziasztok!
Event makrókkal próbálnám azt elérni, hogy bizonyos cellákat/oszlopokat csak bizonyos személyek (
Environ("UserName")-mel kiolvasott név alapján) szerkeszthessenek egy adott (mondjuk "DZS" nevű) munkalapon. Nagyrészt működik is, már csak 1-2 nem annyira jelentős anomália van, amiknek jó eséllyel könnyű a megfejtése, de én egyelőre nem jöttem rá.Az egyik oszlopot (5.) csak C és D személy írhatja, a többit pedig csak A és B, de rajtuk kívül senki más (tehát pl. E és F semmit sem csinálhat). Ehhez egy
Worksheet_Changemakrót használok. Ez most már működik. Viszont azt is szeretném megakadályozni, hogy a korábban pl. az 5. oszlopba a jogosult személyek által bevitt adatokat ki tudják törölni arra nem jogosultak. AWorksheet_Changemakró ugye csak akkor fut le, ha a változás már megtörtént. Tehát kiírja azt, hogy pl. nem lehet szerkeszteni az adott cellát, de addigra az már szerkesztődött. Vagyis vissza kell másolni az eredeti cellaértéket. Erre van egyWorksheet_SelectionChangemakró (nyilván ugyanazon a lapon):Dim origvalue As VariantPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)origvalue = TargetEnd SubEz csak annyit csinál, hogy tárolja a cella előző értékét, és ha a módosítás/törlés nem megengedett, akkor a
Worksheet_Changemakróval beleírja azt, hogy Target = origvalue. Ez teljesen jól működik, csak az a baj, hogy amikor még csak megnyitod a file-t, akkor azorigvalueüres, mert nincs seWorksheet_Change, seWorksheet_SelectionChange, szóval még mindig ki tudod törölni azon cella korábbi értékekét (file megnyitásonként csak a legelsőt), amelyiken éppenséggel a kurzor áll.Ez ellen kellene egy
Private Sub Workbook_Open(), amiről most már tudom, hogy aThisWorkbook-ba kell rakni, és részint működik is, de nem pont úgy, ahogy szeretném:Public origvalue As VariantPrivate Sub Workbook_Open()origvalue = ActiveCell.ValueEnd SubÉs így az origvalue-ban a megnyitáskor aktív cella értéke tárolódik. Viszont ha nem kattintok sehová, csak del-t nyomok a megnyitás után, akkor mégis ki tudom törölni az értéket.
Próbáltam már többféleképp megoldani, de sehogy se jó. Hogy kellene úgy átírnom, hogy a másik ("DZS") munkalapon lévő kódban is tudjam használni ezt az
origvalue-t? (Próbáltam azon a lapon isPublic origvalue As Variant-ként, de az se segített.) Egyszerű megoldás lenne, ha valami üres cellára ugrana megnyitáskor aPrivate Sub Workbook_Open(), de az egy elég gagyi megoldás lenne.Nagyon köszönöm a segítségeteket!

Új hozzászólás Aktív témák
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - 15% AKCIÓ
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem.
- Microsoft Office 2024 Home Business dobozos
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Apple Watch Series 10 46mm GPS+Cellular Titanium, Újszerű, 1 Év Garanciával
- BESZÁMÍTÁS! Microsoft XBOX Series S 512GB játékkonzol garanciával hibátlan működéssel
- BESZÁMÍTÁS! GIGABYTE B760M i5 13600K 32GB DDR4 1TB SSD RTX 4070 Super 12GB Lian Li Vector V100R 650W
- 27% - ASUS VivoBook S15 OLED! Snapdragon X Elite / 16GB DDR5 / 1TB NVMe Notebook!
- Honor 200 Lite / 8/256GB / Kártyafüggetlen / 12Hó Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

Fferi50