MS EXCEL 2003 - prehlad pristupov

Všetko o programoch, problémoch...
POZOR: žiadny WAREZ
Používateľov profilový obrázok
sm_oOx^
VIP
VIP
Príspevky: 3368
Dátum registrácie: Ut 24. Aug, 2004, 14:00
Bydlisko: nitra

MS EXCEL 2003 - prehlad pristupov

Príspevok od používateľa sm_oOx^ »

je mozne nejakym sposobom sledovat, kto pristupoval (otvaral) konkretny *.xls subor?
...podotykam, ze nemam admin prava (jedna sa o sietovy disk v praci), preto to asi bude najlepsie osetrit to priamo v konkretnom subore.

...na nete som nasiel makro, ktore pri otvoreni suboru vypyta od uzivatela meno a priezvisko a udaje vlozi do buniek a1, b1:

Kód: Vybrať všetko

    Private Sub Workbook_Open() 
        Dim result As String 
        Dim lName As String 
        Dim fName As String 
        Dim sp As Integer 
        If Not IsEmpty(Range("A1").Value) Then Exit Sub 
        With Application 
            Do 
                result = .Trim(.InputBox( _ 
                    "Enter your first and last name:", Type:=2)) 
                Debug.Print result 
                If UCase(result) = "FALSE" Then Me.Close 
                sp = InStr(result, " ") 
            Loop Until sp > 0 
            fName = Left(result, sp - 1) 
            lName = Mid(result, sp + 1) 
            Range("A1").Value = fName 
            Range("B1").Value = lName 
        End With 
    End Sub
...potreboval by som tam vsak osetrit, ze ak je A1, B1 obsadena, nech sa posunie o riadok nizsie. nech sa nasledne subor presejvuje.

vie mi s tym niekto poradit? prip. ma nejaky iny napad, ako by sa to este dalo realizovat?
Používateľov profilový obrázok
Gogi
Používateľ
Používateľ
Príspevky: 473
Dátum registrácie: Št 03. Mar, 2005, 20:00
Bydlisko: TT

Príspevok od používateľa Gogi »

Kód: Vybrať všetko

Private Sub Workbook_Open()
Dim result As String
Dim lName As String
Dim fName As String
Dim sp As Integer

Dim i As Long: i = 1
    
    Do While Not IsEmpty(Range("A" & CStr(i)).Value)
        i = i + 1
        
        If i > 60000 Then Exit Sub
    Loop
    
    Do
        result = Trim$(Application.InputBox("Enter your first and last name:", Type:=2))
        If UCase(result) = "FALSE" Then Me.Close
        sp = InStr(result, " ")
    Loop Until sp > 0
    fName = Left(result, sp - 1)
    lName = Mid(result, sp + 1)
    Range("A" & CStr(i)).Value = fName
    Range("B" & CStr(i)).Value = lName

End Sub
ak si myslim slovami "nech sa nasledne subor presejvuje" - aby bol zosit ulozeny automaticky po prevedeni tohto kodu tak potom daj na koniec(pred end sub) tento kod

Kód: Vybrať všetko

    
    Application.DisplayAlerts = False
    ThisWorkbook.SaveAs
    Application.DisplayAlerts = True
edit: keby si bol mal tento topik v sekcii programovanie aj by som ti skor napisal
\_AMD_x2_3800+_@2,6_/\_XFX_9600_GT @,75-1,9-2,2_/\_3G_RAM_Výrobca_=>_miš&maš_/\_Power_by_ASUSTeK_A8N_SLI_Premium_/\_2x80G_Samsung_/\_Casemod_-_hotovo,_uz_sa_mi_viac_nexce_/
A tak som si raz zmenil farbu podpisu na zelenú aby bolo jasné čo mi modrá môže

Návrat na "Programy a problémy s nimi"