السبت، 31 أغسطس 2019

8:18 ص

اكسل vba : فرز وترتيب اوراق العمل فى الاكسل باسهل واسرع طريقة VBA code to Sort Worksheets in Excel




بسم الله الرحمن الرحيم

اهلا بكم متابعى موقع عالم الاوفيس
اكسل vba : فرز وترتيب اوراق العمل فى الاكسل باسهل واسرع طريقة
درس جديد وكود جديد من اكواد اكسل vba  نحتاج الية فى كثير من اعمالنا
إذا كنت تعمل مع الكثير من أوراق العمل في Excel ، فستعرف أن إدارتها وتنسيقها وترتيبها  يمكن أن تصبح مشكلة.
بمجرد حصولك على أكثر من ورقة عمل  (sheets )فى ملف العمل (worksheets)  ، ستحتاج إلى ترتيبها يدويًا.
اذا ناتى الى السؤال المهم
ما مدى سهولة وجود طريقة لفرز أوراق العمل في Excel   ؟.
على الرغم من عدم وجود طريقة معينة  يحمل في ثناياه عوامل للقيام بذلك ، ولكنك  يمكنك  عمل ذلك الامر  (بسهولة) من خلال استخدام VBA.

في هذا الدرس  ، سأقدم لك الكود البرمجى  والخطوات الدقيقة التي تحتاج إلى اتباعها لفرز أوراق العمل(sheets ) في Excel.

وايضا يمكنك تعديل الكود البرمجى  لفرز أوراق العمل بترتيب تصاعدي أو تنازلي.

كود VBA لفرز أوراق العمل في Excel
Sub SortWorksheetsTabs()

Application.ScreenUpdating = False

Dim ShCount As Integer, i As Integer, j As Integer

ShCount = Sheets.Count



For i = 1 To ShCount - 1

    For j = i + 1 To ShCount

        If UCase(Sheets(j).Name) < UCase(Sheets(i).Name) Then

            Sheets(j).Move before:=Sheets(i)

        End If

    Next j

Next i



Application.ScreenUpdating = True

End Sub
وايضا يمكنك تحميل ملف العمل برابط مباشر على الميديا فاير من هنا
لمعرفة الية عمل الكود يرجى مشاهدة شرح الفيديو

4:42 ص

عالم الاوفيس :اكسل vba ترحيل البيانات اتوماتيكيا الى عدد غير محدود من اوراق العمل بطريقة سهله وسريعه Transfer Data Automaticaly

بسم الله الرحمن الرحيم 



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

اكسل vba ترحيل البيانات اتوماتيكيا الى عدد غير محدود من اوراق العمل بطريقة سهله وسريعه
كتيرا ما نحتاج فى عملنا الى عملية ترحيل البيانات الى اوراق عمل كثيرة فكنا نعتمد على طريقة copyنسخ البيانات paste ولصق البيانات فى كل شيت على حدة فكانت هذة الطريقة تاخذ منا  الوقت والمجهود الكبير  


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

الان مع كيفية عمل الكود وهو كود سهل وبسيط جدا ومن سطر واحد

Private Sub Worksheet_Change(ByVal Target As Range)
Worksheets.FillAcrossSheets (Worksheets("sheet1").Range("a1:c50000"))
End Sub
هذا هو الكود سهل جدا وبسيط جدا 
يرجى مشاهدة شرح الفيديو لمعرفة الية عمل الكود

 

الخميس، 29 أغسطس 2019

8:09 م

عالم الاوفيس : كود حصرى جدا الفلترة من خلال اليوزرفورم Excel Vba:Autofilter Userform

بسم الله الرحمن الرحيم

عالم الاوفيس : كود حصرى جدا الفلترة من خلال اليوزرفورم

اهلا بحضراتكم متابعى موقع ومدونة عالم الاوفيس 
نسكتمل مابدناة فى الدرس السابق من شرح اليوزرفورم وتعبئة combobox بالبيانات وذكرنا فى هذا الدرس اننا سوف نبى علية درس اخر .

وها نحن قد وعدنا واوفينا بالوعد  من خلال درس اليوم والذى نشرح فية كود حصرى ومهم جدا جدا وهو 
الفلترة من خلال اليوزرفورم  Excel Vba : Autofilter Userform

 فى البداية سوف نقوم بعمل 3 ازرار نعمل عليهم مجموعة من الاكواد

