Stránka 1 z 1

Excel - automatické kopírování z listu do listu a zámek list  Vyřešeno

Napsal: 07 dub 2011 20:52
od Tereziny
Mám prosím dva dotazy:

1) Potřebovala bych nastavit funkci, která by byla schopna podle parametru v první buňce kopírovat celou řádku do jiného listu a to tak, aby tato funkce mohla být nastavena na více listech a kombinovat tak jejich obsah v jiném listu:

Příklad:

pracovníci A, B, C pracují na projektech Z, Y, X. Každý z pracovníků i každý z projektů má svůj list

Pokud pracovník A zapíše do řádky 1 listu A, že na projektu X pracoval 1.1.2011 50 minut od 12:10 do 13:00, potřebovala bych, aby se tato informace zkompírovala do listu X. Ale pokud pracovník B také na řádce 1 listu B zapíše také práci na projektu X, potřebovala bych, aby se tato informace zkopírovala také do listu X, ale přitom nepřepsala původní informaci od pracovníka A.

Nejsem si jistá, zda jsem to popsala smysluplně.


2) Je možné zamknout list heslem tak, aby ho uživatel, který nemá heslo, nemohl ani zobrazit? Vím, jak to udělat u celého souboru nebo jak zamknout buňky proti přepisu, ale pokud jsou jen zamčené proti přepisu, je možné je "přečíst".

Díky za rady

T.

Re: Excel - automatické kopírování z listu do listu a zámek

Napsal: 08 dub 2011 16:52
od cmuch
ad 2)
Procedury je třeba vložit v projektu (Alt+F11) do listu co má být chráněn. Nesmí to být první list.
A i toto si musíš zaheslovat!!!

Kód: Vybrat vše

Option Explicit 'Vyžadovat deklarace
Dim flag As Boolean 'Příznak pro zpracování události

Private Sub Worksheet_Activate()
'Jestliže probíhá zpracování požadavku na heslo nespouštět znovu událostní proceduru
If flag Then Exit Sub
'Deklarace
Dim Heslo As String
Dim str As String
Dim Protected As String
'Inicializace
Protected = "Heslo" 'Zde zadej název chráněného listu
Heslo = "ahoj" 'Zde zadej svoje heslo
'Zakázat zpracování Private Sub Worksheet_Activate()
flag = True
'Skrytí aplikace. Jinak by pod požadavkem na heslo byl ten list vidět
Application.Visible = False
'Zadání hesla
str = InputBox("Zadej heslo")
'Ověření hesla. Pokud je správné zobrazí Protected list
'jinak zobrazí první list.
If str = Heslo Then
Sheets(Protected).Activate
Else
Sheets(1).Activate
End If
'Zobrazení aplikace
Application.Visible = True
'Povolit zpracování Private Sub Worksheet_Activate()
flag = False

End Sub


Toto je převzaté z http://www.pc-help.cz/viewtopic.php?f=35&t=15992&hilit=zamknut%C3%AD+listu

Re: Excel - automatické kopírování z listu do listu a zámek

Napsal: 11 dub 2011 20:58
od cmuch
Ahoj,
tak předchozí příspěvek je funkční do té doby dokud se povolí makra, když se nepovolí tak list je vidět!!! :mad:

Tak tady to je už vychytané, snad :-D
Zaheslovaný list se skryje vždy když se dá sešit uložit. Zdržuje při meziukládání - list se musí opětovně odemknout.
Ale ta bezpečnost :smile:
Zobrazení listu " kód " je dáno pod tlačítko OK.

Kód: Vybrat vše

Private Sub CommandButton1_Click()
'Deklarace
Dim Heslo As String
Dim str As String
Dim Protected As String
Dim List As Variant
'Inicializace
List = "Heslo" 'Zde zadej název chráněného listu "......"
Protected = List
Heslo = "xxx" 'Zde zadej svoje heslo
'Zakázat zpracování Private Sub Worksheet_Activate()
flag = True
'Skrytí aplikace. Jinak by pod požadavkem na heslo byl ten list vidět
Application.Visible = False
'Zadání hesla
str = TextBoxHeslo 'InputBox("Zadej heslo")
'Ověření hesla. Pokud je správné zobrazí Protected list
'jinak zobrazí první list.
If str = Heslo Then
Sheets(Protected).Activate
Sheets(List).Visible = xlSheetVisible ' Zobrazeni listu
TextBoxHeslo = ""
UserForm1.Hide
Else
MsgBox "Špatné heslo!!"
Sheets(1).Activate
TextBoxHeslo = ""
UserForm1.Hide
End If
'Zobrazení aplikace
Application.Visible = True
'Povolit zpracování Private Sub Worksheet_Activate()
flag = False

End Sub


Názornost v příloze.

Nutné je zaheslovat i VBA!

Zabezpečení projektu VBA:

Pokud máte hotový sešit, a nechcete aby někdo měnil nebo studoval Vaše makra,
je třeba VBA projekt (alt+f11) zamknout:

Jak na to?

Nahoře v menu volba:
Tools / VBA Project properties ... /

na kartě Protection
zvolíte Lock project for viewing
zadáte heslo do pole Password
potvrdíte heslo do pole Confirm password

Tím je projekt uzamčen.
Při příštím otevření VBA po Vás bude žádáno heslo

Asi je dobré si toto heslo někam zapsat nebo si ho pamatovat :-))

Re: Excel - automatické kopírování z listu do listu a zámek

Napsal: 13 dub 2011 16:40
od cmuch
Ad 1)
Otestuj, popřípadě si pouprav podle potřeb.