Bu bölümde UserForm’lar hakkında çeşitli püf noktalarını inceleyeceğiz.
View -> Tab Order alanında kullanıcı TAB tuşuna basınca sırasıyla gidilecek alanları belirleyebilirsiniz.
Userform Properties alanında ShowModal özelliğini False yaparsanız Userform açıkken kullanıcı Excel sayfasına veri girişi yapabilir.
Aşağıdaki komut ile TextBox içeriği kontrol edilir.
If Me.TBMusteri = VBA.Constants.vbNullString Then
MsgBox "Lütfen müşteri adı girin"
Me.TBMusteri.SetFocus
Exit Sub
End If
Code language: VB.NET (vbnet)
Aşağıdaki komut ile TextBox’a girilen yazı için yazım düzeni sağlanır.
Range("A" & r).Value = Excel.WorksheetFunction.Proper(Me.TBMusteri.Value)
Code language: VB.NET (vbnet)
Aşağıdaki komut ile Checkbox görünürlüğü kontrol edilebilir.
Private Sub TBMusteri_Change()
If Me.TBMusteri.Value <> "" And Me.TBfatura.Value <> "" Then
Me.CBcikti.Enabled = True
Else
Me.CBcikti.Enabled = False
End If
End Sub
Code language: VB.NET (vbnet)
Öncesi
Sonrası
Aşağıdaki komutla TextBox içeriği sayı olarak aktarılır.
Range("B" & r).Value = Val(Me.TBfatura.Value)
Code language: VB.NET (vbnet)
Aşağıdaki komutla CheckBox içeriği kullanıcı seçimine göre Excel’e aktarılır
If Me.CBcikti Then '=True (checkbox) anlamına gelir.
.Range("C" & r).Value = "EVET"
Else
.Range("C" & r).Value = "HAYIR"
End If
Code language: VB.NET (vbnet)
Eğer RowSource özelliğini kullanmadan ComboBox doldurmak istiyorsak Initialize olayını kullanmamız gerekir:
Private Sub UserForm_Initialize()
Me.CBislem.AddItem "Seçenek 1"
Me.CBislem.AddItem "Seçenek 2"
Me.CBislem.AddItem "Seçenek 3"
End Sub
Code language: VB.NET (vbnet)
ComboBox’da 1. Seçenek ListIndex = 0’dır. 2. Seçenek ListIndex = 1’dir. 3. Seçenek ListIndex = 2’dir…
If Me.CBislem.ListIndex = 0 Then ElseIf Me.CBislem.ListIndex = 1 Then End If
Code language: VB.NET (vbnet)
Aşağıdaki komutla listbox içinde birden fazla seçili sayfaları yazdırabilirsiniz:
Sub secili_sayfa_yazdirma()
Dim i As Long, c As Long
Dim SayfaArray() As String
With ActiveSheet.ListBoxSayfa
For i = 0 To .ListCount - 1
If .Selected(i) Then
ReDim Preserve SayfaArray(c)
SayfaArray(c) = .List(i)
c = c + 1
End If
Next i
Sheets(SayfaArray()).PrintPreview
' Sheets(SayfaArray()).PrintOut
End With
End Sub
Code language: VB.NET (vbnet)