الزر الاول commandbutton1 ونسمية (الفلترة )
الزر الثانى commandbutton2 ونسمية (ظهار البيانات  )
الزر الثالث commandbutton3 ونسمية (مسح )


ناتى الان الى مرحلة الاكواد



1- فى  commandbutton2  وظهار البيانات ونكتب فية الكود التالى 
Private Sub CommandButton2_Click()
 Range("a2:g5000").AutoFilter
 Range("a1").Select
End Sub

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

2- فى الزر commandbutton1 نقوم بكتابة الكود المهم 

If Me.OptionButton2.Value = True Then Call CommandButton2_Click: ActiveSheet.UsedRange.AutoFilter field:=2, Criteria1:=Me.ComboBox1.Value
If Me.OptionButton3.Value = True Then Call CommandButton2_Click: ActiveSheet.UsedRange.AutoFilter field:=3, Criteria1:=Me.ComboBox2.Value
If Me.OptionButton4.Value = True Then Call CommandButton2_Click: ActiveSheet.UsedRange.AutoFilter field:=4, Criteria1:=Me.ComboBox3.Value
والزر الثالث نقوم بكتابة كود مسح البيانات 
ونحب ان نزف اليكم بشرى سارة وهو انة من الان فصاعدا سوف يتم تحميل جميع الملفات على موقع الميديا فاير ولن نقوم برفع الملفات على مواقع اخرى 
انتم مكسبنا الوحيد 
ولمتابعة افضل يرجى متابعة شرح الفيديو 




الثلاثاء، 27 أغسطس 2019

5:54 م

اكسل vba تعبئة اكثر من combobox اوتوماتيكيا بدون تكرار البيانات Auto Fill Combobox Automaticaly without dupplicat data

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

درس جديد من درووس اكسل vba 
وهى كيفية تعبئة اكثر من  Combo box بدون تكرار للبيانات من خلال كود سهل جدا وبسيط 
كما تعودنا
1-  ندخل على تبويب المطور ( Developer)
2-نفتح نافذة محرر الاكواد  (visual basic )
3- نعمل ادراج لليوزرفورم  (Insert User Form)
4- نضع عليها عدد 3 كومبوبوكس  (Combobox)



5-تم نضغط دوبل كليك على الفورم ونفتح حدث التهيئة  (Initialize)
6-نكتب فية الكود التالى

Private Sub User Form_Initialize()
Dim i As Long
For i = 3 To 2000
If Worksheet Function.Count If(Range("b3:b" & i), Range("b" & i)) = 1 Then
Me.ComboBox1.Add Item Range("b" & i)
End If
Next



For i = 3 To 2000
If Worksheet Function.Count If(Range("j3:j" & i), Range("j" & i)) = 1 Then
Me.ComboBox2.Add Item Range("j" & i)
End If
Next

For i = 3 To 2000
If Worksheet Function.Count If(Range("d3:d" & i), Range("d" & i)) = 1 Then
Me.ComboBox3.Add Item Range("d" & i)
End If
Next


End Sub
 
وبهذا نكون قد انتهينا من هذا الكود وباذن الله فى الدرس القادم نكمل استعمال الكود فى درس مهم جدا انتظرونا

لمعرفة عمل الكود يرجى مشاهدة الفيديو

الجمعة، 23 أغسطس 2019

2:32 ص

اكسل vba : البحث عن نص معين فى مكان فى ورقة العمل وتلوين النتائج اوتوماتيكيا

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



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

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

لذلك قررنا ان يكون هناك كود اكسل vba  يسهل لنا اعمالنا فى التعامل مع البيانات الكثيرة الموجودة  عندنا فى ورقة العمل 
سواء كانت فى جدول معين او فى اى مكان فى ورقة العمل 

نبدا الان فى كتابة الكود الخاص بنا 


Sub highlightSpecificValues()
Dim rng As Range
Dim i As Integer
Dim c As Variant
c = InputBox("Enter Value To Highlight")
For Each rng In ActiveSheet.UsedRange
If rng = c Then
rng.Interior.Color = vbRed
i = i + 1
End If
Next rng
MsgBox "There are total " & i & " " & c & " in this worksheet."
End Sub


