?Hỏi về Cancel trong input box

Liên hệ QC

ThuNghi

Hãy cho rồi sẽ nhận!
Thành viên đã mất
Tham gia
16/8/06
Bài viết
3,808
Được thích
4,449
Nhờ các bạn help me như sau:
Tôi có code
PHP:
Sub XemPNK()
On Error GoTo bien
S02.Select
Dim SP As Long
'Call XoaData
With Application
    .EnableEvents = False
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
End With
'Hoi lai neu cancel
    SP = Application.InputBox("Pls nhap so Phieu BH:", Type:=3)
    'if cancel thi thoat khoi va tra ve khong gan iRow
    'With Application
        '.Calculation = xlCalculationAutomatic
        '.EnableEvents = True
        '.ScreenUpdating = True
    'End With
       
    iRow = 0 'WorksheetFunction.CountIf(S01.Range("SPhieu"), SP)
If iRow <= 0 Then
    SP = Application.InputBox("SP nay khong co, ban hay nhap phieu khac", Type:=1)
Else
    Range("B10") = SP
End If
'Lay Thong tin KH va SP
'Code .............
bien:
With Application
    .Calculation = xlCalculationAutomatic
    .EnableEvents = True
    .ScreenUpdating = True
End With
Làm thế nào khi hiện box input hiện lên mà khi nhấn Cancel thì sẽ thóat và không gán Irow=0 và trả các sự kiện về true
'if cancel thi thoat khoi va tra ve khong gan iRow
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
Do tại sh này tôi co dùng sự kiện
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 2 And Target.Row > 9 And Target.Row < 15 Then
Cancel = True
i = Target.Row
Range("C" & i & ":D" & i).ClearContents
Range("C" & i) = 111
Range("D" & i) = 222
End If
End Sub
Nên cần
.Calculation = xlCalculationAutomatic
.EnableEvents = True
Xin cám ơn.
 
Bác dùng thử đoạn Code sau:
If SP = False Then
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
MsgBox ("Quit Sub")
Exit Sub
End If
 
Upvote 0
Cám ơn Tuấn nhiều, giúp thêm chút nữa nhé, trường hợp SP nhập vào không có, trong SPhieu không có SP
iRow = WorksheetFunction.CountIf(S01.Range("SPhieu"), SP)
If iRow <= 0 Then
SP = Application.InputBox("SP nay khong co, ban hay nhap phieu khac", Type:=1)
'Gan lai B10 = SP ?????????? và iRow
Else
Thì làm sao hiện lại TB input và gán lại giá trị.
Giúp tôi chỉnh làm sao cho màn hình khỏi bị giựt khi chọn Xem PNK. Hay là bạn tối ưu code theo yêu cầu trên.

Cám ơn!
 

File đính kèm

Upvote 0
Gửi bác ThuNghi

Em chỉ trình bày lại đoạn Code theo yêu cầu của bác cho đẹp một chút thôi. Bác dùng thử xem có đạt yêu cầu không

Mã:
Sub XemPNK()
On Error GoTo Bien
Dim SP As Long
S02.Select
Range("C10:D14").ClearContents
With Application
    .EnableEvents = False
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
End With
Info:
SP = Application.InputBox("Pls nhap so Phieu BH:", Type:=3)
iRow = WorksheetFunction.CountIf(S01.Range("SPhieu"), SP)
If SP = False Then
  Call Module1.CalculationSheets
  Exit Sub
Else
  If iRow <= 0 Then
    MsgBox ("San pham nay khong co. Pls. Nhap lai")
    GoTo Info
  Else
    Range("B10") = SP
  End If
End If
'Code .............
Bien:
Call Module1.CalculationSheets
End Sub

' Sub này ở trong cùng Module1
Mã:
Sub CalculationSheets()
With Application
    .Calculation = xlCalculationAutomatic
    .EnableEvents = True
    .ScreenUpdating = True
End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
bạn ơi thế có cách nào mà trong hộp inputbox tôi nhập được 2 mảng cùng 1 lúc
chứ bình thường chỉ toàn nhập được 1 mảng thôi
ví dụ để nhập 2 ma trận khác nhau tôi phải làm 2 dòng set chứ không biết cách nào làm 1 dòng mà có thể input được 2 ma trận
Mã:
Set Mat1 = Application.InputBox("Range", "Input", Type:=8)
Set Mat2 = Application.InputBox("Range", "Input", Type:=8)
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom