عادل صادق قام بنشر أبريل 16, 2006 قام بنشر أبريل 16, 2006 زملائي الاعزاء اريد أن أعرف ما هو الخطأ في هذا الكود والذي يجعل الرسالة تظهر مرتين بالرغم من تحديد المستخدم لأحد الخيارين نعم او لا 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
G42U قام بنشر أبريل 16, 2006 قام بنشر أبريل 16, 2006 (معدل) أخي الكريم أنت قمت بكتابة رسالتين بعد عبارة 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 تم تعديل أبريل 16, 2006 بواسطه G42U
عادل صادق قام بنشر أبريل 17, 2006 الكاتب قام بنشر أبريل 17, 2006 شكراً جزيلاً اخي الكريم G42U في الحقيقة لا اعرف كيف لم انتبهة لهذه النقطة شكراً والي الامام دائما اخوك عادل
الردود الموصى بها