الأربعاء، 31 مارس 2021

دالة HYPERLINK فى اكسل

 دالة HYPERLINK فى اكسل:

دالة HYPERLINK الارتباط التشعبى :

تقوم بعمل ارتباط لخلية معينة فى الشيت او فى شيت اخر او ملف اخر ؛
بمجرد الضغط عليها تذهب لتلك الخلية .
كذلك تعمل ارتباط لــــ :
- ملف على الجهاز
- او صفحة ويب
- او عنوان بريد الكترونى
- او مدونة او قناة
- او تنشى مستند جديد بهذا الارتباط .
فمثلا لو كان لديك جدول به اسماء موظفين ولكل موظف صفحة فى الشيت وتريد اضافة عمود بالجدول وامام كل موظف ارتباط بكلمة محددة؛
بمجرد الضغط عليها تذهب لصفحة الموظف ؛
عليك بالاتى :

الطريقة الاولى :
1 - كليك يمين على الخلية
2 - اختار HYPERLINK
3 - اختار PLace in this documant
4 - اختار الصفحة المحددة ثم ok
لتفاصيل اكثر حول الوظائف والمهام شاهد الفيديو التالى


من خلال كتابة الدالة داخل الخلية ولها طرق متعددة شرحناها فى الفيديو .
تكوين دالة HYPERLINK فى حالة الحصول على اسم صفحة من خلية فى الجدول كالتالى :


على اعتبار الجدول التالى :



والشرح لطريقة العمل فى الفيديو التالى :





الاثنين، 22 مارس 2021

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

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

اضافة تعليقات بالاكسل موضوع سهل
بخطوات بسيطة 
كليك يمين على الخلية ثم INSERT COMMENT
يظهر لك مربع التعليق لتضيف التعليق 
اذا اردت التعديل 
كليك يمين على الخلية التى بها تعليق 
ثم EDIT COMMENT 
واذا اردت حذف التعليق 
كليك يمين على الخلية ثم DELETE COMMENT
كل ذلك فى حالة اضافة تعليق يدوى كتابة بيدك 

اما اذا اردت ان يظهر التعليق تلقائى بمحتوى الخلية 

فعليك بالكود التالى :
Sub Createcomments()
'Create comments in cells where the value is larger than column width
Dim rng As Range
Dim Cell As Variant

On Error Resume Next
Set rng = Application.InputBox(Prompt:="Select a range:", _
Title:="Create comments in cells where the value is larger than column width", _
Default:=Selection.Address, Type:=8)
On Error GoTo 0

If rng Is Nothing Then
Else
    For Each Cell In rng
        If Len(Cell) * 0.9 > Cell.ColumnWidth Then
            If Cell.Comment Is Nothing Then
                Cell.AddComment Cell.Value
            End If
        End If
    Next Cell
End If

                                                     End Sub

لتنفيذ الماكرو تابع الفيديو التالى :





السبت، 20 مارس 2021

حذف كل الفراغات بجدول اكسل بسهولة

          حذف كل الفراغات بجدول اكسل بسهولة


اذا كان لديك جدول وبه بيانات كثيرة جدت وبين تلك البيانات خلايا فارغة وتريد تحديد وحذف كل الفراغات بجدول اكسل الخاص بك بسهولة اتبع الخطوات التالية :

الطريقة الاولى :
1 - حدد الجدول كاملا بالوقوف فى اول خلية ثم السحب لنهاية الجدول لتحديده ؛ اما اذا كان جدولك كبير فعليك اسنخدام الاختصار CTRL+SHIFT+ السهم لاسفل والسهم يمين او يسار على حسب جدولك ؛
ولكن ستواجهك صعوبة فى تحديد الجدول بسرعة المحترفين لان جدولك به خلايا فارغة ؛ ولكى تتمكن من احتراف ذلك عليك بالطريقة التالية المختصرة CTRL +SHIFT+ END.

