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 SubCode language: VB.NET (vbnet)