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

أستفسار عن اضهار واخفاء شيت بناء على قيمة خلية


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

أعزائي اعضاء المنتدى الاجلاء

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

Private Sub CommandButton1_Click()

Sheet2.Visible = xlSheetVeryHidden

End Sub

Private Sub CommandButton2_Click()

Sheet2.Visible = True

End Sub

سؤالي وهو بعد محاولات كثيرة وطويلة بائت كلها بالفشل

اذا امكن ان يتم اخفاء الشيت 2 اذا كانت قيمة الخلية A1 في Sheet1 لا تساوي 50

اما اذا كانت تساوي 50 فشيت سوف تضهر

ولكم خالص تحياتي

اخوكم بوفيصل  

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

اخي ابو فيصل

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

If Sheet1.Range("a1").Value <> 50 Then Sheet2.Visible = xlSheetVeryHidden

If Sheet1.Range("a1").Value = 50 Then Sheet2.Visible = True

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

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

السلام عليكم

===========

اخى ابو فيصل العزيز

نفترض عندى ملف اكسيل به sheet1 , sheet2, sheet3, sheet4, sheet5

ضع الكود التالى فى sheet1

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Range("Sheet1!A1") >= 50 Then

        Sheets("Sheet4").Visible = False

        Sheets("Sheet5").Visible = False

        Sheets("Sheet2").Visible = True

        Sheets("Sheet3").Visible = True

    Else

        Sheets("Sheet2").Visible = False

        Sheets("Sheet3").Visible = False

        Sheets("Sheet4").Visible = True

        Sheets("Sheet5").Visible = True

    End If

End Sub

قد زدت من عدد الصفحات لتتمكن من الاستفادة بالكود باكبر قدر ممكن

الحالة الاولى

---------- الكلام سيكون على الخلية A1

اذا كانت اقل من 50 سيقوم الكود باخفاء الشيتين 2 و 3 واظهار 4 و 5

الحالة الثانية

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

اذا كانت قيمتها =50 سيقوم الكود باخفاء الشيتين 4 و 5 واظهار 2 و 3 ويمكنك التحكم بالكود بسهولة ويسر وتطوعه كما تشاء

تحياتى

New ورقة عمل Microsoft Excel.rar

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

أخي العزيز / بو فيصل

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

تحياتي

أبو عبدالله

HIDE SHEET2 IF A1 IN SHEET1 NOT 50.rar

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

اساتذتي الافاضل السلام عليكم ورحمة الله

ان الغاية من استخدام ميزة الاخفاء هو مقدرة ارسال بيانات سرية لعدد من الاشخاص في ملف واحد على ان يقوم الشخص بأدخال رقمه السري الخاص لتعرض له الشيت الخاصة به.

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

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("Sheet1!A1") = 30 Then

Sheets("Sheet3").Visible = True

Else

Sheets("Sheet3").Visible = False

End If

If Range("Sheet1!A1") = 40 Then

Sheets("Sheet4").Visible = True

Else

Sheets("Sheet4").Visible = False

End If

If Range("Sheet1!A1") = 20 Then

Sheets("Sheet2").Visible = True

Else

Sheets("Sheet2").Visible = False

End If

If Range("Sheet1!A1") = 50 Then

Sheets("Sheet5").Visible = True

Else

Sheets("Sheet5").Visible = False

End If

End Sub

ولكني فقدة الميزة المقدم من الاستاذ عماد حيث يحمي الشيت من الضهور حتى عند استخدام format …….. Sheet ---------unhide

كما اود ان اضيف انه سيكون من الرائع اذا امكن ايجاد رقم سري مثلاً 100 للادمنستريتر المنسق للملف حيث ستضهر جميع الشيتات عند ادخاله .

سؤال اخير

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

ودمتم سالمين

كثير الاسئلة بقصد المعرفة

اخوكم بوفيصل

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

بعد التمحيص والتفحيص استطعت ان اجعل الشيت مخفية حتى عن طريق format …….. Sheet ---------unhide كما اني اضفت رقم للأدمنستريتر 100

وذلك بالكود التالي

Private Sub Worksheet_Selectionchange(ByVal Target As Range)

If Range("Sheet1!A1") = 30 Then

Sheets("Sheet3").Visible = True

ElseIf Range("Sheet1!A1") = 100 Then

Sheets("Sheet3").Visible = True

Else

Sheets("Sheet3").Visible = xlSheetVeryHidden

End If

If Range("Sheet1!A1") = 40 Then

Sheets("Sheet4").Visible = True

ElseIf Range("Sheet1!A1") = 100 Then

Sheets("Sheet4").Visible = True

Else

Sheets("Sheet4").Visible = xlSheetVeryHidden

End If

If Range("Sheet1!A1") = 20 Then

Sheets("Sheet2").Visible = True

ElseIf Range("Sheet1!A1") = 100 Then

Sheets("Sheet2").Visible = True

Else

Sheets("Sheet2").Visible = xlSheetVeryHidden

End If

If Range("Sheet1!A1") = 50 Then

Sheets("Sheet5").Visible = True

ElseIf Range("Sheet1!A1") = 100 Then

Sheets("Sheet5").Visible = True

Else

Sheets("Sheet5").Visible = xlSheetVeryHidden

End If

End Sub

اعلم انه امر بسيط بنسبه للمتمرسين ولكن للمستجدين فهو امر عظيم

والمتبقي هو

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

ودمتم سالمين

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

الاخ ابو فيصل

حماية الاكواد سهلة

ادخل إلى الفيجول

tools --- VBAProject properties --- protection ---

ثم ادخل الباسورد

عندها لا يمكن لاي احد الدخول الى الاكواد إلا بكلمة سر

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

أخي أبو فيصل

حياك الله ، بالنسبة للتمحيص والتفحيص فقد أثمر والحمد لله

ولكن كيف يمكن تغيير مسميات الاوراق مثلا ( خالد ، محمد ، فيصل .. بدلا من Sheet1 , Sheet2 , Sheet3 )

لأنني قمت بالتعديل ولكن الكود لم يعمل ! ! السؤال مطروح للجميع : )

مع خالص التحية

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

ولكن كيف يمكن تغيير مسميات الاوراق مثلا ( خالد ، محمد ، فيصل .. بدلا من Sheet1 , Sheet2 , Sheet3 )

كيف يعني .. سؤالك غير مفهوم

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

أخي العزيز

قم بتغيير أسماء الأوراق بالكود إلى أرقام الأوراق على سبيل المثال الورقة التي سميتها خالد والتي كان إسمها Sheet1 إطلع على رقمها من محرر ال VB وضعه بالكود بدل الإسم هكذا (Sheets(1 وهكذا حتى لوغيرت إسمها لأي إسم لن تحتاج لتغيير لكود واتبع هذا مع كل الأوراق بالكود .

تحياتي

أبو عبدالله

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

أخي العزيز عماد

بمعنى الضغط دبل كليك على اسم الورقة من الاكسل وليس من VB ومن ثم تغيير الاسم: )

--------

أخي العزيز أبو عبدالله

لم تنجح معي الطريقة ، مع العلم بأن اسماء الأوراق عندي في الـ VB بالعربي هكذا (ورقة1 ، ورقة2 ... الخ )

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

أخي ابو عبدالله / الجزيرة

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

يعني عند كتابة الكزد كالتالي

Visible=true.("ورقة1")sheets

قد لا يتقبله

ولكن يمكن اعادته كتابته كالتالي حتى يتقبله

Visible=true.("ورقة1")Worksheets

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

أخي العزيز / ابو عبدالله (الجزيرة)

يبدو أنك لم تفهم قصدي وقد قمت بتطبيقه في ملفك المرفق ، اطلع على الورقة 5 لمعرفة الأرقام السرية

تحياتي

أبو عبدالله

اوراق محمية الجزيرة.rar

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

السلام عليكم

===========

بارك الله لكم جميعا

لاثراء الموضوع

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

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

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

Private Sub Worksheet_Activate()

pword = InputBox("ادخل هنا محتوى الرسالة التى تظهر ", "تذكر هل لك صلاحية الدخول هنا")

If pword <> "هنا ادخل كلمة المرور التى تريد" Then ActiveSheet.Visible = False

End Sub

شاهد المرفق

كلمة مرور الشيت الاول123

كلمة مرور الشيت الاول456

تحياتى لكم

فتح الشيتات بباس ورد.rar

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

أستاذ هشام

انا مستخدم تقليدي قديم لبرنامج الاكسل

لكن الاكواد والفجول بيسك جديده على نسبياً

لذلك تعجبني الافكار التي تعطي طابع الاحترافية على العمل

مثل فكرة خروج مربع للرقم السري

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

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

هل من الممكن استخدام نافذة منبثقة ندخل فيها البيانات المراد ترحيلها في اماكن تم تحديدها مسبقاً ليتم الترحيل الى قاعدة البيانات

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

1- ترحيل المدخلات الى قاعدة البيانات

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