2- اضغط المفتاح F5  ثم اختار SPECIAL ثم اختار BLANKS ثم OK.




3 - اضغط كليك يمين على الموس مع التحديد ثم اختار DELETE ثم SHIFT CELLS UP  ثم OK.






الطريقة الثانية:

ستستخدم الدوال للحصول على عمود جديد او جدول جديد بلا خلايا فارغة وذلك اذا كان لديك بيانات مهمة مقابلة للخلايا الفارغة 
فأنت تريد الحصول على جدول بدون خلايا فارغة مع الاحتفاظ بالجدول الاساسى ؛
فعليك باتباع خطوات
   الفـــــيـــــديــــــــو الــــــــتـــــــالـــــــــى :


  


وقد استخدمنا فيه الصيغة التالية كمصفوفة بها دوال INDEX + SMALL+IF +ISBLANK+ISERROR:

=INDEX($B$3:$B$20;SMALL(IF(ISBLANK($B$3:$B$20)+ISERROR($B$3:$B$20);"";ROW($B$3:$B$20)-MIN(ROW($B$3:$B$20))+1);ROW(1:1)))


   

الجمعة، 12 مارس 2021

دالة sumif الجمع بشرط

 دالة sumif الجمع بشرط:

لا تفى دالة sum العادية فى الاكسل بكل الاغراض ؛ لانها تقوم بالجمع للمجال range
كاملا او لعدة خلايا تحددها بنفسك ؛ ولكن اذا كان لديك شروطا لجمع الاعداد فلن تفى دالةsum ؛
لذلك فانك بحاجة لدالة sumif ؛ وهى دالة الجمع بشرط محدد ؛ على سبيل المثال :
لو ان لديم مجموعة اصناف او منتجات فى جدول وتريد الجمع لصنف محدد على مدى الجدول كاملا فعليك بدالة sumif .










ففى الصورة السابقة مثلا نريد جمع العدد المباع من الاصناف ولكن بشرط الصنف بيبسى مثلا او كولا ؛ فلابد من استخدام الدالة كالتالى
SUMIF($A$2:$C$18;"="&G3;$B$2:$B$18) مكونات دالة SUMIF:

                                        (RANGE;CRITERIA;SUMRANGE)


1- RANGE:وهو الجدول كاملا .
2- CRITERIA:وهو المعيار ويمكن كتابته مباشرة داخل الدالة بين قوسين لو كان نصا او كتابته فى خلية اخرى كمتغير ولكن تكتبه كالتالى G3 & "="
3- SUMRANGE: وهو العمود المراد جمع الارقام منه بناءا على الشرط المحدد لمتابعة خطوات العمل تابع الفيديو التالى :




الأحد، 7 فبراير 2021

الحلقة التكرارية For next

 الحلقة التكرارية For   next



نستخدم الحلقة التكرارية for - next :

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



ولتفهم كيفية عمل الحلقة التكرارية شاهد الفيديو التالى :


المثال الاول للعمل على الحلقة التكرارية :
1- اعطاء تقديرات للطلاب بدون معادلات 
ويكون الكود هو :
Sub تقديرات()
For i = 2 To 13
If Cells(i, 2).Value < 50 Then
Cells(i, 3).Value = "راسب"
Else
Cells(i, 3).Value = "ناجح"
End If
Next i
End Sub
المثال الثانى :
2- تلوين اسماء محددة فى عمود محدد باللون الاحمر واعطاء الخط الحجم السميك
bold.
وتلوين اسم مع ترك اسمين وهكذا لنهاية العمود .
والكود المستخدم هو :
Sub Macro1()
Dim lrow As Long
lrow = Application.WorksheetFunction.CountA(Range("a:a"))
For i = 1 To lrow Step 2
ActiveCell.Font.Color = vbRed
ActiveCell.Font.Bold = True
ActiveCell.Offset(3, 0).Select
Next i
End Sub
المثال الثالث :
3- افتراض متغير عددى counter من 1 الى 2 مثلا
واضافة شيتات جديدة بعدد المتغير counter واعطاء اسم للشيتات باسم المتغير العددى
ويكون الكود كالتالى :
Sub Macro3()
For counter = 1 To 2
Sheets.Add
ActiveSheet.Name = counter
Next counter
End Sub
المثال الرابع :

