اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر
زملائي الاعزاء اريد أن أعرف ما هو الخطأ في هذا الكود والذي يجعل الرسالة تظهر مرتين بالرغم من تحديد المستخدم لأحد الخيارين نعم او لا

Private Sub Worksheet_Change(ByVal Target As Range)
Dim inters As Range, x As Range
Dim intButSelected As Integer, intButType As Integer
Dim strMsgPrompt As String, strMsgTitle As String
Set inters = Intersect(Target, Range("H3:H378"))
strMsgPrompt = "Have you changed the engine oil?"
strMsgTitle = "Engine Oil"
intButType = vbYesNo + vbQuestion + vbDefaultButton2
If inters Is Nothing Then Exit Sub
For Each x In inters
If x.Value <> 0 Then
MsgBox strMsgPrompt, intButType, strMsgTitle
If MsgBox(strMsgPrompt, intButType, strMsgTitle) = vbYes Then
Range("H3:H378").Font.ColorIndex = 0
x.Font.ColorIndex = 3
Sheets("Sheet1").Range("L5").Value = x.Value
Else
End
End If
End If
Next
End Sub

قام بنشر (معدل)

أخي الكريم

أنت قمت بكتابة رسالتين بعد عبارة for

عندما يقوم المستخدم بتغيير القيمة أحدى الخلايا في H3:H378 تظهر الرسالة الأولى

MsgBox strMsgPrompt, intButType, strMsgTitle

ثم تظهرالرسالة الثانية الواقعة داخ عبارة if

If MsgBox(strMsgPrompt, intButType, strMsgTitle) = vbYes Then

يكفي أن تستخدم الرسالة الثانية فقط، وهذا هو الكود بعد التعديل

Private Sub Worksheet_Change(ByVal Target As Range)
Dim inters As Range, x As Range
Dim intButSelected As Integer, intButType As Integer
Dim strMsgPrompt As String, strMsgTitle As String
Set inters = Intersect(Target, Range("H3:H378"))
strMsgPrompt = "Have you changed the engine oil?"
strMsgTitle = "Engine Oil"
intButType = vbYesNo + vbQuestion + vbDefaultButton2
If inters Is Nothing Then Exit Sub
For Each x In inters
If x.Value <> 0 Then
If MsgBox(strMsgPrompt, intButType, strMsgTitle) = vbYes Then
Range("H3:H378").Font.ColorIndex = 0
x.Font.ColorIndex = 3
Sheets("Sheet1").Range("L5").Value = x.Value
Else
End
End If
End If
Next
End Sub

تم تعديل بواسطه G42U
زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information