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

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

قام بنشر (معدل)

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

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

Cells(1, Cells(1, Columns.Count).End(xlToLeft).Column).Select

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

Range("A" & Cells.Rows.Count).End(xlUp).Select 

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

كيف نستخدم  الخلية النشطة فى الوصول الى آخر خلية بها بيانات فى صفها أو عمود ها ؟

قبل الاجابة على السؤال  نحاول نفهم الآتى :

طبعا احنا عارفين أن اى خلية ليها صف وليها عمود    ماشى   لو عندنا الخلية النشطة هى $A$1

كيف نحصل على رقم الصف وكيف نحصل على اسم العمود من التركيبة $A$1  علامتى الدولار والحرف والرقم

سنعتمد على الدالة MID  وبنيتها كالتالى  ( النص الذى سنستخرج منه + نقطة البداية + عدد الاحرف المطلوبة )
( MID( text ; start position ; Number of characters

وظيفتها استخلاص جزء من نص بداية من  نقطة محددة فيه  وعدد محدد من الحروف

ضع النص $A$1 فى خلية ولتكن  A1  نحصل على رقم الصف بالمعادلة

=MID(A1; 4; 1048576)

 نحصل على اسم العمود بالمعادلة

=MID(A1; 2; 1)

المعادلة دى ستعطيك اسم العمود وهو A

كيف نستفيد من ذلك فى الانتقال من الخلية النشطة الى آخر خلية بها بيانات فى صف أو عمود الخلية النشطة  ؟

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

Cells(Mid(ActiveCell.Address, 4, 1048576), Cells(Mid(ActiveCell.Address, 4, 1048576), Columns.Count).End(xlToLeft).Column).Select 

هذا السطر يستخدم  فى الانتقال من الخلية النشطة الى آخر خلية بها بيانات فى نفس صف  الخلية النشطة

بص كمان على سطر الكود الثانى  ستجد فيه "A" اسم العمود  شيل اسم العمود وضع المعادلة التى هتطلع لنا اسم العمود

Range(Mid(ActiveCell.Address, 2, 1) & Cells.Rows.Count).End(xlUp).Select 

هذا السطر يستخدم  فى الانتقال من الخلية النشطة الى آخر خلية بها بيانات فى نفس عمود الخلية النشطة

ناس هتقول  ايه فائدة  ده كله  ؟  هقوله  جرب المرفق التالى  وأنت تعرف ممكن يعملوا ايه !

ملحوظة 1 : ده مش معناه أن السطرين دول وبس ممكن يعملوا ما فى المرفق

ملحوظة 2 : فى المرفق تم اضافة الخاصية  Offset  على السطرين .

find last entry in Rows and columns by mokhtar .rar

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

تم تعديل بواسطه مختار حسين محمود
  • Like 7
قام بنشر (معدل)

زيادة في اثراء الموضوع هذا الكود البسيط

ملاحظة كود على السريع حيث ان البيانات يجب ان تبدأ من العامود A  (يمكن التعديل)

Sub mylastecel()
Dim lr, lc As Integer

    lr = UsedRange.Rows.Count
    lc = UsedRange.Columns.Count

For i = 1 To lc
    If Cells(lr, i) <> "" Then
        Cells(lr, i).Select
        Selection.Offset(0, 1).Select
        If Selection = "" Then Selection.Offset(0, -1).Select
    End If
Next
End Sub

 

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

أخى وأستاذى الغالى ياسر خليل  بارك الله فيك  نورت الموضوع وشرفت بمرورك

أخى وأستاذى الغالى سليم حاصبيا مشكور على الاضافة   نورت الموضوع وشرفت بمرورك

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