Sayfaları Yetkili Kişilerin Görmesi

Katılım
20 Nisan 2005
Mesajlar
451
Altın Üyelik Bitiş Tarihi
18.11.2019
Teknik olarak mümkün olup olmadığını öğrenmek istedim,
Bir dosyamda çok sayıda sayfam var bu dosyayı belli kişilere göndermek istiyorum ama
herkes sadece kendi ile ilgili yeri görmesini istiyorum, Ancak Herkesin kullandığı versiyon farklı, Yöneticilerin bütün sayfaları görmesi gerekirken bazı çalışanlar ise belli başlı sayfalara bakabilirler
bunu yapmak mümkünmü ?
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
Ekli dosyayı inceleyiniz. Tabi bu dosyayı kullanırken makro kodlarınızı şifrelemeyi unutmayın.
Sayfa2 şifre:222
Sayfa3 şifre:333
Sayfa4 şifre:444
Sayfa5 şifre:555
Sayfa6 şifre:666
Yönetici şifresi:000
 

Ekli dosyalar

Son düzenleme:

parametre

Destek Ekibi
Destek Ekibi
Katılım
28 Ocak 2007
Mesajlar
1,585
Excel Vers. ve Dili
ofis 2010 turkce
ete problem var sanırım indiremiyorum
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
Dosyada problem yok açılıyor, elinize sağlık sn.lemruk. Tabi kesin çözüm değil, mesela başka bir kitaptan çalıştırılacak aşağıdaki kodlar tüm sayfaları görünür yapar.
Kod:
Sub ac()
For i = 1 To Workbooks("KullanıcıŞifre.xls").Sheets.Count
    Workbooks("KullanıcıŞifre.xls").Sheets(i).Visible = xlSheetVisible
Next
End Sub
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
Farklı kullanıcı adlarına göre yetkilendirme yapılabilir. Bunun için netten bulduğum kullanıcı adını bulma ile ilgili kodları ekliyorum.

Kod:
    ' Makes sure all variables are dimensioned in each subroutine.
     Option Explicit
     ' Access the GetUserNameA function in advapi32.dll and
     ' call the function GetUserName.
     Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
     (ByVal lpBuffer As String, nSize As Long) As Long
     ' Main routine to Dimension variables, retrieve user name
     ' and display answer.
     Sub Get_User_Name()
     ' Dimension variables
     Dim lpBuff As String * 25
     Dim ret As Long, UserName As String
     ' Get the user name minus any trailing spaces found in the name.
     ret = GetUserName(lpBuff, 25)
     UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
     ' Display the User Name
     MsgBox UserName
     End Sub
Kaynak: http://support.microsoft.com/kb/152970
 
Katılım
20 Nisan 2005
Mesajlar
451
Altın Üyelik Bitiş Tarihi
18.11.2019
Değerli Arkadaşlar Dosyayı açamadım daha sade bir şekilde izah edebilirmisiniz
 
Katılım
20 Nisan 2005
Mesajlar
451
Altın Üyelik Bitiş Tarihi
18.11.2019
Birde bun deneyin.
Dosyayı Masa üstüne kaydettim.
Açtığımda makrolari etkinleştir dedi Tamam deyip etkinleştirdim
Sonra bir sürü Visual Basic Sayfası açtı bunlara ne yapacağım.
Herşeyden önemlisi Benim elimdeki kedni orhinal dosyama nasıl aktaracam bunlar
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
Selamlar,
Bu kodu Thisworkbook bölümüne kopyalayacaksınız.
Kod:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
For i = 2 To Sheets.Count
Sheets(i).Visible = xlSheetVeryHidden
Next i
End Sub
Bu kod siz dosyanızı kapatırken, Anasayfa dışındaki sayfaların gizlenmesini sağlar.

Aşağıdaki kodu Modüle bölümüne kopyalayacaksınız.
Kod:
Dim Son As Integer
Sub Gizle()
For i = 2 To Sheets.Count
Sheets(i).Visible = xlSheetVeryHidden
Next i
End Sub
Sub giris()
sifre = InputBox("Lütfen şifrenizi giriniz.")
If sifre = "" Then Exit Sub
If sifre = "000" Then
MsgBox "Sayın yönetici, şifre kabul edildi. Bütün sayfalar açılacak."
For i = 2 To Sheets.Count
Sheets(i).Visible = xlSheetVisible
Next i
ElseIf sifre = "222" Then
MsgBox "Şifre kabul edildi. Sayfa2 açılacak."
Sheets("Sayfa2").Visible = xlSheetVisible
ElseIf sifre = "333" Then
MsgBox "Şifre kabul edildi. Sayfa3 açılacak."
Sheets("Sayfa3").Visible = xlSheetVisible
ElseIf sifre = "444" Then
MsgBox "Şifre kabul edildi. Sayfa4 açılacak."
Sheets("Sayfa4").Visible = xlSheetVisible
ElseIf sifre = "555" Then
MsgBox "Şifre kabul edildi. Sayfa5 açılacak."
Sheets("Sayfa5").Visible = xlSheetVisible
ElseIf sifre = "666" Then
MsgBox "Şifre kabul edildi. Sayfa6 açılacak."
Sheets("Sayfa6").Visible = xlSheetVisible
Else:
Son = Son + 1
If Son > 2 Then
Call Gizle
MsgBox "Şifre giriş hakkınız doldu dosya kapanacak."
Application.Quit
ThisWorkbook.Close True
Exit Sub
End If
MsgBox "Yanlış şifre girdiniz. " & 3 - Son & " hakkınız kaldı."
End If
End Sub
Burada bizi ilgilendiren giris makrosu. Dikkat ettiyseniz bu makroda Sayfa1 dışında her sayfaya ayrı ayrı şifre verdim. Butona tıkladığınızda, karşınıza şifre sorgu ekranı çıkar. Burada hangi sayfanın şifresini girerseniz, o sayfa açılır. Yönetici şifresiyle giriş yaparsanız tüm sayfalar açılır.
Şifre girişi için 3 hak tanınmıştır. 3 defa yanlış girildiğinde dosya kapanır.
 
Katılım
20 Nisan 2005
Mesajlar
451
Altın Üyelik Bitiş Tarihi
18.11.2019
Arkadaşım Çok denedim malesef beceremedim
Benim Dosyam ekte,
Bir Çok sayfam var
3 tane şifremiz olmalı
1- Yönetici şifresi hersayfaya girebilmeli
2- Kullanıcı şifresi sadece izin vereceğimiz sayfaya gire bilmeli
3- Bu şifreye sahip olan sadece şifresinin yetkilim olduğu sayfaya girebilmeli


Selamlar
 

Ekli dosyalar

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
Yönetici şifresi: 000
Diğer şifreler sırayla: 222-333-444-555-666-777-888-999
 

Ekli dosyalar

Katılım
20 Nisan 2005
Mesajlar
451
Altın Üyelik Bitiş Tarihi
18.11.2019
Sanıırm Oldu eline sağlık
Sayfa adlarını değiştirmem veya sırasını değiştirmem
şifreleme etki edermi
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
Sanıırm Oldu eline sağlık
Sayfa adlarını değiştirmem veya sırasını değiştirmem
şifreleme etki edermi
İlk iki sayfa dışında, sayfaların yerini değiştirebilirsiniz.
Sayfa ismini değiştirdiğinizde, bunu kodda da değiştirmeniz gerekir.
 
Üst