• DİKKAT

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

Kişisel blog sayfa yenilikleri

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,400
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Merhabalar;
Çoğu kimsenin ilgisini çekmeyebilir ancak meraklısı için faydalı bir çalışma hazırladım.
Konu, ortak TextBox/ComboBox' larda Enter/Exit olaylarının güvenli ve stabil biçimde eklenmesi ve API fonksiyonlarının declare edilmeden hızlı çağrılar yapmak için TypeLibrary (.TLB) dosyasının kullanımı üzerinedir.


.
 
Eline sağlık dostum, denedim ... stabil çalışıyor.

Userform'a çalışma sırasında (run time) yeni bir TextBox ekledikten sonra "UserForm_Activate" yordamındaki kodu bir kez daha çalıştırınca, yeni eklenen TextBox nesnesi de başarılı bir şekilde cevap veriyor.

.
 
Son düzenleme:
Bunu hatırlattığın iyi oldu. UserForm_Activate olayı şu şekilde revize edildiğinde çalışma zamanı nesneleri için de geçerli olur.

C#:
Private Sub UserForm_Activate()
    Dim ctrl As Control, cls As CommonControlEnterExit
   
    Set col = New Collection
   
    For Each ctrl In Me.Controls
        Set cls = New CommonControlEnterExit
        cls.SetToVariable ctrl
        col.Add cls
    Next
   
    'RunTime control...
    Set ctrl = Me.Controls.Add("Forms.TextBox.1", "txtRuntime", True)
    ctrl.Top = 101.25
    ctrl.Left = 67.5
    ctrl.Text = "RunTime TextBox"
    '
    Set cls = New CommonControlEnterExit
    cls.SetToVariable ctrl
    col.Add cls
       
    If TypeOf Me.ActiveControl Is MSForms.TextBox Or _
        TypeOf Me.ActiveControl Is MSForms.ComboBox Then
       
        Me.ActiveControl.BackColor = vbYellow
    End If
   
End Sub

.
 
Harika görünüyor. Paylaşımınız için teşekkürler. Elinize emeğinize sağlık..
 
Üstad, bende resimdeki hatayı verdi..... sanırım benim sistemde eksik birşeyler var.


Capture.PNG
 
Dil ayarlarına takılmasın diye CHARSET=NONE yapmıştım ama yine de aramış galiba...
Aşağıdaki bağlantıdaki 32bit olan dll'leri "FB\32" isimli klasöre, 64bit içinde olnaları da "FB\64" isimli klasöre çıkardıktan sonra dener misin?


.
 
Üstad şimdi oldu .... eline, koluna, yüreğine sağlık .....

Not: Bu arada, tüm Excel dosyalarını kapattıktan sonra yeni bir Excel uygulaması başlattığımda menüler ve formül çubuğu .... hiçbirşey kalmadı ortalıkta. Sanırım Application nesnesine yaptığın müdahaleyi bir şekilde geri alman da gerekiyor.

Benim gibi bu durumla karşılaşanlar, Alt+F11 ile VBA editörüne geçip aşağıdaki kodu kopyaladıktan sonra çalıştırarak durumu düzeltebilirler.

C#:
Sub Test()
    Application.DisplayFullScreen = False
End Sub

.
 
Son düzenleme:
Merhaba Zeki Bey,

Bu işlerle uğraşan kişiler için eşsiz bir kaynak olmuş. Elinize emeğinize sağlık.

Paylaşımınız için çok teşekkürler.
 
Geri
Üst