Soru Kullanıcı Adı Tutuyorsa Butonları Aktif Yap

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
570
Excel Vers. ve Dili
2016 64 TR
Merhaba herkese
Biraz uğraştım ama kodda hata alıyorum .
kullancı adi userformu : Form.ComboBox1 den alınıyor

Form userformunun comboBox1 de kayıtlı plan kullanıcı adı eğer KONTROL sayfasının P2:p aralığında varsa eğer tüm commandbutonları aktif et eğer kullanıcı adı uyuşmuyorsa belirtilen commandButonları sadece aktif et

Not tüm commandabutonlar ya CommanButton diye ya da başları MY olarak başlıyor ortak yanı bu.
Yardımcı olabilecek varsa çok sevinirim.

Kod:
If Worksheets("KONTROL")("P2:P") = Form.ComboBox1.Value Then

        For i = 1 To Me.Controls.Count

            If Left(Me.Controls(i).Name, 13) = "CommandButton" Or Left(Me.Controls(i).Name, 2) = "MY" Then

                Me.Controls(i).Enabled = True

            End If
        Next
 
Son düzenleme:

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
570
Excel Vers. ve Dili
2016 64 TR
Hocam istediğim böyle değil.
Excel sayfası ilk açıldığında form adlı userform açılıyor combobox1de kullanıcı adı seçiliyor.
şifre giriliyor doğru ise Giriş userformu açılıyor.

Benim istediğim ise form adlı userformun combobox1deki kullanıcı adı Kontrol sayfası P2: P arasındaki isimlerden biriile uyuşuyor ise tüm commandbuttonlar aktif olsun yok uyuşmuyorsa ismini yazdığım commandbuttonlar aktif olsun
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
570
Excel Vers. ve Dili
2016 64 TR
Aşağıdaki gibi bir kod girince hata veriyor
Kod:
Private Sub UserForm_Initialize()
    If Form.ComboBox1.Value = Worksheets("KONTROL")("P2:P") Then

        For i = 1 To Me.Controls.Count
            If Left(Me.Controls(i).Name, 13) = "CommandButton" Or Left(Me.Controls(i).Name, 2) = "MY" Then
                Me.Controls(i).Enabled = True
            End If

        Next
    End If
End Sub
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
570
Excel Vers. ve Dili
2016 64 TR
Aşağıdaki kod da olmadı
Kod:
Dim Ctrl As Object, Enbld As Boolean
If IsError(Application.VLookup(Form.ComboBox1.Value, Worksheets("KONTROL")("P:P"), 1, 0)) Then Enbld = False Else Enbld = True
For Each Ctrl In Me.Controls
    If TypeName(Ctrl) = "CommandButton" Then Ctrl.Enabled = Enbld
Next
Set Ctrl = Nothing
 

Korhan Ayhan

Moderatör
Yönetici
Katılım
15 Mart 2005
Mesajlar
30,262
Excel Vers. ve Dili
OFFICE 2019 PRO TR
Ben bu yazım şeklini ilk defa görüyorum.

Bu şekilde çalışıyor mu?

Kod:
Worksheets("KONTROL")("P:P")
EĞERSAY (Countif) ile ismi saydırıp sonuca gidebilirsiniz.
 

Korhan Ayhan

Moderatör
Yönetici
Katılım
15 Mart 2005
Mesajlar
30,262
Excel Vers. ve Dili
OFFICE 2019 PRO TR
Forumda bolca var. Arama yaparsanız ulaşırsınız.
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
570
Excel Vers. ve Dili
2016 64 TR
Sayın @muygun çok teşekkür ederim elinize emeğinize sağlık aşağıdaki kodlarla sorun kısmen çözüldü gibi.
kodu kullanıcı adı If IsError(Application.VLookup(Form.ComboBox1.Value, Worksheets("KONTROL").Range("P:P"), 1, 0)) Then Enbld = False Else Enbld = True bura ile uyuşmuyorsa izin verilen CommandButtonları aktif yap bu kısmı yapmaya çalışacağım
Kod:
Private Sub UserForm_Initialize()

Dim Ctrl As Object, Enbld As Boolean
If IsError(Application.VLookup(Form.ComboBox1.Value, Worksheets("KONTROL").Range("P:P"), 1, 0)) Then Enbld = False Else Enbld = True
For Each Ctrl In Me.Controls
    If TypeName(Ctrl) = "CommandButton" Then Ctrl.Enabled = Enbld
Next
Set Ctrl = Nothing

     End Sub
 
Üst