اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

المصفوفات في الإكسيل (نتعلم سوياً لنرتقي) - الحلقة الأولى


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

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

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

سؤال جديد بعد الإطلاع على الشرح في الجزء الثاني .. قم بتخزين قيم النطاق A1:A15 في مصفوفة باسم Arr ثم قم نسخ المصفوفة ووضعها في بداية النطاق الذي يبدأ من الخلية K5 مثلاً في نفس العمود K أي نسخها في عمود واحد فقط ...

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

  • الردود 73
  • Created
  • اخر رد

Top Posters In This Topic

مشكور على مرورك العطر أخي الغالي عادل

فينك غطسااااااااان فين في الحر ده .. اشتقنا لك ويعلم الله

في انتظار مساهماتك بالموضوع

تقبل وافر تقديري واحترامي

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

الله الله عليك  يا أستاذى العزيز  الموضوع جديد ومفيد توغل فيه من غير تعقيد  تحياتى   

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

أخي الغالي مختار

أخيراً ظهرت على الشاشات ..ايه الحكاية عندكم في الصعيد حر ولا ايه؟

يا ريت تساهم معانا ، مش هقول تتابع لأن مساهماتك متأكد إنها مفيدة

بالنسبة للتوغل أنت تعرفني جيداً أنني أتوغل برفق دائماً ..قم بمتابعة الموضوع جيداً ستجد أننا ما زلنا بعد حلقتين في المصفوفة أحادية الأبعاد ولم نتطرق بعد إلى الثنائية الأبعاد .. بحاول إننا نفهم الأحادية بشكل جيد من جميع الجهات عشان نهضم الموضوع بشكل جيد يمكننا من فهم ما هو آتٍ إن شاء الله

تقبل تحياتي

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

أخي الغالي إبراهيم

أي معلومة تقصد .. عيد المعلومة ليستفيد المتابعين .. يعني في الإعادة إفادة

ولو عندك إضافة تسعدني إضافتك ليها

وهناك سؤال تم طرحه بعد الجزء الثاني

قم بتخزين قيم النطاق A1:A15 في مصفوفة باسم Arr ثم قم نسخ المصفوفة ووضعها في بداية النطاق الذي يبدأ من الخلية K5 مثلاً في نفس العمود K أي نسخها في عمود واحد فقط ...

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

اخى ياسر

هذا على حسب فهمى للسؤال

Sub OneDimensionalArray5()
Dim Arr
Arr = Range("A1:A6")
Cells(1, 3).Resize(UBound(Arr), 1) = Arr
End Sub

 

تقبل تحياتى

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

تمام تمام

الله ينور عليك .. بس ركز في المعطيات .. الخطوات صحيحة 100% ولكن المعطيات المطلوبة لم تكن بالدقة المطلوبة ..حيث طلبت النطاق A1:A15 وعملية ترحيل قيم النطاق التي تم تخزينها في مصفوفة تنقل للخلية K5

:wink2:

تقبل وافر تقديري واحترامي

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

السلام عليكم أخى وأستاذى العزيز  ياسر

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

بالنسبة لاجابة السؤال  :

Sub OneDimensionalArray5()
Dim Arr
Arr = Range("A1:A15")
Range("k5").Resize(UBound(Arr), 1) = Arr
End Sub

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

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

Sub sizeofarray()

Dim Arr(1 To 5) As String, x As Integer
x = UBound(Arr, 1) - LBound(Arr, 1) + 1
MsgBox " هذه المصفوفة تتكون من  " & x & " عنصر "

End Sub

لو عندى مصفوفة ثنائية وعايز أعرف حجمها     الحجم = حاصل ضرب الطرفين

Sub sizeofarray2()
Dim Arr(1 To 5, 1 To 10) As String, x As Integer, y As Integer

x = UBound(Arr, 1) - LBound(Arr, 1) + 1
y = UBound(Arr, 2) - LBound(Arr, 2) + 1

MsgBox " هذه المصفوفة تتكون من  " & x * y & " عنصر "

End Sub

تحياتى لكم

تم تعديل بواسطه مختار حسين محمود
  • Like 2
رابط هذا التعليق
شارك

وعليكم السلام يا غالي

هو الجو حر في مصر ولا مصر دخلت النااااااااااااار .. دا أجمل تعليق قريته بخصوص الحر :yes:

مشكور على مساهمتك الرائعة وفي انتظار المزيد والمزيد فإنت جهبذ وعلامة .. بارك الله فيك وحفظك الله ورعاك وسدد خطاك

أنا عمال أدعي لك أهو .. وعلى رأي المثل : لو فيه حد له عندك مصلحة ، يعملك في الحر مروحة :wink2:

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

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

بارك الله فيك الأخ و الأستاذ الغالي مختار حسين محمود على الإضافة الرائعة و المميزة والتي زادت للموضوع حرارة و لهيبا

تحياتي واحتراماتي

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

بارك الله فيك  يا زيزو يا بسكرى 

أخبارك وأخبار الحر فى بسكرة            تحياتى ليك ولكل أهل الجزائر

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

تمام تمام

الله ينور عليك .. بس ركز في المعطيات .. الخطوات صحيحة 100% ولكن المعطيات المطلوبة لم تكن بالدقة المطلوبة ..حيث طلبت النطاق A1:A15 وعملية ترحيل قيم النطاق التي تم تخزينها في مصفوفة تنقل للخلية K5

:wink2:

تقبل وافر تقديري واحترامي

ماشى يااستاذ ياسر

نعيد الاجابه لتتوافق مع السؤال

Sub OneDimensionalArray5()
Dim Arr
Arr = Range("A1:A15")
Cells(5, "K").Resize(UBound(Arr), 1) = Arr
End Sub

تقبل تحياتى

تم تعديل بواسطه إبراهيم ابوليله
  • Like 1
رابط هذا التعليق
شارك

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

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

اخى ياسر

مشكور والله

على الجهد الكبير

المبذول فى توصيل

العلم الينا

بارك الله فيك وزادك من فضله وعلمه

تقبل تحياتى

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

أخي الحبيب إبراهيم

مشكور على متابعتك الجيدة للموضوع والتجاوب بشكل فعال ، وصدقني أنا بتعلم معكم تماماً ... الموضوع شيق ومفيد جداً ولكن أعاني دائماً قلة المتابعين

تقبل تحياتي

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

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

صدقني أستاذي الغالي ياسر خليل .. أنا عن نفسي  أتابع ليلاً و نهارًا مواضيعك الشيّقة حتى إنّي الآن منهمك تمامًا بوضوعك "افتح الباب" ..قلة معلوماتي وكوني مبتدئا بعالم الأكواد جعلتني أكون من المقصّرين في اللعب ..لكني متفرج بكل جوارحي لمواضيعك الممتعة..

تحياتي

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

اخى ياسر ايه الحكايه روحت فين

وبعدين انت مقولتلناش

هل خلاص كده ننام بقى

ولا نفضل صاحين منتظرين

الحلقه الى جايه

تقبل تحياتى

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

أخي الحبيب إبراهيم

صبراً حتى نهضم الموضوع بشكل جيد ..لا أريد كلام نظري وحسب بل التطبيق مهم جداً في تثبيت المعلومة

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

تقبل وافر تقديري واحترامي

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

آخى وأستاذى العزيز أقترح مناقشة النقاط التالية :

نسخ و حذف  نطاق  مستخدما المصفوفات : فى شيت - بين شيتين - بين ملفين

المصفوفات  الآحادية والثنائية والمتعددة .

كيفية حذف عنصر أو مجموعة عناصر  من مصفوفة

المصفوفة الثابتة و المتحركة ( الديناميكية )

تفريغ مصفوفة من مجموعة القيم اللى أخدتها واعطائها قيما جديدة . وهل يمكن العودة للقيم القديمة بعد التفريع

اللعب مع مصفوفتين  نلون العناصر المتشابه بلون  والمختلفة بلون  وهكذا 

أعتقد أن ده هيفتح معانا موضوعات وأسئلة لن تنتهى تحياتى

.

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

