/ / Çoklu Sayfalar ile Excel VBA Kullanıcı Formu

Birden Çok Sayfalı Excel VBA Kullanıcı Formu

Aşağıda, birden çok sayfa içeren bir Kullanıcı Formu oluşturan Excel VBA'da bir programa bakacağız. Bu kullanıcı formu ayrıca görüntüler içeriyor.

Multipage Kontrol iki sayfa içerir. Sayfa 1'de kullanıcı kendi kişisel bilgilerini doldurabilir. Sayfa 2'de, kullanıcı en çok hangi resimden hoşlandığını gösterebilir.

Kullanıcı formu Sayfa 1
Kullanıcı formu Sayfa 2

Bu Kullanıcı Formunu oluşturmak için aşağıdaki adımları uygulayın.

1. Visual Basic Düzenleyicisi'ni açın. Proje Gezgini görünmüyorsa, Görüntüle, Proje Gezgini'ni tıklatın.

2. Ekle, Kullanıcı formu'nu tıklayın. Araç Kutusu otomatik olarak görünmezse, Görünüm, Araç Kutusu'nu tıklatın. Ekranınız aşağıdaki gibi ayarlanmalıdır.

Excel VBA'da Kullanıcı Formu Ekranı Kurulumu

3. Multipage denetimini, etiketleri, metin kutularını (ilk önce üstte, ikincisinin ikincisini), çerçeveyi, seçenek düğmelerini (solda, ikincisi sağda), liste kutusunu, Görüntü denetimini ve komut düğmesini ekleyin. Bu tamamlandıktan sonra sonuç, daha önce gösterilen Kullanıcı Formunun boş sürümüyle tutarlı olmalıdır. Örneğin, araç kutusundan çoğaltma üzerine tıklayarak bir çoğaltma denetimi oluşturun. Ardından, Kullanıcı Formu'ndaki Çok sayfalı bir denetimi sürükleyebilirsiniz. Cinsiyet çerçevesine vardığınızda, iki seçenek düğmeyi yerleştirmeden önce bu çerçeveyi çizmeyi unutmayın.

4. Kontrollerin isimlerini ve başlıklarını değiştirebilirsiniz. Adlar Excel VBA kodunda kullanılır. Altyazılar, ekranınızda görünenlerdir. Kontrollerin isimlerini değiştirmek iyi bir uygulamadır, ancak burada gerekli değildir çünkü bu örnekte sadece birkaç kontrolümüz vardır. Kullanıcı formu, Çok sayfalı sekmeler, etiketler, çerçeve, seçenek düğmeleri ve komut düğmesinin altyazısını değiştirmek için Görünüm, Özellikler Penceresi'ni tıklayın ve her bir denetimi tıklayın.

5. Kullanıcı formunu göstermek için çalışma sayfanıza bir komut düğmesi yerleştirin ve aşağıdaki kod satırını ekleyin:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Şimdi Sub UserForm_Initialize oluşturacağız. Userform için Show yöntemini kullandığınızda, bu sub otomatik olarak yürütülür.

6. Visual Basic Düzenleyicisi'ni açın.

7. Proje Gezgini'nde, UserForm1'e sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.

8. Soldaki açılır listeden Userform'u seçin. Sağdaki açılır listeden Sıfırla'yı seçin.

9. Aşağıdaki kod satırlarını ekleyin:

Private Sub UserForm_Initialize()

With ListBox1
    .AddItem "Mountains"
    .AddItem "Sunset"
    .AddItem "Beach"
    .AddItem "Winter"
End With

End Sub

Açıklama: Sayfa 2'deki liste kutusu doldurulacaktır.

Şimdi, Userform'un ilk bölümünü oluşturduk. Zaten düzgün görünmesine rağmen, liste kutusundan bir öğe seçtiğimizde veya OK düğmesine tıkladığımızda hiçbir şey olmayacak.

10. Görüntüleri (bu sayfanın sağ tarafı) indirin ve bunları "C: test" e ekleyin.

11. Proje Gezgini'nde, UserForm1'e çift tıklayın.

12. Liste kutusuna çift tıklayın.

13. Aşağıdaki kod satırlarını ekleyin:

Private Sub ListBox1_Click()

If ListBox1.ListIndex = 0 Then
    Image1.Picture = LoadPicture("C:testMountains.jpg")
End If

If ListBox1.ListIndex = 1 Then
    Image1.Picture = LoadPicture("C:testSunset.jpg")
End If

If ListBox1.ListIndex = 2 Then
    Image1.Picture = LoadPicture("C:testBeach.jpg")
End If

If ListBox1.ListIndex = 3 Then
    Image1.Picture = LoadPicture("C:testWinter.jpg")
End If

End Sub

Açıklama: Bu kod satırları, liste kutusundaki seçilen öğeye bağlı olarak bir resim yükler.

14. Tamam düğmesine çift tıklayın.

15. Aşağıdaki kod satırlarını ekleyin:

Private Sub CommandButton1_Click()

Dim emptyRow As Long

"Make Sheet1 active
Sheet1.Activate

"Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1

"Transfer information
Cells(emptyRow, 1).Value = TextBox1.Value
Cells(emptyRow, 2).Value = TextBox2.Value

If OptionButton1.Value = True Then
    Cells(emptyRow, 3).Value = "Male"
Else
    Cells(emptyRow, 3).Value = "Female"
End If

Cells(emptyRow, 4).Value = ListBox1.Value

"Close Userform
Unload Me

End Sub

Açıklama: İlk olarak, Sheet1'i etkinleştiriyoruz. Ardından boşRow belirliyoruz. EmptyRow değişkeni ilk boş satırdır ve her kayıt eklendiğinde artar. Ardından, bilgileri Userform'dan boşRow'un belirli sütunlarına aktarıyoruz. Son olarak, Userform'u kapatıyoruz.

16. Visual Basic Editor'den çıkın, aşağıda gösterilen etiketleri 1. satıra girin ve Userform'u test edin.

Sonuç:

Kullanıcı formunu test et

Ayrıca oku: