التعامل مع صندوق الادخال


شرح استخدام صندوق الادخال مع النصوص


كود استخدام صندوق الادخال مع النصوص
Sub VBA_Simple_InputBox()
'simple input box puts a subheader for tab inputbox_vba
Dim myInp As String
myInp = VBA.InputBox("Please input subtitle", "Subtitle please...")
If myInp = "" Then Exit Sub
Range("A2").Value = Excel.WorksheetFunction.Proper(myInp)
End Sub


Sub VBA_InputBox()
'for tab Inputbox_VBA - inputs name in the last empty cell
Dim CName As String
Dim NextRow As Long
CName = VBA.InputBox("Please input new Customer Name", "Customer Master")
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
'write back to sheet in proper format
Range("A" & NextRow).Value = Excel.WorksheetFunction.Proper(CName)
End Sub



شرح استخدام صندوق الادخال مع النطاقات


الكود
نوع المدخل رقم
Sub firstYear()
Dim year As Long
year = Application.InputBox("Enter the Year", Title:="Customer Report", Default:="1999", Type:=1)
Sheets("Sheet1").Range("B2").Value = year
End Sub



نوع المدخل نطاق
Sub UseInputBox()
Dim rg As Range
' Turn off errors
On Error Resume Next
Set rg = Application.InputBox("Please enter Range", Title:="Required Range", Type:=8)
' Turn on errors
On Error GoTo 0
' Display the result
If rg Is Nothing Then
MsgBox "The range was cancelled"
Else
MsgBox "The selected range is " & rg.Address
End If
End Sub



انواع المدخلات
IBFormula = 0
IBNumber = 1
IBString = 2
IBBoolean = 4
IBRange = 8
IBError = 16
IBArray = 64



مثال عملى على استخدام صندوق النصوص و صندوق الادخال للحصول على اعلى 3 درجات فى النطاق المحدد


الكود
Sub Top_3_Bids()
Dim myRange As Range
Dim First As Double, Second As Double, Third As Double
On Error GoTo Leave
Set myRange = Application.InputBox(Prompt:="من فضلك اختار نطاق من الخلايا " & vbNewLine & "لتحصل على اكبر 3 قيم", _
Title:="اعلى 3 قيم", Type:=8)
If Application.WorksheetFunction.Count(myRange) > 2 Then
First = Excel.WorksheetFunction.Large(myRange, 1)
Second = Excel.WorksheetFunction.Large(myRange, 2)
Third = Excel.WorksheetFunction.Large(myRange, 3)
MsgBox "أكبر قيمة: " & First & vbNewLine & "ثانى أكبر قيمة: " & Second & vbNewLine & "ثالث أكبر قيمة: " & Third & vbNewLine, , "أعلى 3 قيم"
Else
MsgBox "من فضلك ادخل نطاق مكون من 3 خلايا على الاقل", vbInformation
End If
Leave:
End Sub