4 - اجابة على احد الاسئلة الواردة لصفحتنا   لـــــغـــــة الاكــــــســــــل 

وشرحنا الحل فى الفيديو واستخدمنا الاكواد التالية :
Sub Macro2()
Application.ScreenUpdating = False
Macro11
Sheets("ورقة1").Activate
For i = 1 To 50
If Sheets("ورقة1").Cells(i, 1).Value <> "الرقم" And Sheets("ورقة1").Cells(i, 1).MergeCells = False Then
Sheets("ورقة2").Cells(i, 2).Value = Sheets("ورقة1").Cells(i, 1).Value
Sheets("ورقة2").Cells(i, 3).Value = Sheets("ورقة1").Cells(i, 2).Value
Sheets("ورقة2").Cells(i, 4).Value = Sheets("ورقة1").Cells(i, 3).Value
Sheets("ورقة2").Cells(i, 5).Value = Sheets("ورقة1").Cells(i, 4).Value
Sheets("ورقة2").Cells(i, 6).Value = Sheets("ورقة1").Cells(i, 5).Value
Sheets("ورقة2").Cells(i, 7).Value = Sheets("ورقة1").Cells(i, 6).Value
End If
If Sheets("ورقة1").Cells(i, 1).MergeCells = True Then
Sheets("ورقة2").Cells(i + 2, 1).Value = Sheets("ورقة1").Cells(i, 1)
End If
    Next i
    Macro4
    تنسيق
End Sub
حيث يتم ادراج مديول فى المطور وكتابة الاكواد السابقة ؛ ثم ادراج شكل معين فى الشيت وكليك يمين على الشكل  واختيار  Assign Macro
وتحديد الماكرو المكتوب ثم OK 

لاحظ ان Macro11:
 
مسئول عن الغاء الفلترة قبل تنفيذ الاضافة 
ويكون كالتالى :
 Sub Macro11()

    Sheets("ورقة2").Activate
    Range("A3:G23").Select
    Selection.ClearContents
    ActiveSheet.Range("$A$1:$G$54").AutoFilter Field:=2
    Range("B1").Select
End Sub
لاحظ ان Macro4:
لعمل الفلترة بعد نقل البيانات ويكون كالتالى :
Sub Macro4()
  Application.ScreenUpdating = False
  Sheets("ورقة2").Activate
    Columns("A:G").Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$G$54").AutoFilter Field:=2, Criteria1:="<>"
    Range("B1").Select
    
End Sub
لاحظ ان  تنسيق:  
لاعطاء تنسيق مناسب للخطوط فى الجدول بعد الفلترة ؛
ولتفهم عمل الكود لابد من متابعة الفيديو .





يسرنا تواصلك معنا عبر صفحة  :

لـــــغـــــة الاكــــــســــــل 



الخميس، 4 فبراير 2021

تحديد صلاحيات مختلفة لاكثر من مستخدم من يوزرفورم واحد دون اخفاء الشيتات

 تحديد صلاحيات مختلفة لاكثر من مستخدم من يوزرفورم واحد دون اخفاء الشيتات

اذا كان لديك ملف اكسل يستخدمه اكثر من شخص واحد وتريد تحديد صلاحيات لكل مستخدم منهم على النحو التالى :
1- المستخدم الاول :
له كلمة سر واسم مستخدم محدد له ؛ وتريد صلاحياته الاتى 
القراءة والفلترة فقط ؛ فستستخدم الاكواد التالية بالطريقة المشروحة فى الفيديو :


ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True, AllowUsingPivotTables:=True
    ActiveSheet.EnableSelection = xlNoSelection





