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

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

قام بنشر

السلام عليكم ورحمه وبركاته

 

اريد كتابه أجازات كل شخص فى مكانها فى شيت Report ويتم أخذها من شيت Vacc

رمز الأجازة هو "ج"

لقد قمت بكتابه بعض الأجازات يدوياً

أريد عمل ذلك بكود لأن عدد الموظفين كبير جدا وغير مرتبين أبجدياً

ملحوظات:

الرقم 8 يمثل 8ساعات عمل ، و12 يمثل 12 ساعة عمل متواصل

و الرقم "0" يمثل غياب

اريد التأكد أن الأجازة  يتم كتابتها فى الخلايا التى تحتوى على الرقم "0" فقط

لأن من غير المعقول أن يكون الموظف حاضراً ويتم احتسابه أجازة من رصيد الأجازات

وهناك بعض الموظفين تقوم بعمل الأجازة ويحضر إلى العمل لظروف خاصه

وشكرا

انظر المرفق

 

 

Insert Vacc Code_Req.rar

قام بنشر

السلام عليكم

جرب الكود التالي

لا يتم كتابة الحرف "ج" الا على الخلايا التي تحتوى على الرقم "0" فقط

وغيرة يتم تلوين الخلية الى الاحمر

Sub kh_tst()
Dim v
Dim Rng As Range
Dim R As Long, m As Long
Dim c As Integer

On Error GoTo 1

With Sheets("Vacc").Range("A2")
    Set Rng = Range(.Cells, .Cells.End(xlDown))
End With

With Sheets("Report")
    For R = 3 To .Cells(Rows.Count, "B").End(xlUp).Row
	    m = Val(CStr(Application.Match(CStr(.Cells(R, "B")), Rng, 0)))
	    If m Then
		    For Each v In Split(Rng.Cells(m, 2), "+")
			    c = Val(v)
			    If c Then
				    With .Cells(R, "B").Offset(0, c)
					    If Val(.Cells) Then .Interior.Color = vbRed Else .Value = "ج"
				    End With
			    End If
		    Next
	    End If
    Next
End With
1
If Err Then MsgBox Err.Number, vbCritical, "Error Number "
Set Rng = Nothing
End Sub

شاهد المرفق 2010

تحياتي

Insert Vacc Code_Req.rar

قام بنشر

السلام عليكم ورحمة الله وبركاته 

 

جربت الملف وأبدلت الاسماء إلى أرقام 

 

ولكن لا يعمل 

 

 

attachicon.gifInsert Vacc Code_Req-2.rar

 

استبدل بهذا

Sub kh_tst()
Dim v
Dim Rng As Range
Dim R As Long, m As Long
Dim c As Integer

On Error GoTo 1

With Sheets("Vacc").Range("A2")
    Set Rng = Range(.Cells, .Cells.End(xlDown))
End With

With Sheets("Report")
    For R = 3 To .Cells(Rows.Count, "B").End(xlUp).Row
        m = Val(CStr(Application.Match(Val(.Cells(R, "B")), Rng, 0)))
        If m Then
            For Each v In Split(Rng.Cells(m, 2), "+")
                c = Val(v)
                If c Then
                    With .Cells(R, "B").Offset(0, c)
                        If Val(.Cells) Then .Interior.Color = vbRed Else .Value = "ج"
                    End With
                End If
            Next
        End If
    Next
End With
1
If Err Then MsgBox Err.Number, vbCritical, "Error Number "
Set Rng = Nothing
End Sub

تحياتي

  • Like 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

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

Important Information