أخي الغالي مختار

ابدأ اشتغل بس واحدة واحدة علينا ... يعني كل نقطة في يوم عشان نقدر نستوعب كويس .. وأنا معاك إن شاء المولى

الحمد لله بدأت تمطر في عز الحر

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

اخى مختار

بالفعل

كل النقاط التى تفضلت بذكرها

ستجعلنا نتقن التعامل مع المصفوفات

خصوصا حينما يقدمها لنا

استاذ بحجم وقدر

استاذنا ياسر

تقبل تحياتى

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

أخى وأستاذى ياسر أشكرك على هذه الثقة 

ولكن أنا لا أفهم جيدا كل النقاط التى ذكرتها فى مشاركتى السابقة  فأنا اقترحتها لتشرحها وتشرحها بأسلوبك

كما أننى  أضم صوتى لصوت أخى ابراهيم ابو ليله بأن أسلوبك مألوف لدى السواد الأعظم من الأعضاء .

وأنا سوف أقدم ما يمكننى تقديمه واليك ولكل الأخوة :  أكواد تعبئة نطاق أو أكثر بالبيانات مستخدما أسلوب المصفوفات 

ملحوظة : الأكواد مجمعة من مشاركات الأعضاء مع بعض التعديلات البسيطة 


Sub Fillrangeusingarray()
    Dim Arr

    Arr = Array("A", "B", "C", "D")
    
    Range("A3").Resize(1, UBound(Arr) + 1) = Arr

End Sub

Sub Fillrangeusingarray2()

    Dim Arr(1 To 7) As String
   
    Arr(1) = "sat"
    Arr(2) = "sun"
    Arr(3) = "mon"
    Arr(4) = "tue"
    Arr(5) = "wed"
    Arr(6) = "thu"
    Arr(7) = "fri"
    Range("A8").Resize(1, UBound(Arr)) = Arr    ' تعبئة أفقية

End Sub

Sub Fillrangeusingarray3()
      ' الكود رقم 2 بشكل آخر مخنصر
      Dim Arr
      Arr = Array("sat", "sun", "mon", "tue", "wed", "thu", "fri")
      Range("A13").Resize(1, UBound(Arr) + 1) = Arr    ' تعبئة أفقية
 
End Sub

Sub Fillrangeusingarray4()
     
      Dim Arr
      Arr = Array("sat", "sun", "mon", "tue", "wed", "thu", "fri")
      Range("A18").Resize(UBound(Arr) + 1, 1) = Application.Transpose(Arr)      ' تعبئة رأسية
      
End Sub

Sub FillrangeSusingarray5()
      Dim i As Integer
      Dim Arr1 As Variant
      Dim Arr2(1 To 5) As String
      
      Arr2(1) = "ساعة الحضور"
      Arr2(2) = "ساعة الانصراف"
      Arr2(3) = "ساعات العمل"
      Arr2(4) = "ثمن الساعة"
      Arr2(5) = "جملة التكاليف"
      
      Arr1 = Array("السبت", "الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة")
      Range("C3").Resize(1, UBound(Arr1) + 1) = Arr1

      For i = LBound(Arr2) To UBound(Arr2)
        Cells(i + 3, "B") = Arr2(i)
      Next i

End Sub


تحياتى

 

Fill range using array .rar

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

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

يا ريت اللي متابع الشرح يشوف الأمثلة ويشوف هل فيه شيء مش مفهوم أو فيه شيء جديد عشان يت تناوله في المرات القادمة إن شاء الله

أخي مختار بالنسبة للمثال الأول : نسأل الأعضاء سؤال تم شرحه عشان نشوف الدماغ حاضرة ولا نامت

Sub Fillrangeusingarray()
    Dim Arr

    Arr = Array("A", "B", "C", "D")
    
    Range("A3").Resize(1, UBound(Arr) + 1) = Arr

End Sub

في المثال ده ليه تم إضافة رقم 1 في آخر السطر ؟ وما هي الحلول الممكنة التي نمكننا من التخلص من المشكلة ؟ أي التعامل بدون إضافة رقم 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