SPRAY

جمع عدة بيانات من عدة صفحات في الاكسل؟

7 ردود في هذا الموضوع

السلام عليكم

عندي ملف اكسل فيه حول ال70 شيت اسماءها شيت1 شيت2 شيت3 وهكذا..

كل شيت فيه جدول بيانات معقد وفي كل جدول 4 صفوف بيانات

الان اريد عمل شيت جديد وجمع بعض المعلومات من هذه الصفوف،ومن كل الشيتز الموجوده في الملف

بمعنى ابي الاربع صفوف الاولى تاخذ البيانات من الشيت1 والاربع صفوف التاليه تاخذ نفس البيانات(نفس ارقام الخلايا) الي في الصفوف الاربع الاولى لكن من الشيت2 وهكذا لل70 شيت

كيف افعل هذا؟

وشكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ....

  1. الإكسل يمكنك من الوصول للخلايا في الــ sheets المختلفة آثناء كتابة الصيغة .. حيث تجد أنه يضع اسم الـــ sheet ثم الرمز ! ثم الخلية أو المجال ..
  2. أي يمكنك الوصول للخلايا في الــ Sheets الأخرى كأنها موجود في الــ Sheet الحالية ..
  3. مثلا :
    =SUM(Sheet2!A1;Sheet3!A1)

    يعني ناتج جمع الخلية A1 من الــ Sheet2 مع الخلية A1 من الــ Sheet3

  4. لتجنب كتابة الصيغ الكثيرة , يمكنك أخذ زر Button و كتابة كود الــ VBA يقوم بكتابة الصيغة بشكل تلقائي , كما في المثال , حيث أفرض أنه لدينا 20 من الــ Sheets و الكود :
    Sub Button2_Click()
    Dim Sheets As Integer
    Sheets = 20
    Dim CurrentRow As Integer
    CurrentRow = 1

    For i = 1 To Sheets
    For j = 1 To 4
    Cells(CurrentRow, 1).Formula = "=Sheet" & i & "!A" & j
    CurrentRow = CurrentRow + 1
    Next
    Next

    End Sub

تم تعديل بواسطه houssam11350_11350
2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اسمح لي أخي SPRAY واستاذي houssam11350_11350

ان اقترح طريقة دمج البيانات حسب موضعها

والتي تنطبق علي الغرض الذي اشار اليه أخي SPRAY

وهي طريقة سهلة ومضمونه

وهي تتطلب أولا عند انشاء workbook جديد وانشاء الشيتات التي تريدها تسمية جميع الاوراق كما قلت شيت1 شيت2 شيت3 وهكذا.. حتي ورقة المجموع ..

ثم يتم تحديد كافة الاوراق (الشيتز) للتعامل معها كمجموعة واحدة وتحريرها مع بعضها

post-254621-032189900 1333556233_thumb.p

ويتم تصميم الجدول المعقد بأي عدد من الصفوف تريدها .. وهنا كل اجراء تقوم به يؤثر علي جميع الشيتز

وبعدها نفك تجميع الاوراق لتحرير كل شيت بالارقام التي تريدها

ثم نقف (ننقر) علي شيت المجموع (الورقة الاخيرة) ونحدد نطاق البيانات الذي نريد المجمع به (باللون الابيض) .. ونستخدم أمر دمج consolidate من قائمة بيانات Data . . فتظهر النافذه التالية :

post-254621-031972200 1333556326_thumb.p

وفي خانه المرجع reference ننقر الرمز المربع وعندما يتقلص نذهب للشيت الاول (1) ونحدد النطاق المطلوب باللون الابيض ثم نضغط ادخال enter ومن ثم نضغط زر غضافة add فيظهر نطاق الخلايا ضمن كافة المراجع

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

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

مع تحياتي

3

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ....

  1. الإكسل يمكنك من الوصول للخلايا في الــ sheets المختلفة آثناء كتابة الصيغة .. حيث تجد أنه يضع اسم الـــ sheet ثم الرمز ! ثم الخلية أو المجال ..
  2. أي يمكنك الوصول للخلايا في الــ Sheets الأخرى كأنها موجود في الــ Sheet الحالية ..
  3. مثلا :
    =SUM(Sheet2!A1;Sheet3!A1)

    يعني ناتج جمع الخلية A1 من الــ Sheet2 مع الخلية A1 من الــ Sheet3

  4. لتجنب كتابة الصيغ الكثيرة , يمكنك أخذ زر Button و كتابة كود الــ VBA يقوم بكتابة الصيغة بشكل تلقائي , كما في المثال , حيث أفرض أنه لدينا 20 من الــ Sheets و الكود :
    Sub Button2_Click()
    Dim Sheets As Integer
    Sheets = 20
    Dim CurrentRow As Integer
    CurrentRow = 1

    For i = 1 To Sheets
    For j = 1 To 4
    Cells(CurrentRow, 1).Formula = "=Sheet" & i & "!A" & j
    CurrentRow = CurrentRow + 1
    Next
    Next

    End Sub

