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

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
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
744
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
744
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
744
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

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,327
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,327
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Forumda bolca var. Arama yaparsanız ulaşırsınız.
 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,104
Excel Vers. ve Dili
Excel-2003 Türkçe
Örnek dosya ekleyin
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
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