• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
745
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:
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
 
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
 
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
 
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.
 
Forumda bolca var. Arama yaparsanız ulaşırsınız.
 
Örnek dosya ekleyin
 
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
 
Geri
Üst