• DİKKAT

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

Class Module hk.

Katılım
12 Ekim 2004
Mesajlar
220
Excel Vers. ve Dili
365 Türkçe
Merhaba,

Class Module örneği buldum ve bir Userform için kullanıyorum.
Ama bir sürü Userform var dosyada!
Bütün Userform' ları içerecek bir Class Module çalıştırmak olası mı?
Mesela bütün Userform' lardaki Textbox' ları denetlemek istesek.

Yardımcı olur musunuz?

Saygılarımla...
 
Örneği buraya ekleyin üzerinde yardımcı olalım.
Çünkü elinizdeki örneğin yapısını bilmemiz lazım.
 
Merhaba,

10 adet userform, her userform' da 5 er adet textbox içeren bir dosya olacak.
Bu textboxlar dan da istediğimi denetleye bilmeliyim.
Böyle bir boş dosya hazırlayıp eklesem, bilmem olur mu?

Saygılarımla...
 
İlk mesajınızda, bulduğunuz bir Class Module nin sadece bir userform için çalıştığını ama sizin dosyanızdaki bütün user formların hepsinde aynı ClassModule nin çalışmasını istediğinizi söylediniz.

Örnek olarak göndereceğiniz dosya işte tam da bu dosya olmalı ki kesin ve net cevap alabilesiniz.
 
Merhaba,

Sadece ilk form için çalışan Class Module' de içeren dosyayı ekledim.
İsteğim bu Class Module' ün bütün formlar için çalışması.

Saygılarımla...
 

Ekli dosyalar

Module1 deki kodları silin aşağıdakileri kopyalayın.

Kod:
Dim Buton1() As New Class1
Sub ClasCalistir(frm As UserForm)
    Dim sayi As Integer
    Dim ctl As Control
    sayi = 0
    For Each ctl In frm.Controls
        If TypeName(ctl) = "TextBox" Then
            sayi = sayi + 1
            ReDim Preserve Buton1(1 To sayi)
            Set Buton1(sayi).TB = ctl
        End If
    Next ctl
End Sub

Açmak istediğiniz formu aşağıdaki örnekteki gibi açın.

Kod:
Sub test()
    ClasCalistir ANKARA
    ANKARA.Show
End Sub
 
Günaydın Arkadaşlar,
Örnek arıyordum. Bu vesile ile sorayım. Class Module ne zaman kullanılır? Bununla ilgili bilgiye nereden ulaşabilirim?
Saygılarımla
 
Merhaba,

Userform/Initialize' yi Class Module nasıl ekleyebiliriz?
Düzenleme yapabilir ya da örnek paylaşabilir misiniz?
 
Merhaba,

Çözemedim!
Bütün Userform' lar da geçerli Userform/Initialize' yi Class Module nasıl ekleyebiliriz?
 
Merhaba,

Class Module MSForms.UserForm olarak girdiğimde Initialize olayını göremedim!
 
Ne yapmak istediğinizi tam olarak yazarsanız çözüm üretmeye çalışalım.
 
Merhaba,

Nasıl ki Class Module ile Textbox, Combobox vs. toptan müdahele edebiliyoruz ki yukarıda kodları siz yazdınız, bütün Userform' ların Initialize lerine aynı şekilde müdahele edemez miyiz? Örnek olarak açılan bütün formlarda seçtiğim Combobox lara aynı değeri atamak istiyorum.
 
Merhaba,

Bu arada verilen cevabı yaklaşık 4 saat sonra gördüm.
Oysa sürekli girip bakıyordum sayfaya.
Demek ki her girdiğimizde sayfayı yenilemek gerekiyormuş.
 
Bu istediğiniz olay zaten yukarıdaki örnek ile yapılabilir.
Class Nesneyi normal formun Initailize olayında çalıştırırsak istediğiniz şey gerçekleşir.
Küçük bir örnek yapar buraya eklerim şimdi.
 
Aslında bunun için Class nesneye ihtiyaç yok fonksyon ile çok daha basit yapılabilir fakat Class nesne örneğini yapmak için aşağıdaki kodu UserFormun kod Editörüne kopyalayın. UserForma bir ComboBox ekleyin.

Kod:
Private Sub UserForm_Activate()
    Dim x As New Class1
    x.Yukle ComboBox1
End Sub

Aşağıdaki kodu Class1 in kod editörüne kopyalayın.

Kod:
Public CBox As MSForms.ComboBox

Public Sub Yukle(Comb As MSForms.Control)
    Set CBox = Comb
    CBox.AddItem "Ocak"
    CBox.AddItem "Şubat"
    CBox.AddItem "Mart"
    CBox.AddItem "Nisan"
    CBox.AddItem "Mayıs"
End Sub

Bu örnek biraz saçma oldu bunu da belirteyim çünkü gereksiz bir Class oldu.
 
Merhaba,

Diyelim bir çok Userform var ve hepsinde de Combobox1 içeriği "Ocak, Şubat Mart ..." diye 12 ayı içeriyor.
Bunu en kolay nasıl çözeriz diye sorsam.
Hangi Userform açılırsa açılsın Combobox1 içeriği "Ocak, Şubat Mart ..." diye ay isimleri ile dolsun, yardımcı olur musunuz?
 
Geri
Üst