بارك الله فيك، كود جميل وواضح

لكن ماعرفت كيف اضيف الزر لاضع الكود فيه، من وين اضيف الزر؟

والسؤال الثاني احتاج j تكون من 23 الى 38 بفارق 5 في كل صف يعني الصف الاول 23 والثاني 28 والثالث 33 والرابع 38 ، كيف احدد خطوة ال j في الكود؟

مع خالص الشكر والتقدير

اسمح لي أخي SPRAY واستاذي houssam11350_11350

ان اقترح طريقة دمج البيانات حسب موضعها

والتي تنطبق علي الغرض الذي اشار اليه أخي SPRAY

وهي طريقة سهلة ومضمونه

وهي تتطلب أولا عند انشاء workbook جديد وانشاء الشيتات التي تريدها تسمية جميع الاوراق كما قلت شيت1 شيت2 شيت3 وهكذا.. حتي ورقة المجموع ..

ثم يتم تحديد كافة الاوراق (الشيتز) للتعامل معها كمجموعة واحدة وتحريرها مع بعضها

post-254621-032189900 1333556233_thumb.p

ويتم تصميم الجدول المعقد بأي عدد من الصفوف تريدها .. وهنا كل اجراء تقوم به يؤثر علي جميع الشيتز

وبعدها نفك تجميع الاوراق لتحرير كل شيت بالارقام التي تريدها

ثم نقف (ننقر) علي شيت المجموع (الورقة الاخيرة) ونحدد نطاق البيانات الذي نريد المجمع به (باللون الابيض) .. ونستخدم أمر دمج consolidate من قائمة بيانات Data . . فتظهر النافذه التالية :

post-254621-031972200 1333556326_thumb.p

وفي خانه المرجع reference ننقر الرمز المربع وعندما يتقلص نذهب للشيت الاول (1) ونحدد النطاق المطلوب باللون الابيض ثم نضغط ادخال enter ومن ثم نضغط زر غضافة add فيظهر نطاق الخلايا ضمن كافة المراجع

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

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

مع تحياتي

جزاك الله خير

استفدت من طريقتك في تعديل بعض الاشياء في كل الصفحات دفعة واحده

انما في سؤالي ماقصدت جمع مجموعة ارقام،ولكن قصدت تجميع مجموعة بيانات موزعة على ال70 شيت ووضعها بجدول جديد مختلف في شيت جديد

خالص الشكر والتقدير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ...

بارك الله بك أخي ..

  1. الزر موجود في شريط الأدوات في الــ tab المسمى developer .. و هو قد يكون مخفي و لإظهاره , اذهب لخيارات الإكسل من القائمة الرئيسية ثم Excel Options ثم Popular ثم Show developer tab in the Bibbon رابط المصدر Open%20Excel%20Options.png
    1. Excel 2010In Excel 2010 you can display the developer toolbar the following way:
      1. Click the green File Button
      2. Press Options
      3. Make sure that the Customize Ribbon right menu item is selected.
      4. In the dropdown list called Customize the Ribbon, select All Tabs.
      5. In the group called Main Tabs, make sure that the option Developer is checked.
      6. excel2010dev.jpg
      7. Excel 2007To display the developer ribbon, do the following:
        1. Click the Office Button
        2. Click the Excel Options button at the bottom of the dialog.
        3. Ensure that the Popular tab in the left menu is selected (se picture below)
        4. Check the option Show Developer tab in the Ribbon
        5. exceldevtoolbar2007.JPG

[*]Excel 2003In older versions of excel the developer ribbon is divided between two toolbars: Control Toolbox and Forms. The toolbars can be displayed the following way:

  1. Press View on the main toolbar
  2. Select Toolbars
  3. Check the toolbar Control Toolbox
  4. Check the toolbar Forms
  5. excel2003dev.jpg

[*]من شريط الأدوات Developer نأخذ Insert ثم Button :Excel_more_tools.png[*]بعد وضع الزر , يطلب منا تحديد الماكرو الذي نريد تنفيذه , نأخذ new:create-a-macro.jpg

أو نقرة يمينية على الــ Button ثم Assign Macro .[*]للدخول مرة ثانية إلى كود الزر , نأخذ الخيار Visual Basic الموجود في شريط الأدوات Developer ..

excel-2007-developer-vb.png

