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

هل من طريقة لربط إسم الورقة داخل المصنف بمتغير ما ، و ليكن خلية ما داخ


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

إخواني الأعزاء

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

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

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

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

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

لريط أسم و رقه العمل بالخليه A1 أستخدم الكود التالى :

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$A$1" Then

        Sheet1.Name = [A1]

    End If

End Sub

مرفق ملف

السلام عليكم

Sheet_Name.rar

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

السلام عليكم

بعد اذن اخي الحبيب هادي سالم

الاسم KH_SHEET_NAME

يحتوي على المعادلة التالية:

=MID(CELL("filename";INDIRECT("A1"));SEARCH("]";CELL("filename";INDIRECT("A1")))+1;LEN(CELL("filename";INDIRECT("A1")))-SEARCH("]";CELL("filename";INDIRECT("A1"))))

اذا وضعت هذا الاسم في اي خلية في اي ورقة في المصنف يعطيك اسمها.

شاهد المرفق

اسم ورقة العمل بالمعادلات.rar

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

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

بعد إذن أخي خبور

يمكن اختصار المعادلة أعلاه إلى المعادلة التالية

و ستعطي نفس النتيجة إن شاء الله

 =MID(CELL("filename"),FIND("]",CELL("filename"))+1,255)

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

اذا وضعت هذا الاسم في اي خلية في اي ورقة في المصنف يعطيك اسمها.

اخى الحبيب خبور :

مشاركاتك دائما رائعه, جزاك الله خيرا

و لكن أعتقادى ان العكس هو المطلوب

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

شكرا لجميع الإخوة على ما قدموا

رغم أني أرى أن ما قام به أخونا هادي هو المطلوب

أشكر أخويّ خبور خير ويحيى حسين

وبانتظار رأي صاحب الموضوع

وبالنسبة للأخ hofn

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

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

يمكنك أيضاً أخي ان تجعل الكود مرتبط بحدث اخر مثلاً

بحدث فتح الصفحة

و أن يقوم الكود تلقائياً بالبحث في جميع الصفحات و تغيير الاسم حسب الخلية A1

في كل صفحة

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

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

جزاكم الله خيراً ...

أخيكم / رضا الخشن

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

الاخ يحى حسين ........اشكرك على المشاركة ولكن .....

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

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

أخي رضا

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

مع اختصار بسيط في مكوناتها

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

و الاخ Hofn

هذا هو الكود الذي يوضع في حدث فتح الصفح

و أيضاً ستجده في المثال المرفق

 Private Sub Workbook_Open()

Dim MySheet As Worksheet

	For Each MySheet In ActiveWorkbook.Worksheets

    	MySheet.Name = MySheet.Range("a1").Value

	Next MySheet

End Sub

Justice.rar

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

رائع أخي يحيى

أحياك الله في طاعته

بهذا الكود لا يلزم الإخوة تكرار الكود في كل شيت

وعلى فكرة هذه أحد هواياتي البرمجية : الاختصار (أداء المهام المطلوبة بأقل عدد من الكلمات البرمجية)

وفقنا الله لكل ما يحب ويرضى

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

حياك الله اخي محمد

أنا أحتاج هذه الأكواد في عملي كثيراً

و خصوصاً الأكواد التي تتعامل مع الصفحات من اضافة و تعديل و ارتباط تشعبي

و هي بصدق توفر كثير من الوقت

==============

دمتم في حفظ الله و رعايته

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

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

أول مره ألاحظ أن يحيى حسين هو Justice

و انا عمال أقول مين الرائع يحيى حسين ؟

لا ادرى لماذا الكود لا يعمل معى فى جميع اوراق العمل

بدلا من نسخ الكود فى أوراق العمل يمكن اضافه اجراء و نريح نفسنا بنفس كودك السابق و لكن بتعديل بسيط و لكن يجب عدم تكرار اسم اوراق العمل بالخليه A1

Sub DOIT()

Dim MySheet As Worksheet

    For Each MySheet In Worksheets

        MySheet.Name = MySheet.Range("a1").Value

    Next MySheet

End Sub

مرفق ملف

السلام عليكم

Justice_Hady.rar

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

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

و لكن يجب عدم تكرار اسم اوراق العمل بالخليه A1

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

On Error Resume Next
ليكون الكود كالتالى
Sub DOIT()

Dim MySheet As Worksheet

    On Error Resume Next

    For Each MySheet In Worksheets

        MySheet.Name = MySheet.Range("a1").Value

    Next MySheet

End Sub

السلام عليكم

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

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

أول مره ألاحظ أن يحيى حسين هو Justice

و انا عمال أقول مين الرائع يحيى حسين ؟

لا ادرى لماذا الكود لا يعمل معى فى جميع اوراق العمل

أنت الرائع أخي هادي

شكراً على كلماتك الطيبة

==============

و المشكلة الثاني التي قد تواجه الكود

ان اسم الصفحة يجب ان لا يزيد عن 31 حرف

بحيث اذا كانت قيمة الخلية A1 عدد الاحرف فيها اكثر من 31 فسيحدث خطأ اخر وقتها

==============

و دمتم في حفظ الله و رعايته

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

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