2- المستخدم الثانى والثالث :
كل منهم له كلمة سر واسم مستخدم مختلفة على نفس الملف ولديهم صلاحية :
القراءة والفلترة وادخال البيانات وPIVOT TABLE
فستستخدم الاكواد التالية بنفس الطريقة المشروحة فى الفيديو :


ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
      , AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True

الاكواد المستخدمة للملف كاملا والتى توضع فى الحدث ACTIVATE

Application.ScreenUpdating = False
Sheets("الادخال").Visible = True
Sheets("data1").Visible = True
Sheets("ســـــــولار").Visible = True
Sheets("Diesel Chart").Visible = True
Sheets("كارت الصنف").Visible = True
Sheets("طلبات الاحتياج").Visible = True
Sheets("حمالات و صرفيات").Visible = True
If Sheets("الادخال").Range("m2").Value = "Guest" And Sheets("الادخال").Range("m3").Value = "55555" Then
Sheets("الادخال").Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True, AllowUsingPivotTables:=True
    ActiveSheet.EnableSelection = xlNoSelection
Sheets("كارت الصنف").Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True, AllowUsingPivotTables:=True
    ActiveSheet.EnableSelection = xlNoSelection
 Application.ScreenUpdating = False
Sheets("data1").Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True, AllowUsingPivotTables:=True
    ActiveSheet.EnableSelection = xlNoSelection
Application.ScreenUpdating = False
Sheets("ســـــــولار").Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True, AllowUsingPivotTables:=True
    ActiveSheet.EnableSelection = xlNoSelection
Application.ScreenUpdating = False
Sheets("Diesel Chart").Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True, AllowUsingPivotTables:=True
    ActiveSheet.EnableSelection = xlNoSelection
Application.ScreenUpdating = False
Sheets("حمالات و صرفيات").Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True, AllowUsingPivotTables:=True
    ActiveSheet.EnableSelection = xlNoSelection
Application.ScreenUpdating = False
Sheets("طلبات الاحتياج").Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True, AllowUsingPivotTables:=True
    ActiveSheet.EnableSelection = xlNoSelection
Application.ScreenUpdating = False
 Sheets("الرئيسيه").Activate
 Application.ScreenUpdating = False
 End If
If Sheets("الادخال").Range("m2").Value = "A.kandil" And Sheets("الادخال").Range("m3").Value = "4444" Or Sheets("الادخال").Range("m2").Value = "M.sobhi" And Sheets("الادخال").Range("m3").Value = "1234" Then
Sheets("الادخال").Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
      , AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
Application.ScreenUpdating = False
Sheets("كارت الصنف").Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
      , AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
Application.ScreenUpdating = False
Sheets("data1").Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
      , AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
Application.ScreenUpdating = False
Sheets("ســـــــولار").Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
      , AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
Application.ScreenUpdating = False
Sheets("Diesel Chart").Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
       , AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
Application.ScreenUpdating = False
Sheets("حمالات و صرفيات").Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
       , AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
Application.ScreenUpdating = False
Sheets("طلبات الاحتياج").Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
      , AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
 Application.ScreenUpdating = False
 Sheets("الرئيسيه").Activate
 End If

لاحظ اختلاف اسماء الشيتات لديك واختلاف اسماء المستخدمين وكلمات المرور؛

الاكواد التالية توضع فى الحدث BEFORCLOSE فى اليوزرفورم فى زر نعم  بنفس الطريقة المشروحة فى الفيديو :




Sheets("الادخال").Activate
 ActiveSheet.Unprotect
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:= _
        True
    ActiveSheet.EnableSelection = xlNoRestrictions
Sheets("كارت الصنف").Activate
 ActiveSheet.Unprotect
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:= _
        True
    ActiveSheet.EnableSelection = xlNoRestrictions
Sheets("data1").Activate
 ActiveSheet.Unprotect
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:= _
        True
    ActiveSheet.EnableSelection = xlNoRestrictions