أو في 2003 من القائمة Tools ثم Macro ثم Visual basic Editor :excel-2003-tools-vba.png[*]بالنسبة لقيمة j من 23 إلى 38 بفارق خمسة , يكون الكود :


Dim Sheets As Integer
Sheets = 20
Dim CurrentRow As Integer
CurrentRow = 1

For i = 1 To Sheets
For j = 23 To 38 Step 5
Cells(CurrentRow, 1).Formula = "=Sheet" & i & "!A" & j
CurrentRow = CurrentRow + 1
Next
Next

End Sub
Sub Button2_Click()

[*]تأكد أن الــ macro مفعل من الــ Trust Center :EnableExcelMacro.gif[*]تأكد من الصيغة الناتجة , و لا تنسى أخذ نسخة احتياطية ..[*]احفظ المصنف كــ Excel Macro-Enabled Workbook أي باللاحقة xlsm ..

تم تعديل بواسطه houssam11350_11350
2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ...

بارك الله بك أخي ..

  1. الزر موجود في شريط الأدوات في الــ tab المسمى developer .. و هو قد يكون مخفي و لإظهاره , اذهب لخيارات الإكسل من القائمة الرئيسية ثم Excel Options ثم Popular ثم Show developer tab in the Bibbon رابط المصدر Open%20Excel%20Options.png
    1. Excel 2010In Excel 2010 you can display the developer toolbar the following way:
      1. Click the green File Button
      2. Press Options
      3. Make sure that the Customize Ribbon right menu item is selected.
      4. In the dropdown list called Customize the Ribbon, select All Tabs.
      5. In the group called Main Tabs, make sure that the option Developer is checked.
      6. excel2010dev.jpg
      7. Excel 2007To display the developer ribbon, do the following:
        1. Click the Office Button
        2. Click the Excel Options button at the bottom of the dialog.
        3. Ensure that the Popular tab in the left menu is selected (se picture below)
        4. Check the option Show Developer tab in the Ribbon
        5. exceldevtoolbar2007.JPG

[*]Excel 2003In older versions of excel the developer ribbon is divided between two toolbars: Control Toolbox and Forms. The toolbars can be displayed the following way:

  1. Press View on the main toolbar
  2. Select Toolbars
  3. Check the toolbar Control Toolbox
  4. Check the toolbar Forms
  5. excel2003dev.jpg

[*]من شريط الأدوات Developer نأخذ Insert ثم Button :Excel_more_tools.png[*]بعد وضع الزر , يطلب منا تحديد الماكرو الذي نريد تنفيذه , نأخذ new:create-a-macro.jpg

أو نقرة يمينية على الــ Button ثم Assign Macro .[*]للدخول مرة ثانية إلى كود الزر , نأخذ الخيار Visual Basic الموجود في شريط الأدوات Developer ..

excel-2007-developer-vb.png

أو في 2003 من القائمة Tools ثم Macro ثم Visual basic Editor :excel-2003-tools-vba.png[*]بالنسبة لقيمة j من 23 إلى 38 بفارق خمسة , يكون الكود :


Dim Sheets As Integer
Sheets = 20
Dim CurrentRow As Integer
CurrentRow = 1

For i = 1 To Sheets
For j = 23 To 38 Step 5
Cells(CurrentRow, 1).Formula = "=Sheet" & i & "!A" & j
CurrentRow = CurrentRow + 1
Next
Next

End Sub
Sub Button2_Click()

[*]تأكد أن الــ macro مفعل من الــ Trust Center :EnableExcelMacro.gif[*]تأكد من الصيغة الناتجة , و لا تنسى أخذ نسخة احتياطية ..[*]احفظ المصنف كــ Excel Macro-Enabled Workbook أي باللاحقة xlsm ..

جميل جداً

جزاك الله الف خير

يبدو الاكسل ممتعا مع الامكانيات البرمجيه، انا اول مره اتعامل معه والظاهر اني راح احتاجه كثير في عملي الحالي، بشوفلي كورس فيديو جيد له

هذا الكود تبعي بعد عمل التعديلات اللازمه


Sub Button1_Click()

Dim currentRow As Integer
currentRow = 2
For i = 2 To 74
For j = 23 To 38 Step 5
Cells(currentRow, 1).Formula = "=Sheet" & i & "!B16"
Cells(currentRow, 2).Formula = "=Sheet" & i & "!AL" & j
Cells(currentRow, 3).Formula = "=Sheet" & i & "!AM" & j
Cells(currentRow, 4).Formula = "=Sheet" & i & "!A" & j + 4
currentRow = currentRow + 1

Next
Next

End Sub

حالص الشكر والتقدير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا لكم ...

أنا ايضا استفدت كثيرا

واتفق معكم بان الاكسل رائع ومبهر في امكانياته

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .