< návrat zpět

MS Excel


Téma: Sdílený sešit rss

Zaslal/a 3.9.2010 9:23

Aloha všem :o)

Měl bych jednu perličku :)

1) Mám sdílený sešit excel a v něm cca 10 listů. Potřeboval bych nějaké makro, které by mi před uzavřením zkontrolovalo jestli jsou všichni listy uzamknuty. Pokud budou tak se zavře a uloží. Pokud bude nějaký list odemknutý tak se nebude zavírat ani ukládat. .. Bude to pro mojí kontrolu. Ale aby se toto makro spouštělo jen u mě (správce tabulky, jako že se uživatel pc jmenuju "Pepa").

2) Potřeboval bych něco, co mi při otevření sdíleného sešitu zobrazí nějaké okno a v něm budou zobrazeny jména uživatelů co mají nyní otevřenou tento sešit. Zas jen u mě, u správce "Pepa".

Co na to říkáte? :o)

Zaslat odpověď >

icon #002351
Poki
Zdravim,
na vasi druhou otazku by mohlo odpovedet nasledujici makro.
Pro jeho spusteni pri otevreni sesitu je nutne tento kod vlozit do modulu ThisWorkbook pod nazvem procedury: Private Sub Workbook_Open()
If Application.UserName <> "Pepa" Then Exit Sub
Dim Uziv(), Msg As String, i As Integer
Uziv = ThisWorkbook.UserStatus
For i = 1 To UBound(Uziv)
Msg = Msg & Uziv(i, 1) & " - " & Uziv(i, 2) & vbCrLf
Next
MsgBox Msg, vbInformation, "Sešit právě používají tito uživatelé"
citovat
icon #002353
Poki
A teda jeste moznou odpoved na 1. otazku: Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Application.UserName <> "Pepa" Then Exit Sub
Dim Zamceno As Boolean
Zamceno = True
For Each Sheet In Worksheets
If Sheet.ProtectContents = False Then
Zamceno = Zamceno * False
Msg = Msg & Sheet.Name & vbCrLf
End If
Next Sheet

If Zamceno = False Then
MsgBox Msg & vbCrLf & vbCrLf & "Sešit nebude uložen ani zavřen...", vbInformation, "Tyto listy nejsou zamčené"
Cancel = True
Else
Cancel = False
End If
End Sub
citovat
#002356
avatar
2) funguje :)) díki moc

Ješte mi tak napadlo nešlo by aby se automaticky vypisovali uživatelé do jednoho listu? Třeba já "Pepa" si spustím sešit. V jednom listu se mi ukáže moje jméno. Pokud si otevře sešit i Lojza tak se tam připíše do dalšího řádku atd. atd. A když někdo tabulku zas uzavře tak aby se vymazalo i jeho jméno na tom listu. Slo by to? Pokud ne nevadí 4 takhle mi to taky bohatě stačí...

Jinak ted jdu zkusit č. 1citovat
#002357
avatar
Číslo 1. mi zatím nejdecitovat
icon #002358
Poki
Číslo 1 jsem upravil, mělo by to uz fungovat.

K tomu vypisovani do listu - slo by to. Makro, ktere by uzivatele vypisovalo by se pravdepodobne spoustelo vzdy, kdyz by byl aktivovan list "Uzivatele", takze, aby se aktualizoval seznam lidi, muselo by se z tohotoho listu prepnout a znovu ho aktivovat. To vidim jako nejlepsi moznostcitovat
icon #002359
Poki
Slo by to takto: vytvorte si list "Uzivatele" a do modulu tohoto listu vlozte proceduru: Private Sub Worksheet_Activate()
If Application.UserName = "Pepa" Then Exit Sub
Dim Uziv(), Msg As String, i As Integer, nradek As Integer
Uziv = ThisWorkbook.UserStatus
Range("a2:b1000").ClearContents
For i = 1 To UBound(Uziv)
nradek = Application.WorksheetFunction.CountA(Range("a:a"))
Cells(nradek + 1, 1) = Uziv(i, 1)
Cells(nradek + 1, 2) = Uziv(i, 2)
Next
End Sub
citovat

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