Sheets("ســـــــولار").Activate
 ActiveSheet.Unprotect
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:= _
        True
    ActiveSheet.EnableSelection = xlNoRestrictions
Sheets("Diesel Chart").Activate
 ActiveSheet.Unprotect
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:= _
        True
    ActiveSheet.EnableSelection = xlNoRestrictions
Sheets("حمالات و صرفيات").Activate
 ActiveSheet.Unprotect
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:= _
        True
    ActiveSheet.EnableSelection = xlNoRestrictions
Sheets("طلبات الاحتياج").Activate
  ActiveSheet.Unprotect
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:= _
        True
    ActiveSheet.EnableSelection = xlNoRestrictions
    Sheets("الرئيسيه").Select
ThisWorkbook.Save
UserForm2.Hide

لاحظ اختلاف اسماء الشيتات لديك 

فى الحدث ACTIVATE لكل ورقة من اوراق العمل اكتب الاكواد التالية :

If Sheets("الادخال").Range("m2").Value = "Guest" And Sheets("الادخال").Range("m3").Value = "55555" Then

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True, AllowUsingPivotTables:=True
    ActiveSheet.EnableSelection = xlNoSelection
   End If
If Sheets("الادخال").Range("m2").Value = "A.kandil" And Sheets("الادخال").Range("m3").Value = "4444" Or Sheets("الادخال").Range("m2").Value = "M.sobhi" And Sheets("الادخال").Range("m3").Value = "1234" Then
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
      , AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
End If

لاحظ اختلاف اسم الشيت لديك وخلية ادخال اسم المستخدم وكلمة المرور.

فى النهاية اذا صادفتك اية مشاكل يمكنك تركها فى تعليق .
ويمكنك التواصل معنا على صفحة لغة الاكسل ومجموعة لغة الاكسل على فيس بوك 


الاثنين، 25 يناير 2021

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

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

يمكنك البحث عن بيان له اكثر من قيمة 

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



تركيب الدالة كالتالى :

=INDEX(B$4:B$95;SMALL(IF($A$4:$A$95=$I$4;ROW($A$4:$A$95)-ROW($B$4)+1);ROWS(K$8:K8)))

ولتلاشى خطأ القيمة يتم كتابة المعادلة كالتالى:
 
=IFERROR(INDEX(B$4:B$95;SMALL(IF($A$4:$A$95=$I$4;ROW($A$4:$A$95)-ROW($B$4)+1);ROWS(K$8:K8)));"")

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







 


الجمعة، 15 يناير 2021

فصل الاسماء الرباعية الى اسماء ثلاثية

 فصل الاسماء الرباعية الى اسماء ثلاثية

فصل اسم ولى الامر عن الاسم الاول


تحتاج الادارة التعليمية بكل مركز لسجل قيد للطلاب ومن ضمن البيانات المطلوبة فى سجل القيد هو اسم الطالب كاملا
واسم ولى الامر ثلاثي منفصل
ونظرا لاختلاف الاسماء من
على -ابراهيم - اسماعيل - مى
فى طول السلسلة النصية يصعب فصلها من تبويب DATA-TEXT TO COLUMNS

لذلك يجب استخدام طريقة اخرى بكود بسيط يتعامل مع كل اسم حسب طول سلسلته النصية
اليك الطريقة
1- اذهب للمطور developer

2- فيجوال بيزيك visual Basic

3- ادراج مديول Insert Mediol

4- ادخل الكود التالى والمشروح فى الفيديو








Sub تغيرالاسماء() Dim lr As Long Dim i As Integer Dim arr() As String Dim s As String Dim s1 As String Dim s2 As String With Sheets("اسماء الطلاب") lr = .Cells(.Rows.Count, "c").End(xlUp).Row For i = 2 To lr arr = Split(.Cells(i, 3).Value) s1 = arr(0) s2 = arr(1) & " " & arr(2) & " " & arr(3) s = arr(1) & " " & arr(2) .Cells(i, 5).Value = s .Cells(i, 4).Value = s1 .Cells(i, 6).Value = s2 Next i End With End Sub

