Bu bölümde Excel’in Giriş Kutusu yöntemini inceleyeceğiz.
Excel’in Giriş Kutusu Yöntemini kullanmanın faydaları:
- Giriş için veri tipini belirtebilirsiniz (dize(string) ile sınırlı değildir)
- Excel otomatik olarak bir doğrulama gerçekleştirir
- Aralıkları seçebilirsiniz.
Kod | Açıklama |
---|---|
0 | Formül |
1 | Sayı |
2 | Yazı (String) |
4 | Boolean |
8 | Aralık (Range) |
16 | Hata değeri (Error value) |
64 | Değerler dizisi (Array of values) |
1+2 = 3 | Sayı + Yazı (string) |
Örnek:
Sub Excel_InputBox()
Dim MusteriAdi As String
Dim SonrakiSatir As Long
Dim Tutar As Long
MusteriAdi = VBA.InputBox("Lütfen Müşteri Adı girin", "Müşteri Girişi")
SonrakiSatir = Cells(Rows.Count, 1).End(xlUp).Row + 1
'sayfaya uygun formatta geri yazma
Range("A" & SonrakiSatir).Value = Excel.WorksheetFunction.Proper(MusteriAdi)
'Burada Type:=1 kullandığımız için kullanıcı sadece sayı girebilir
Tutar = Excel.Application.InputBox(Prompt:="Lütfen tutarı girin", Title:="Tutar", Type:=1)
Cells(SonrakiSatir, 2).Value = Tutar
End Sub
Code language: VB.NET (vbnet)
Örnek:
Sub Excel_InputBox_Range()
Dim myRange As Range
Dim cellBlank As Long, cellNum As Long, cellOther As Long
'kullanıcının iptali tıklaması durumunda
On Error GoTo HATA
'8 ile kullanıcı sadece aralık seçebilir
Set myRange = Application.InputBox("Hücreleri Say", "Hücre Sayımı…", , , , , , 8)
'Boş Hücrelerin sayısı
cellBlank = Excel.WorksheetFunction.CountBlank(myRange)
'Sadece sayı içeren hücrelerin sayısı
cellNum = Excel.WorksheetFunction.Count(myRange)
'Sadece yazı içeren hücrelerin sayısı
cellOther = Excel.WorksheetFunction.CountA(myRange) - cellNum
MsgBox cellBlank & " adet boş hücre var." & vbNewLine _
& cellNum & " adet sayı içeren hücre var." & vbNewLine _
& cellOther & " adet sayı içermeyen hücre var."
HATA:
End Sub
Code language: VB.NET (vbnet)
Örnek: En yüksek 3 değeri bulmak
Sub makro()
Dim aralik As Range
Dim Top1 As Double, Top2 As Double, Top3 As Double
On Error GoTo HATA
Set aralik = Application.InputBox(Prompt:="En yüksek 3 değeri bulmak için bir sayı aralığı seçin", _
Title:="En yüksek 3 değer", Type:=8)
If Application.WorksheetFunction.Count(aralik) > 2 Then
Top1 = Excel.WorksheetFunction.Large(aralik, 1)
Top2 = Excel.WorksheetFunction.Large(aralik, 2)
Top3 = Excel.WorksheetFunction.Large(aralik, 3)
MsgBox "Top1: " & Top1 & vbNewLine & "Top2: " & Top2 & vbNewLine & "Top3: " & Top3 & vbNewLine, , "En yüksek 3 değer"
Else
MsgBox "Lütfen sayı içeren en az 3 hücre seçin", vbInformation
End If
HATA:
End Sub
Code language: VB.NET (vbnet)