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

كيفية ريط اكثر من صفحة مع بعض مع التحديث المستمر


moooss1

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

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

اريد المساعدة فى امر  هام 

عندى ملف اكسيل لى  بيانات الموظفين 

لدى ثلات جهات  للعمل ( الشقق-الشركة-المكتب)

وتمت اظافة بينات الموظفين فى الصفحة الاولى وبها جهة العمل لدى كل موظف

وتم عمل ثلات صفحات اخرى كل صفحة باسم جهة عمل

ما اريدة هو ترحيل بينات الموظفين فى الصفحات ولكن حسب جهة العمل 

اى الموظفين الذين يعملون فى الشركة اريدهم فى صفحة الشركة فقط 

والوظفين الذين يعملون فى المكتب اريدهم فى صفحة الكتب فقط

والشى المهم جدا الذى اريدة  هو اظافة الاسماء اوتماتيكينا

يعنى عند اظافة اى من الموظفين فى الصفحة الاول يتم اظافة فى جهة العمل الخاصة بية اوتوماتيكينا

اى عند اطافة موظف فى قسم الشركة اجدة  فى صفحة الشركة اوتماتيكيا 

ملاحظة

اريد طريقة عير طريقة الفلاترة

بيانات الموظفين - Copy.rar

تم تعديل بواسطه moooss1
رابط هذا التعليق
شارك

Sub Test_Yasser()
    Dim x, str As String
    For x = 6 To Cells(Rows.Count, 3) _
    .End(xlUp).Row
        str = Cells(x, 6)
        Range("C" & x & ":F" & x) _
.Copy Sheets(str).Range("C" & _
Sheets(str).Cells(Rows.Count, 3) _
.End(xlUp).Row + 1)
    Next
    MsgBox "Done........", 64
End Sub

من فضلكم اؤيد شؤح اسطر هذا الكود الرائع

رابط هذا التعليق
شارك

منذ ساعه, إبراهيم ابوليله said:

اخى ياسر

كل التحيه

كود جميل وبسيط

تقبل تحياتى

 

السلام عليكم المشكله كلما يتم الترحيل يتم تكرار نفس الاسماء مرة اخرى 

 

السلام عليكم المشكله كلما يتم الترحيل يتم تكرار نفس الاسماء مرة اخرى

 

رابط هذا التعليق
شارك

ياسر العربى

كود اكثر من رائع تحياتى ما شاء الله عليك
لكن يقوم بتكرار البيانات مرة اخرى
و المطلوب اضافة البيانات الجديدة فقط

رابط هذا التعليق
شارك

مشكورين اخواني الكرام

فعلا انا تعمدت ان اجعله يستقبل البيانات تلو الاخرى ويحتفظ بالقديمة دا في حالة الترحيل المتراكم

اما في الحالة التى طلبتوها دا مثال لعدم تكرار البيانات

لعله المطلوب

تحياتي لكم

 

بيانات الموظفين - Copy.rar

  • Like 1
رابط هذا التعليق
شارك

شرح مبسط للكود

