Dashboard yardım talebi

ugurcelik

Altın Üye
Katılım
31 Mayıs 2024
Mesajlar
26
Excel Vers. ve Dili
365 türkçe
Altın Üyelik Bitiş Tarihi
24-07-2025
Öncelikle merhaba,
üstadlarımdan, yönlendirme talebim var.

Müşteri alacaklarının, satışçılar tarafından sürekli ve güncel olarak izlenebilmesi için ekteki gibi bir dashboard kitabı oluşturdum. kitap, logo ile uyumlu çalışacak, ben istediğimde uygulamayı açarak SQL'den indirilen verileri güncelleyebileceğim. Görüleceği gibi ilk 4 sayfada sol tarafta tuşlar atadım. bu şekilde kullanıcılar istedikleri sayfaya gidebilecekler ve çıkış yapabilecekler.

Aşağıdaki isteklerim excel fonksiyonları ile halledilebilir mi, halledilirse nasıl halledilir. Yoksa bir vba macro gerekir mi, gerekirse kod oluşturabilir misiniz. Şimdiden teşekkürler.

İsteklerim:
1-Kitaba giriş için şifre istensin. Şifre iki türlü olsun, birinci şifre ile kullanıcılar (USER) kitabı açabilsin. USER rolü ile açanlar sadece ilk 4 sheeti görebilsin. Sheetlerde alttaki sheet sekmeleri de kapalı gelsin (gizlensin) kullanıcılara sadece birkaç yere giriş için izin vermek istiyorum, bunu sayfa koruma ile yapabileceğimi düşünüyorum.
2-İkinci bir şifre ile de ben ve yetkilendireceğim birkaç kişi (bu kişileri parametreler sayfama belli kodlarla atayabilirim) yönetici (ADMIN) rolü ile girebilsin ve bu kişiler her türlü işleme yetkili olsun.
 
Son düzenleme:

tugkan

Altın Üye
Katılım
6 Kasım 2004
Mesajlar
445
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
16-10-2025
Merhaba,
Deneyip sonucu paylaşır mısınız?

İstediğiniz işlevselliği Excel VBA kullanarak gerçekleştirebilirsiniz. Aşağıda adım adım çözüm önerisini bulabilirsiniz:
1. Kullanıcı Şifresi ile Kitap Açma
Öncelikle, kullanıcının şifreyi girmesi gerektiği ve doğru şifre ile belirli sayfalara erişebileceği bir şifre kontrolü yapalım. Ayrıca, kullanıcı (USER) sadece belirli sayfalara erişebilsin ve sayfa sekmeleri gizlensin.
VBA Kodları:
  1. Şifre Kontrolü için VBA Kodu: ThisWorkbook olayına ekleyeceğiz
Kod:
Private Sub Workbook_Open()
    Dim userPassword As String
    Dim adminPassword As String
    Dim response As String

    ' Şifreler
    userPassword = "user123" ' USER şifresi
    adminPassword = "admin123" ' ADMIN şifresi

    ' Şifre girilmesi isteniyor
    response = InputBox("Kitaba giriş için şifreyi girin:", "Giriş Şifresi")

    If response = userPassword Then
        ' USER şifresi ile giriş
        Call UserAccess
    ElseIf response = adminPassword Then
        ' ADMIN şifresi ile giriş
        Call AdminAccess
    Else
        MsgBox "Yanlış şifre! Kitap kapatılıyor.", vbCritical
        ThisWorkbook.Close False ' Yanlış şifre girildiğinde kitabı kapat
    End If
End Sub
2.USER Erişimi: USER rolü ile açıldığında sadece ilk 4 sayfaya erişim sağlanacak ve diğer sayfa sekmeleri gizlenecek.

Kod:
Sub UserAccess()
    ' İlk 4 sayfanın gösterilmesi
    Sheets("Sheet1").Visible = True
    Sheets("Sheet2").Visible = True
    Sheets("Sheet3").Visible = True
    Sheets("Sheet4").Visible = True

    ' Diğer sayfaların gizlenmesi
    Sheets("Sheet5").Visible = False
    Sheets("Sheet6").Visible = False
    Sheets("Sheet7").Visible = False

    ' Sayfa sekmelerinin gizlenmesi
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", False)"
    
    ' Sayfa koruması ekleyerek sadece belirli alanlara giriş izni ver
    Sheets("Sheet1").Protect UserInterfaceOnly:=True
    Sheets("Sheet2").Protect UserInterfaceOnly:=True
    Sheets("Sheet3").Protect UserInterfaceOnly:=True
    Sheets("Sheet4").Protect UserInterfaceOnly:=True
End Sub
3.ADMIN Erişimi: ADMIN şifresi ile giriş yapıldığında tüm sayfalara erişim izni verilir ve sayfa koruması kaldırılır.

Kod:
Sub AdminAccess()
    ' Bütün sayfaların görünür olması
    Sheets("Sheet1").Visible = True
    Sheets("Sheet2").Visible = True
    Sheets("Sheet3").Visible = True
    Sheets("Sheet4").Visible = True
    Sheets("Sheet5").Visible = True
    Sheets("Sheet6").Visible = True
    Sheets("Sheet7").Visible = True

    ' Sayfa korumalarının kaldırılması
    Sheets("Sheet1").Unprotect
    Sheets("Sheet2").Unprotect
    Sheets("Sheet3").Unprotect
    Sheets("Sheet4").Unprotect
    Sheets("Sheet5").Unprotect
    Sheets("Sheet6").Unprotect
    Sheets("Sheet7").Unprotect

    MsgBox "Admin olarak giriş yaptınız!"
End Sub
2. Yetkili Kişiler için Parametrelerle Yönetim
Bir parametreler sayfası oluşturabilirsiniz (örneğin, "Parametreler" adında bir sayfa). Bu sayfada, kullanıcılar için bir kod listesi bulunur ve hangi kişilerin ADMIN yetkisi olduğunu buradan kontrol edebilirsiniz.

Kod:
Sub AdminAccess()
    Dim adminCode As String
    Dim wsParam As Worksheet
    Set wsParam = ThisWorkbook.Sheets("Parametreler")

    ' Parametreler sayfasında ADMIN kodları
    adminCode = InputBox("ADMIN kodunu girin:")

    If IsAdmin(adminCode, wsParam) Then
        ' ADMIN erişimi sağla
        Sheets("Sheet1").Visible = True
        Sheets("Sheet2").Visible = True
        Sheets("Sheet3").Visible = True
        Sheets("Sheet4").Visible = True
        Sheets("Sheet5").Visible = True
        Sheets("Sheet6").Visible = True
        Sheets("Sheet7").Visible = True
        Sheets("Sheet1").Unprotect
        Sheets("Sheet2").Unprotect
        Sheets("Sheet3").Unprotect
        Sheets("Sheet4").Unprotect
        Sheets("Sheet5").Unprotect
        Sheets("Sheet6").Unprotect
        Sheets("Sheet7").Unprotect
        MsgBox "Admin olarak giriş yaptınız!"
    Else
        MsgBox "Yetkisiz erişim!"
        ThisWorkbook.Close False
    End If
End Sub

Function IsAdmin(adminCode As String, ws As Worksheet) As Boolean
    Dim rng As Range
    Set rng = ws.Range("A1:A10") ' Admin kodlarının listelendiği hücre aralığı

    If Not IsError(Application.Match(adminCode, rng, 0)) Then
        IsAdmin = True
    Else
        IsAdmin = False
    End If
End Function
3. Sayfa Koruması ve Yetki Verme
Sayfa koruması, sadece belirli hücrelere erişim izni verir. UserInterfaceOnly:=True parametresi ile sayfa içeriği korunurken, VBA aracılığıyla değişiklik yapmaya izin verirsiniz.

4. Sonuç
Bu düzenleme ile:

  • USER şifresi ile giriş yapanlar, sadece belirlediğiniz ilk 4 sayfayı görebilir ve sayfa sekmeleri gizlenir.
  • ADMIN şifresi ile giriş yapanlar, tüm sayfalara erişebilir ve sayfa koruması kaldırılır.
  • Parametreler sayfasındaki kodlar ile hangi kişilerin ADMIN yetkisi olduğunu kontrol edebilirsiniz.
 

ugurcelik

Altın Üye
Katılım
31 Mayıs 2024
Mesajlar
26
Excel Vers. ve Dili
365 türkçe
Altın Üyelik Bitiş Tarihi
24-07-2025
çok teşekkür ederim Tuğkan bey

akşama ilk iş bunları deneyip, tekrar bilgi vereceğim. bunların yapılabilir olduğuna çok sevindim.
 

ugurcelik

Altın Üye
Katılım
31 Mayıs 2024
Mesajlar
26
Excel Vers. ve Dili
365 türkçe
Altın Üyelik Bitiş Tarihi
24-07-2025
üstadım. şahane oldu. ellerinize sağlık.
 

ugurcelik

Altın Üye
Katılım
31 Mayıs 2024
Mesajlar
26
Excel Vers. ve Dili
365 türkçe
Altın Üyelik Bitiş Tarihi
24-07-2025
tuğkan bey bir şey daha fark ettim.

user'ların, alt+f11 ile vba kodlarını görüntülemesini nasıl engelleyebiliriz.
 

tugkan

Altın Üye
Katılım
6 Kasım 2004
Mesajlar
445
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
16-10-2025
Kullanıcıların VBA kodlarını görmesini engellemek için VBA proje penceresini parola korumasıyla kilitleyebilirsiniz. Böylece, kullanıcılar Alt + F11 tuşlarına basarak VBA Editörü'ne erişseler bile, kodları görüntülemek için parolaya ihtiyaç duyacaklardır.

Adımlar:

1. VBA Editörünü Açın: Excel'de Alt + F11 tuşlarına basarak VBA Editörü'nü açın.


2. Proje Özelliklerine Erişin:

VBA Editöründe, sol taraftaki Project Explorer penceresinde, projeye sağ tıklayın ve VBAProject Properties (Türkçesi "VBAProject Özellikleri") seçeneğine tıklayın.



3. Protection (Koruma) Sekmesine Geçin:

Açılan pencerede Protection (Koruma) sekmesine geçin.



4. Password (Parola) Ayarını Yapın:

"Lock project for viewing" (Türkçesi: "Görüntüleme için projeyi kilitle") seçeneğini işaretleyin.

Password (Parola) alanına bir parola girin ve altındaki alanı kullanarak parolayı doğrulayın.



5. Dosyayı Kaydedin ve Kapatın:

Parolayı ayarladıktan sonra dosyayı kaydedin ve Excel'i kapatıp yeniden açın.

Bu işlemlerden sonra, kullanıcılar VBA Editöründe projeyi görüntülemeye çalıştıklarında parola korumasıyla karşılaşacaklardır.




Ek Bilgi:

Bu yöntemle VBA kodları tamamen gizlenir ve parola girilmediği sürece kimse kodlara erişemez. Parolayı unutmadığınızdan emin olun, aksi halde kodlara erişim tamamen kaybedilebilir.
 

ugurcelik

Altın Üye
Katılım
31 Mayıs 2024
Mesajlar
26
Excel Vers. ve Dili
365 türkçe
Altın Üyelik Bitiş Tarihi
24-07-2025
tekrar teşekkürler.
 

tugkan

Altın Üye
Katılım
6 Kasım 2004
Mesajlar
445
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
16-10-2025
Rica ederim. İyi çalışmalar
 
Üst