اذهب الي المحتوي
أوفيسنا

كيف يتم فتح أو إنشاء ملف يأخذ اسمه من خلية معينة


إذهب إلى أفضل إجابة Solved by ياسر خليل أبو البراء,

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

الأخوة الأعضاء الكرام
السلام عليكم ورحمة الله وبركاته
ممكن المساعدة في معرفة كيفية أخذ اسم مستند ما من خلية لفتحه أو إنشاء جديد يأخذ اسمه من خلية معينة مثلا: 
Workbooks.Open Filename:=ActiveWorkbook.Path & "\" & "الصفوف" & ".xlsm"
كيف استبدل اسم الصفوف بدالة تشير إليه في نطاق ممسى مثلاً ( الصف ) مثل دالة ( INDIRECT ) للإشارة إلى مدى معين مثلاً أو دالة ( CStr ) للإشارة إلى ورقة معينة 
حاولت استعمال دالة ( CStr ) ولكن دون فائدة 
أفيدونا أفادكم الله 
ولكم منا جزيل الشكر والتقدير
وجزاكم الله خير
 
رابط هذا التعليق
شارك

أخي العزيز الأستاذ  / عبد الله بولنوار

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

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

 

 والحل بسيط وليس كما اعتقد أنه معقد وهو باستخدام ( Range ) حيث يكون الكود بهذا الشكل

Workbooks.Open Filename:=ActiveWorkbook.Path & "\" & Range("a1").Text & ".xlsm"

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

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

فتح ملف اسمه مأخوذ منخلية ما.rar

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

نعم و يمكن حفظ الملف بضيغة البيدياف او غيرها بتغيير النهاية ".xlsm"

 

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

 

و كانه يتعامل مع الملفات المفتوحة اخيرا فقط

 

هل تستعمل و ينداوس اكس بي ؟

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

أخي العزيز الأستاذ  / عبد الله بولنوار

الوندوز عندي ( 8) والملف عندي يعمل مضبوط 

من ملاحظتي للصورة التي أرسلتها أن اسم الملف في الخلية (a1) ليس الصفوف فبالتالي جاءت رسالة الخطأ 

هذا الكود هو لفتح ملف موجود في نفس المجلد وليس لإنشاء مجلد جديد 

والعفو

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

الأخ الشهابي يمكن استخدام Value بدلاً من Text أيضاً

Sub openfile()
    Workbooks.Open Filename:=ActiveWorkbook.Path & "\" & Range("a1").Value & ".xlsm"
End Sub

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

أستاذي العزيز / ياسر خليل 

شرف كبير لي وسعيد جداً بمروركم الكريم على موضوعي وإضافة في محلها  جزاكم الله خير

وأتمنى منكم أو من أحد الإخوان التعديل على الكود لإنشاء مستند جديد يحفظ باسم مأخوذ من الخلية نفسها (a1)  مثل ما تم في الفتح 

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

تفضل أخي الحبيب الشهابي

Sub CreateNewWB()
    ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Range("A1").Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub

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

إستاذي العزيز / ياسر خليل 

 

 

تفضل أخي الحبيب الشهابي

Sub CreateNewWB()
    ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Range("A1").Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub

  هذا الكود هو لتغير اسم الملف  وليس لإنشاء مجلد جديد كما أشرت في المشاركة الثامنة أرجو  التعديل وجزاكم الله خير

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

  • أفضل إجابة

جرب هذا الكود

Sub CreateNewWB()
    Dim NewBook As Workbook
    Set NewBook = Workbooks.Add
    On Error Resume Next
    Application.DisplayAlerts = False
        NewBook.SaveAs Filename:=ThisWorkbook.Path & "\" & ThisWorkbook.Sheets("Sheet1").Range("A1").Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled
    Application.DisplayAlerts = True
End Sub

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

إستاذي العزيز / ياسر خليل

لم يفلح الأمر استاذنا القدير  تم إنشاء مستند جديد ولكن لم يتم تسميته بالاسم الموجود في الخلية (a1)

هل جربت الكود أنت 

جزاكم الله خير أستاذنا 

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

نعم جربت الكود ويعمل معي .ولكن يجب ألا يكون المصنف موجود بالفعل ..أو مفتوح

أخبرني هل تظهر معك رسالة خطأ وما مضمون رسالة الخطأ؟

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

إستاذي العزيز / ياسر خليل

تم اكتشاف الخطأ  ويتمثل في اختلاف تسمية الأوراق حيث تم تغير ( Sheet1 ) بـ ( ورقة1 ) فتمت الإضافة والتسمية بالاسم المطلوب حيث أصبح الكود هكذا

Sub CreateNewWB()
    Dim NewBook As Workbook
    Set NewBook = Workbooks.Add
    On Error Resume Next
    Application.DisplayAlerts = False
        NewBook.SaveAs Filename:=ThisWorkbook.Path & "\" & ThisWorkbook.Sheets("æÑÞÉ1").Range("A1").Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled
    Application.DisplayAlerts = True
End Sub

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

Sub CreateNewWB()
    Dim NewBook As Workbook
    Set NewBook = Workbooks.Add
    On Error Resume Next
    Application.DisplayAlerts = False
        NewBook.SaveAs Filename:=ThisWorkbook.Path & "\" & ThisWorkbook.Sheets(1).Range("A1").Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled
    Application.DisplayAlerts = True
End Sub

المهم أستاذي العزيز  لك مني كل التقدير والإحترام وجزاكم الله خير ورفع الله قدركم وزادكم علما ورفعة ووفقكم الله دائما لخدمة إخوانكم 

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

تقبلوا تحياتي

  • Like 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