Sub Test_Yasser()
'متغير  واي ونستخدمه في الحلقة التكرارية الاولى ليرمز لرقم الشيت
'متغير اكس وهو خاص بالحلقة التكرارية الثانية ويقوم بعد عدد الاسطر الموجود باه بيانات لمقارنة كل بيان بصفحته
'المتغير اس تي ار   متغير من نوع نصى ليشير الى اسم الشيت وهو يساوي  العمود الخاص بأسماء الصفحات
    Dim Y, X, str As String
    'هنا المتغير واي يبدأ من 2 الى 4 وهي عدد الصفحات من بعد الاولي حتى الاخيرة
    For Y = 2 To 4
        'هنا يتم المرور على كل الشيتات المحددة في الحلقة بخلاف الشيت الاول ومسح محتوياتهم تمهيدا لجلب المحتوى الجديد
        Sheets(Y).Range("C6:F" & Sheets(Y).Cells(Rows.Count, 3).End(xlUp).Row).ClearContents
    Next
    'هناحلقة تكرارية تبدأ بأول صف بيانات وهو 6 حتى نهاية البيانات بالصفحة الرئيسية
    For X = 6 To Cells(Rows.Count, 3).End(xlUp).Row
        'المتغيرالخاص بخليه اسم الشيت حتى يتم نسخ البيانات اليه
        str = Cells(X, 6)
        'هنا يتم نسخ كل صف داخل الحلقة التكرارية ووضعه في الشيت المذكور اسمه بجانب البيانات
        'بفرض في هذا المثال ان المتغير اكس بيساوي 6 في اول حلقة له يبقي السطر البرمجي يصبح هكذا
        ' Range("C6:F6").Copy Sheets("الشركة").Range("C" & Sheets("الشركة").Cells(Rows.Count, 3).End(xlUp).Row + 1)
        Range("C" & X & ":F" & X).Copy Sheets(str).Range("C" & Sheets(str).Cells(Rows.Count, 3).End(xlUp).Row + 1)
    Next
    MsgBox "Done........", 64
End Sub

 

 

  • Like 2
رابط هذا التعليق
شارك

حبيبى يا ابو العربى

ايه الجمال والحلاوه دى

بس انا كنت متوقع ان الحزف هيكون بناء على اسم الشيت

ياسلام لو قدرنا نظف الكود علشان يتم حزف البيانات

بناء على اسم الشيت الى ف العمود

تقبل تحياتى

 

رابط هذا التعليق
شارك

21 ساعات مضت, ياسر العربى said:

شرح مبسط للكود


Sub Test_Yasser()
'متغير  واي ونستخدمه في الحلقة التكرارية الاولى ليرمز لرقم الشيت
'متغير اكس وهو خاص بالحلقة التكرارية الثانية ويقوم بعد عدد الاسطر الموجود باه بيانات لمقارنة كل بيان بصفحته
'المتغير اس تي ار   متغير من نوع نصى ليشير الى اسم الشيت وهو يساوي  العمود الخاص بأسماء الصفحات
    Dim Y, X, str As String
    'هنا المتغير واي يبدأ من 2 الى 4 وهي عدد الصفحات من بعد الاولي حتى الاخيرة
    For Y = 2 To 4
        'هنا يتم المرور على كل الشيتات المحددة في الحلقة بخلاف الشيت الاول ومسح محتوياتهم تمهيدا لجلب المحتوى الجديد
        Sheets(Y).Range("C6:F" & Sheets(Y).Cells(Rows.Count, 3).End(xlUp).Row).ClearContents
    Next
    'هناحلقة تكرارية تبدأ بأول صف بيانات وهو 6 حتى نهاية البيانات بالصفحة الرئيسية
    For X = 6 To Cells(Rows.Count, 3).End(xlUp).Row
        'المتغيرالخاص بخليه اسم الشيت حتى يتم نسخ البيانات اليه
        str = Cells(X, 6)
        'هنا يتم نسخ كل صف داخل الحلقة التكرارية ووضعه في الشيت المذكور اسمه بجانب البيانات
        'بفرض في هذا المثال ان المتغير اكس بيساوي 6 في اول حلقة له يبقي السطر البرمجي يصبح هكذا
        ' Range("C6:F6").Copy Sheets("الشركة").Range("C" & Sheets("الشركة").Cells(Rows.Count, 3).End(xlUp).Row + 1)
        Range("C" & X & ":F" & X).Copy Sheets(str).Range("C" & Sheets(str).Cells(Rows.Count, 3).End(xlUp).Row + 1)
    Next
    MsgBox "Done........", 64
End Sub

 

 

الف شكر لك اخى شرح رائع 

ولكن عندما تم تطبيق الطريقة على ملف اخر كبير لم تتم العملية وظهر خطا  

فما هيا التغيرات الى اغيره فى هذا الكود فى حالة العمل على ملف اخر  يحتوى على اعمدة اكثر او صفحات زياردة 

تم تعديل بواسطه moooss1
رابط هذا التعليق
شارك

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