Kullanıcı Yetkilerine Göre Menü Tanımlama

Kullanıcı Yetkilerine Göre Menü Tanımlama

  • Konuyu başlatan Konuyu başlatan mhezer
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

mhezer

Kullanıcı
Katılım
17 Mar 2023
Mesajlar
232
Excel Versiyonu
Excel 365
Excel Sürümü
64 Bit
Excel Dili
İngilizce
Merhaba Değerli arkadaşlarım,
Ekli Excel dosyasında kullanıcıya göre MultiPage sayfası üzerinde 2. sayfada bulunan menüleri her kullanıcıya ait sayfa üzerinde göstermek istiyorum.
Açılışta login formu ile giriş yaptığımızda yetki tanımına göre sayfalar gelmektedir.

Yardımcı olabilecek değerli hocalarıma ve arkadaşlarıma bu güzel çalışmaya verecekleri destek için teşekkür ediyorum.

Kullanıcı adı: admin
Şifrei: 123
 

Ekli dosyalar

Çözüm
@mhezer

Kabaca şöyle tarif edeyim, siz kendiniz detaylandırırsınız.

1) Boş veya uygun bir MODULE içine en üstte olacak şekilde Public yetki As Byte şeklinde bir satır ekleyin.
2) LoginForm kodlarının sonundaki LoginForm_Fail.Show satırını
If yetki = Empty Then LoginForm_Fail.Show
olarak değiştirin.
Bu satırın üstüne de UserForm1.Show 0 şeklinde bir satır ekleyin.
3) LoginForm kodlarında en sondaki End if satırının üstünde bulunan Exit Sub satırını silin veya SOL başına TEK TIRNAK işareti ekleyin.
3) LoginForm kodlarında ilgili yerlere ROL NUMARASI anlamında, aşağıdaki gibi
en fazla yetkiliden en az yetkiliye doğru 1'den başlayarak birer SAYI verin.

Kod:
İndirmek için giriş yapmanız gerekmektedir.
(1 satır)
@mhezer

Kabaca şöyle tarif edeyim, siz kendiniz detaylandırırsınız.

1) Boş veya uygun bir MODULE içine en üstte olacak şekilde Public yetki As Byte şeklinde bir satır ekleyin.
2) LoginForm kodlarının sonundaki LoginForm_Fail.Show satırını
If yetki = Empty Then LoginForm_Fail.Show
olarak değiştirin.
Bu satırın üstüne de UserForm1.Show 0 şeklinde bir satır ekleyin.
3) LoginForm kodlarında en sondaki End if satırının üstünde bulunan Exit Sub satırını silin veya SOL başına TEK TIRNAK işareti ekleyin.
3) LoginForm kodlarında ilgili yerlere ROL NUMARASI anlamında, aşağıdaki gibi
en fazla yetkiliden en az yetkiliye doğru 1'den başlayarak birer SAYI verin.

Kod:
İndirmek için giriş yapmanız gerekmektedir.
(9 satır)

4) UserForm1'e ait Initalize kodlarını aşağıdaki gibi düzenleyin.
Mantık şöyle:
-- önce userform açılırken Multipage1.Page2 üzerindeki tüm nesneleri gizle,
-- ardından yetki SAYIsına göre görünür olması gereken nesne isimlerini (baş harfleri hariç) Array(.....) olarak tanımlayın.
Koddaki tum_nesneler = Array("PR", "CL", "PV", "CO", "RE", "EM", "US", "CF", "CE") kısmı Page2'de genişleyen menülerin ilk harfler hariç isimleridir.
nesne = Array("PR", "CL", "PV", "CO", "RE", "EM", "US", "CF", "CE") satırları ise, belirleyeceğiniz yetki durumuna göre o yetki sahibi kullanıcı için görünür olacak nesne isimleridir (yine baş harfleri hariç) .

Kod:
İndirmek için giriş yapmanız gerekmektedir.
(28 satır)

Böylece Userform1 açıldığında sadece YETKİli olunan menüler görünür hale gelecek, diğerleri görünmeyecektir.
Görünüm açısından en çok kullanıcı türü tarafından görüntülenecek nesne en üstte, en az yetki türü tarafından görüntülenecek nesne en altta olacak şekilde VBA ekranında konumlandırmaları ayarlamak daha şık bir görünüm sağlayacaktır.
 
Çözüm
Merhaba @Ömer BARAN Hocam, Destekleriniz için teşekkür ederim. Formda belirttiğiniz gibi yaptım ancak, "With Me.MultiPage1.Page2" satıdda hata veriyor. Ayrıca sormak istediğim Array dizileri olarak tanımladığınız bölümdeki harfleri MultiPage sayfalarının isimleri olarak mı algılamalıyım? Sayfa isimlerini değiştirecek miyim? Tam anlamadım.
 
Destekleriniz için teşekkür ederim. Formda belirttiğiniz gibi yaptım ancak, resim dosyasındaki hatayı veriyor. Menü başlıklarını belirttiğiniz gibi değiştirdim.
 

Ekli dosyalar

  • 80070057.webp
    80070057.webp
    92.9 KB · Görüntüleme: 26
Konuya vakıf değilim ancak hataya bakılırsa, muhtemelen kodlarda geçen bir nesneyi bulamıyor.
Nesne isimlerini ve kodları gözden geçirin.
Kodları, F8 tuşu ile adımlayarak hangi satırda hataya düştüğünü bulun.
Bu şekilde sorunu tanımlarsanız, çözüm bulmak daha kolay olacaktır.
 
@mhezer, mesajlarınızı yazarken kod kullanmanız gerekiyorsa, lütfen kodları direk kopyalamayıp, "kod (code)" olarak ekler misiniz?
Mesaj yazdığınız yerin üzerindeki </> simgesi bunun için bulunmaktadır.
Bu şekilde yaptığınızda, emojiye dönüşmesinin de önüne geçmiş olacaksınız.

İyi çalışmalar.
 
Sayın ExcelDepo haklısınız daha dikkatli olacağım. @Ömer BARAN hocam, Menü başlıklarının isimlerini sizin belirtiğiniz gibi değiştiridiğimde 4 numaralı mesajımdaki hata ekranına düşüyor. Menü isimlerini eski haline getirdiğimdeyse ekli hata ekranına düşüyor.
 

Ekli dosyalar

  • menu.webp
    menu.webp
    14.9 KB · Görüntüleme: 23
  • Run Time 13.webp
    Run Time 13.webp
    39.2 KB · Görüntüleme: 22
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst Alt