< návrat zpět

MS Excel


Téma: rozeviraci seznam a zamknute bunky rss

Zaslal/a 20.11.2020 15:21

Omlouvam se pokud je jednoduche, ale nemohu na to prijit ..
Mam sloupec v tabulce kde je nastaven rozeviraci seznam (Overeni dat) , tim padem tam nikdo nemuze vlozit nic jineho nez co je definovano v seznamu. Bohuzel nemohu zjistit, jak to zabezpecit , aby nikdo nemohl vsechny ty hodnoty jednoduse smazat ... Pokud ty bunky ve sloupci dam zamcit, tak je tam pri zamknutem listu nemohu ani vlozit ....Je nejake jednoduche reseni ,abych mohl vkladat do sloupce nejen hodnoty z rozeviraciho seznamu,ale take zabezpecit aby to nemohl pote nikdo smaznout?

Diky moc za pripadnou pomoc

Zaslat odpověď >

#048958
avatar
řešením je
Nastavit prázdnou(é) buňku(buňky) s Ověřením dat jako odemknutou(é),zamknout List pod heslem.
Pravý klik na název Listu->Zobrazit kód
vložit tento kód
Dim mRg As Range
Dim mStr As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
Set mRg = Target.Item(1)
mStr = mRg.Value
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRg As Range
On Error Resume Next
Set xRg = Intersect(Range("A1:F8"), Target)
If xRg Is Nothing Then Exit Sub
Target.Worksheet.Unprotect Password:="123"
If xRg.Value <> mStr Then xRg.Locked = True
Target.Worksheet.Protect Password:="123"
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
Set mRg = Target.Item(1)
mStr = mRg.Value
End If
End Sub

upravit oblast které se to týká a upravit heslo v kódu
a uložit soubor s podporou maker.

Otázka je ale, co když udělá dotyčný chybu a vybere špatnou položku ze seznamu?

Další možností by bylo na zvlášť listu sledovat případné změny buněk a zaznamenávat datum, čas, případně uživatele který změnu provedl. To už by ale museli zdejší guru na VBA jako marjankaj elninoslov a jim podobnícitovat
#048959
avatar
Možná jsem šel na to moc jednoduše:

Buňky (A1:A20 ) nastavit jako "odemknuté". Po vložení hodnoty se zamkne (a s tím i samozřejmě celý list)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range

Set KeyCells = Range("A1:A20")

If Intersect(Target, KeyCells) Is Nothing Then Exit Sub
ActiveSheet.Unprotect
Range("A" & Target.Row).Locked = True 'zamkne
Range("A" & Target.Row).Interior.ColorIndex = 3 'pozadí červené

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub
Příloha: zip48959_zamknout.zip (13kB, staženo 27x)
citovat
#048960
avatar
No neviem, či je to najšťastnejšie riešenie. Ale ani overenie dát nezabráni vloženie akejkoľvek hodnoty cez CTRL+C a CTRL+V

Najlepšie je zaheslovať ten súbor, aby sa ti doňho nikto nedostal. A potom si ho môžeš pokašlat iba ty sám.citovat
#048961
avatar
@marjankaj: Já jsem to pochopil tak, že když do buňky zapíši nějakou hodnotu (třeba pomocí rozevíracího seznamu), tak pokud ji pak zamknu, tak na té buňce již žádnou změnu nemohu provést. Ani přes ověření dat (seznam) ani pomocí Ctrl+V.
Pomocí Ctrl+V obejdu ověření dat, ale už ne zamknutou buňku.citovat
#048962
avatar

Jiří497 napsal/a:


Pomocí Ctrl+V obejdu ověření dat, ale už ne zamknutou buňku.

To máš pravdu. Ja som odpovedal zadávateľovi.

"tim padem tam nikdo nemuze vlozit nic jineho nez co je definovano v seznamu"citovat
#048963
avatar

marjankaj napsal/a:

To máš pravdu. Ja som odpovedal zadávateľovi.
Aha. Tak to jo...citovat
#048976
avatar
Diky moc vsem za prispevky , myslel jsem ze to jde nejak jednoduseji, ale vyresim to tedy doufam nejakym makrem , ktere bude bunky zamykat po vybrani/vyplneni z rozeviraciho seznamu...
Jeste jednou dikycitovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje