Excel Hakkında Herşey

UserForm ile Veri Girişi Püf Noktaları

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

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)

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

Öncesi
Öncesi

Sonrası
Sonrası

Aşağıdaki komutla TextBox içeriği sayı olarak aktarılır.

Range("B" & r).Value = Val(Me.TBfatura.Value)

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

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

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

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

Paylaş:

Ara

Son eklenen

Hücre Rengine Göre Toplama Fonksiyonu

Bu bölümde hücre rengine göre toplama işlemi yapacağız. Aşağıdaki makro kodu, seçtiğimiz hücre rengi ile aralıktaki eşleşen hücrelerin değer...