كود سهل وبسيط وينجز عمل كبير جدا فى ثوانى معدودة كل هذا واكثر تجدونة فى ملف العمل المرفق



الثلاثاء، 20 أغسطس 2019

5:48 م

ربط الاكسل بالاكسس واستيراد البيانات وعمل التقارير المختلفة Import Access Data To Excel

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

اهلا بكم متابعى موقع ومدونة عالم الاوفيس



درس جديد ومهارة جديدة نتعلمها سويا وهى كيفية ربط الاكسيل بالاوفيس واستيراد البيانات من قاعدة البيانات وعمل تقارير مختلفة نبدا على بركة الله .
يعلمك هذا المثال كيفية استيراد البيانات من قاعدة بيانات Microsoft Access. في Excel ، عند استيراد البيانات ، يمكنك إجراء اتصال دائم يمكن تحديثه

1. في علامة التبويب "البيانات" ، في المجموعة "الحصول على بيانات خارجية" ، انقر فوق "Access."


2. حدد ملف Access.


3. انقر فوق فتح.




4. حدد جدولًا وانقر فوق "موافق".



5. حدد كيف تريد عرض هذه البيانات ، حيث تريد وضعها ، وانقر موافق.


النتيجة. تم عرض سجلات قاعدة البيانات الخاصة بك في Excel.

6. عندما تتغير بيانات Access الخاصة بك ، يمكنك بسهولة تحديث البيانات في Excel. أولاً ، حدد خلية داخل الجدول. بعد ذلك ، في علامة التبويب "تصميم" ، في المجموعة "بيانات الجدول الخارجي" ، انقر فوق "تحديث".

ويمكنك استيراد البيانات على شكل  pivot table او chart

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

لمتابعة الشرح بالتفصيل 

 


السبت، 17 أغسطس 2019

6:02 ص

اكسل vba تحديد نوع البيانات المدخلة فىTEXTBOX و الحد الأقصى لمحتويات صندوق النص UserForm

اكسل vba تحديد نوع البيانات المدخلة فىTEXTBOX و الحد الأقصى لمحتويات الخلية UserForm
بسم الله الرحمن الرحيم
اهلا بحضراتكم متابعى موقع ومدونة عالم الاوفيس
سؤال ورد الينا من احد الاصدقاء المتابعين 
كيف اقول باجبار المستخدم على ادخال عدد معين من الارقام وليكن 11 رقم فقط لاغير فى textbox؟
وللاجابة على هذا السؤال سنقوم بتنفيذ كود اكسل vba
ليقوم بهذة المهمة بالنيابة عنكم 
اذا كيف نقوم بذلك .
فى البداية لابد لنا من ايجاد دالة معينة تقوم بحساب عدد الارقام المدخلة فى التكست بوكس حتى يتم عمل المعادلة اللازمة لمنع المستخدم من ادخال ارقام اكثر من العدد المطلوب (11 رقم )  وهنا سوف نستخدم الدالة (LEN)
وسيكون شكل الكود كالاتى 

If Len(Me.TextBox1.Value) > 11 Then
MsgBox "number mustbe8 digits"
Me.TextBox1 = ""
End If

وبذلك يكون الكود يعمل انة فى حالة ادخال اكثر من 11 character   ولكن هناك مشكلة اذا قومنا بادخال حرف او نص او مسافة سوف تقوم الدالة (LEN) باحتساب 11 موضع فقط لاغير بغض النظر عن كونة رقم او نص اوغير ذلك وهذا سيسبب مشكلة كبيرة فى دقة النتائج
كيف نتغلب على هذة المشكلة من خلال اضافة كود اخر يقوم باختبار محتويات الخلية اذا كانت نص او اى شئ غير الارقام لن يقبل الادخال 
With TextBox1
If Not IsNumeric(.Value) And .Value <> vbNullString Then
MsgBox "sorry,only number allowed" 
.Value = vbNullString

لمعرفة كيفية عمل الكود يرجى متابعة شرح الفيديو

 

من نحن

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

التصنيفات

نموذج الاتصال

الاسم

بريد إلكتروني *

رسالة *

إجمالي مرات مشاهدة الصفحة