5-اذهب للشيت وادرج شكل مستطيل Inserted shapes

6- كليك يمين على الشكل ثم تعيين ماكرو Macro Assignment

واختر الماكرو المحدد امامك
7- الان اضغط على الشكل سيفصل لك الاسماء



السبت، 9 يناير 2021

تغير اسماء ملفات اكسل متعددة بخطوة واحدة

 تغير اسماء ملفات اكسل متعددة بخطوة واحدة

لتغير اسماء عدد كبير من ملفات اكسل او وورد او صور او اى ملفات على الكمبيوتر بخطوة واحدة

يمكنك استخدام احد طريقتين :

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

ستستخدم الكود التالى 
وتضعه فى مديول حسب طريقة الشرح فى الفيديو :


()Sub RenameFiles
Dim xDir As String
Dim xFile As String
Dim xRow As Long
(With Application.FileDialog(msoFileDialogFolderPicker
    .AllowMultiSelect = False
If .Show = -1 Then
    (xDir = .SelectedItems(1
("*"  & xFile = Dir(xDir & Application.PathSeparator 
    Do Until xFile = ""
        xRow = 0
        On Error Resume Next
       ( xRow = Application.Match(xFile, Range("A:A"), 0
        If xRow > 0 Then
           _ Name xDir & Application.PathSeparator & xFile As 
            xDir & Application.PathSeparator & Cells(xRow, "B").Value
        End If
        xFile = Dir
    Loop
End If
End With
End Sub

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

Sub renam()
Dim path As String
Dim fn As String
path = "C:\Users\Ali\Desktop\"
fn = Range("b2").Value
ActiveWorkbook.SaveCopyAs Filename:=path & fn & ".xlsx"
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

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

تابعونا على قناة لغة الاكسل 




الثلاثاء، 3 نوفمبر 2020

الأحد، 1 نوفمبر 2020

الخميس، 29 أكتوبر 2020

index

 index

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

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

سنستخدم الدالة text مع تنسيق "dd/mm/yyyy" بالاضافة الى & "  " & ثم خلية النص 
تابع الفيديو التالى 




التنقل بين الصفحات (وليس الشيتات ) بماكرو مع تحرك الزر لاسفل

البحث عن قيم متعددة وارجاعها افقيا بين اقواس بدالة معرفة من قبل المستخدم VBA

الاثنين، 19 أكتوبر 2020

التنقل بين الشيتات بسهولة من خلال قائمة رئيسية

التنقل بين الشيتات بسهولة من خلال قائمة رئيسية

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




الجمعة، 16 أكتوبر 2020

دالة معرفة VBA لاستخراج الأرقام من النصوص دون دمج دوال


دالة معرفة VBA لاستخراج الأرقام من النصوص دون دمج دوال

اذا اردت ان تستخرج رقم من نص 
فانك تحتاج لدمج الدوال لايجاد الرقم وقد يكون فى اول النس او اوسطه او اخر النص 
قد يحدث الكثير من الاخطاء 
استخدم الدوال التالية لتجنب الاخطاء 
MID(A2;MIN(IFERROR(FIND($K$2:$K$11;A2);""));FIND(" ";A2;MIN(IFERROR(FIND($K$2:$K$11;A2);"")))-MIN(IFERROR(FIND($K$2:$K$11;A2);"")))


اذا استصعب عليك الامر فعليك تعريف دالة للاكسل تفوم بذلك العمل مكانك نكرارا فى كل الملفات 
تابع الشرح فى الفيديو التالى:


 



اذا اردت الاكواد فهذا رابط تحميل الاكواد من هــــــــــــــــنـــــــــــــــا

لا تنسى الاشتراك فى القناة