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

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

قام بنشر

في الملف المرفق

عند الضغط بالمؤشر داخل مربع ضمن الخلايا الملونة تظهر لدينا في الخلية C3 قيمة الخلية النشطة وهي رقم الملف الخاص بالموظف

ومكان حفظ هذا الملف في المسار D:\sss علما أن sss هو المجلد الرئيسي لملفات البيانات وجميعها اكسل ( xlsx. ) وعندما نضغط على زر ( إظهار الملف ) يفتح لدينا الملف ذو الرقم الظاهر لدينا في الخلية C3 ولتنفيذ العملية يلزم وضع مجلد في المسار المحدد ووضع ملف اكسل وتسميته برقم صحيح

المطلب الأول : التعديل على كود إظهار الملف ليتم فتح ملف الاكسل مهما كان امتداده أي إضافة امتدادات الاكسل جميعها على الكود ليتم فتح ملف الاكسل المقصود ( نفس الرقم في C3 )

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

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

أما إذا تم استدعاء الملف من هذه الصفحة بالضغط على زر( اظهار الملف ) يتم فتح الملف مباشرة بدون طلب كلمة مرور..

وشكرا جزيلا للجميع

فتح ملف الاكسل من خلال زر محدد ومنع فتحه من المسار مباشرة.rar

قام بنشر

السلام عليكم

جرب هذه الطريقة

هذه الأكواد في حدث الورقة ورقة1


Private Sub Worksheet_Activate()

ALI_A = 1

End Sub

Private Sub Worksheet_Deactivate()

ALI_A = 0

End Sub

وهذا الكود في مدويل

Option Explicit

Public ALI_A As Integer

Public Sub T_PTh()

On Error Resume Next

    Dim PaTh_A As String, R_Va As Byte

    PaTh_A = "D:\" & [b3] & "\" & [C3] & ".xlsx"

    R_Va = D_N(PaTh_A)

    If R_Va Then

	   MsgBox "غير موجود"

    Else

    If Val(ALI_A) = 1 Then GoTo 1

    Dim AA%

    Const P As String = "123"

    AA = InputBox("إدخل تصريح فتح الملف", "منتدى أوفسينا")

    If AA = P Then

	 MsgBox "موجود"

    Workbooks.Open Filename:=PaTh_A

    Range("A1").Select

    Else

    MsgBox "كلمة المرور خطاء", vbExclamation, "تنبية !!!"

    Exit Sub

    End If

    End If

1:

    Workbooks.Open Filename:=PaTh_A

    Range("A1").Select

End Sub

Private Function D_N(D_E As String) As Byte

On Error GoTo P

D_N = IIf(Len(Dir(D_E)) > 1, 0, 1)

Exit Function

P:

D_N = 2

End Function

جرب الكود وابلغنى بالنتائج

والسلام عليكم

قام بنشر

عمل رهيب جدا أخي ابو نصار

المطلب الثاني يعمل بشكل ممتاز

بالنسبة إلى الطلب الثالث المطلوب هو عندما نكون في ملف العمل يتم فتح الملف الفرعي الموجود في المسار d:\sss بشكل تلقائي بدون كلمة مرور وعندما نقوم بفتح الملف بالتوجه مباشرة إلى مساره الحقيقي d:\sss هنا أريد وضع كلمة مرور عليه ..... وبعدها ما أريده هو أن يفتح الملف الفرعي عندما أكون أعمل على ملف العمل وهو البرنامج الموجود فيه البيانات وموجود فيه زر ماكرو لفتح الملف الفرعي

يعني الجدول السابق في المشاركة 1 هو البرنامج الرئيسي وعندما أكون أعمل عليه يفتح معي الملف الفرعي على المسار المحدد بدون كلمة مرور بمجرد الضغط على زر اظهار الملف

إضافة إلى المطلب الأول وهو إضافة باقي امتدادات الاكسل إلى الكود بحيث يفتح الملف الفرعي من المسار مهما كان امتداده (.xlsx , xlsm xls )

وشكرا جزيلا لك أخي الاستاذ القدير ابو نصار

قام بنشر

السلام عليكم

الاخ ابو تميم

اعذرني الطلب الأول لاأعلم

من قال لااعلم فقد افتى

الطلب الثالث غير واضح

ماهو الملف المسار الحقيقي وغير الحقيقي ؟

ماهو ملف العمل ودونه ؟؟

قام بنشر

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

أخي أبو تميم

كما قال أستاذنا أبو نصار – حفظه الله وبارك فيه– المطلوب غير واضح

ومحاولة مني لفهم طلبك الأول جرب الكود التالي :



Sub openFile()

MyArray = Array("xlsm", "xlsx", "xls")

On Error Resume Next

For r = 0 To 2

	 MyPath = "D:\" & [b3] & "\" & [C3] & "." & MyArray(r)

	 If Dir(MyPath) <> "" Then

		  Workbooks.Open Filename:=MyPath

		  Exit Sub

	 End If

Next r

MsgBox ("الملف غير موجود")

End Sub[/size]

[size=4]

الكود يقوم بالبحث عن الملف بثلاثة امتدادات وعند وجود الملف يتم فتحه أو ظهار رسالة بعدم وجود الملف

-------------------------

ومحاولة لفهم الطلب الثالث:

في المجلد المرفق: عند فتح الملف المسمى(فرعي) يطالب بكلمة مرور , وعند فتح نفس الملف من الزر في الملف المسمى (الرئيس ) لا يتم المطالبة بكلمة مرور الملف الفرعي.

(كلمة المرور في الملف -فرعي- عبارة عن رسالة "مطلوب كلمة المرور" يمكن الاستعاضة عنها بكود كلمة المرور)

في امأن الله

فتح ملف من زر دون المطالبة بكلمة المرور.rar

قام بنشر

أشكرك أخي الكريم الخالدي

فعلا هذا ما كنت أقصده ولكن بتعديل بسيط

والكود الذي وضعته جميل جدا بالنسبة إلى المطلبا الأول

أما المطلب الثالث أود التوضيح أكثر

كما وضحت في مثالك أخي الخالدي

في المجلد ملفين رئيس وفرعي ... عندما أكون في الملف الرئيسي وأضغط على زر فتح الملف الفرعي يتم فتح الملف بدون مطالبتي بكلمة مرور

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

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

وعدنا إلى النقطة الأولى إما أن يفتح الملف الفرعي بكلمة مرور بكل الاحتمالات أو لا

ولتبسيط الموضوع أكثر

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

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

أعتقد الآن توضحت الصورة ....

آمل أن تكون قد توضحت وأنا آسف جدا إن كنت قد أزعجتكم أو أثقلت عليكم وهذه الفكرة لاحظتها في برنامج ( ولكنه ليس اكسل أكيد ) وكان هذا البرنامج يحتوي على ملفات pdf وعندما تكون تعمل على البرنامج يمكن أن تفتح ملف الـpdf بشكل تلقائي ويتم عرض بياناته في البرنامج ولكن إذا توجهت إلى قاعدة بيانات البرنامج وحاولت فتح ملف pdf يطلب منك ادخال كلمة مرور

قام بنشر

حووووووووووووووووووووووووووووووووت يا استاذ محمد مصطفى

هذا هو المطلوب بالضبط

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

  • 2 years later...

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