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

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

قام بنشر

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

إخواني الكرام

تعودنا على التلقي وفقط .. ويبدو أن أسلوب التلقي لن يوصلنا إلى الترقي ..

من ثم سنتجه نحو منحدرٍ آخر لعلنا نصل إلى العلياء بعد الانحدار

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

 

موضوعنا اليوم للبحث هو كيفية إخفاء كل الأعمدة ما عدا أعمدة محددة...

حتى نكون أكثر دقة دعنا نخفي كل الأعمدة ونبقي فقط العمود 1 و 3 و 5 و 10 و 15 و 26 ..أي أن هذه الأعمدة ستكون هي فقط الأعمدة الظاهرة

كل يدلي بدلوه في موضوع البحث

 

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

  • Like 2
قام بنشر

حبيبى الغالى أبو البراء

دى مساهمه بسيطه منى من اجل التعلم والبحث المثمر فى سبيل التعلم

طبعا انا عارف ان فى طرق ابسط واسهل من كده بس هحاول برضه للاحسن

Sub hid()
Sheets("ورقة2").Select
Columns("b").Hidden = True
Columns("d").Hidden = True
Columns("f:i").Hidden = True
Columns("k:n").Hidden = True
Columns("p:y").Hidden = True
Columns("aa:xfd").Hidden = True
End Sub

جزاك الله كل خير يا ابو البراء

hid_ahmed.rar

  • Like 2
قام بنشر

أخي الحبيب أحمد

بارك الله فيك على مساهماتك في كافة الموضوعات ..

الكود مباشر بهذا الشكل ... والسؤال ماذا لو كانت الأعمدة المطلوبة أكثر من ذلك ؟ فلنقل 20 عمود ..أعتقد وقتها سيكون عليك كتابة المزيد من الأسطر

 

أخي الغالي سليم

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

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

  • Like 2
قام بنشر

موضوع جميل جدا من استاذي ياسر خليل ابو البراء

وحلول اجمل من المبدعين في هذا الصرح الجميل أحمد الفلاحجي وسليم حاصبيا

بارك الله فيكم ونفع بكم الامه الاسلامية

ملاحظة صغير لاخي المبدع احمد الفلاحجي هو اني إذا تم حذف عمود لا يمكن استرجاعه في الكود تبعك

بمعنى اني إذا حذفت العمود c  ثم اردت استرجاعة لا يمكن استرجاع العمود بالكود تبعك

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

  • Like 1
قام بنشر

اخى سليم تسلم ايدك حل بسيط وجميل

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

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

لعلى لم افهم ما تشير اليه بالشكل الصحيح ولاكن ليس هذا موضوعنا

نحن هنا للمشاركه بالبحث عن حلول وليس تقديم حلول فكما قال اخى ابو البراء دائما نتلقى فاردت ان اتوجه كما قال اخى ابو البراء لارتقى

مع علمى بانه يوجد ابسط حلول من حلى ولاكن التعلم ليس بالشىء السهل ولا بالصعب ولاكن بالبحث عن المعلومات اللتى تريد ان تتعلمها

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

جزاكم الله كل خير احبابى فى الله جمعنا الله على طاعته ومحبته

  • Like 3
قام بنشر

أخي الحبيب أحمد الفلاحجي

أنا ممتن جداً لمشاركتك ..بالعكس مشاركتك قيمة جداً ، والموضوع مقدم للمناقشة حول الأكواد المقدمة وايس تقديم الحلول فحسب .. فمن شأن النقاش أن يعلمنا أفضل الطرق ويعملنا أساليب جديدة وطرق شتى للوصول لحل

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

الموضوع سيكون إن شاء الله ممتد لأسبوع .. ابحثوا وحاولوا وتعلموا واجتهدوا .. وليكن شعارنا معاً نرتقي

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

  • Like 2
قام بنشر

وبمكنك بدلاً من تسمية نطاق معرف .. يمكن الإشارة إلى النطاق في الكود نفسه بهذا الشكل

Sub xx()
    Dim rng As Range
    Set rng = Range("a1,c1,e1,j1,o1,z1")
    Columns.Hidden = True
    rng.EntireColumn.Hidden = False
End Sub

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

بدلاً من تسمية نطاق بهذا الشكل ..

=ورقة1!$A:$A,ورقة1!$C:$C,ورقة1!$E:$E,ورقة1!$G:$G,ورقة1!$I:$I,ورقة1!$K:$K,ورقة1!$M:$M,ورقة1!$O:$O,ورقة1!$Q:$Q,ورقة1!$S:$S,ورقة1!$U:$U,ورقة1!$W:$W,ورقة1!$Z:$Z

ابحث عن الأيسر والأسهل

تقبل تحياتي

 

 

  • Like 2
قام بنشر
Sub saadabed()
 Dim X As Long
    For X = 1 To 147
    Sheets("Table").Columns("a").Offset(, X).EntireColumn.Hidden = True
  Next
  Range("a1,c1,e1,j1,o1,z1").EntireColumn.Hidden = False
  End Sub

اخوانى الاعزاء

تلميذ من تلاميذ الاخ ياسر يحاول ان يشارك معكم

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

 

 

  • Like 2
قام بنشر

أخي الحبيب سعد عابد

بارك الله فيك وجزيت خيراً على مشاركتك القيمة والرائعة

 

استخدام الحلقات التكرارية غير مجدي حيث يمكن الاستغناء عنها تماماً .. بسطر واحد وبدون تكرار ..حيث يتم تحديد عمود البداية وعمود النهاية لإخفاء كل الأعمدة فيما بينهما بما فيها العمودين

أقصد جرب استخدام Columns وبعدين افتح قوس وبعدين قوس تنصيص واكتب أول عمود وليكن A ثم نقطتين فوق بعض ثم آخر عمود وليكن AZ .. واقفل التنصيص واقفل القوس

وبعدين نقطة واستخدم الخاصية Hidden وخلي القيمة الخاصة بيها True ... ومن غير داعي للحلقات التكرارية التي من شأنها أن تبطيء عمل الكود

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

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

اخى العزيز ابوالبراء

اشكرك على النصائح الغالية واتمنى فتح مواضيع تفاعلية كهذه نشارك معك وتنصحنا بما هو واجب فى كتابة الاكواد

ننتظر مواضيع كثيره كالفقه الافتراضى نفترض مساءله وحلها

اشكرك

 

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

انا لا اعلم شي عن الاكواد ولكن إن شاء اتعلمها اخي احمد عندي افكار ولكن لما استطع تنفيذها بالاكواد

يكفيك شرف المحاولة فانت افضل مني اما انا فلم استطع انا افعلها وانا اتعلم منكم

انا اقصد ليس الحذف وانما اخفيت خانني التعبير اخي احمد اعذرني

بمعنى عندما ابدل حرف السي مثلا إلى b في الكود ثم اعود وابدل حرف b إلى حرف السي لا يظهر العمود السي مرة اخرى ولا انا عندي خطأ في إكسل 2010

وانت ما شاء الله عليك مبدع ويكفيك شرف المحاولة ارفع القبعة لك احتراما وتقديرا

بارك الله فيك

وبارك الله فيكم جميعاً

  • Like 1
قام بنشر

جزاك الله خير اخى محمد على هذه الكلمات

فهمت مقصدك قم بوضع سطر اخر لاظهار ما تريد بمعنى

Columns("c").Hidden = false

حاول اخى محمد ولا تخاف من الفشل  لان الفشل اول طريق النجاح

وصدقنى انا كل ما فعلته اننى بحثت فى جوجل هههههههههههههه لاصل لهذا الكود

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

 

  • Like 1
قام بنشر

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

شرفتنا بتواجدك معنا في الموضوع

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

Sub xx()
Columns.Hidden = True
Range("a1,c1,e1,j1,o1,z1").EntireColumn.Hidden = False
End Sub

السطر الأول يبدأ بكلمة Sub يليها اسم الإجراء واسم الإجراء أنت حر فيه سمه بما تريد

وأفضل أن تكون التسمية معبرة عن الهدف من الكود مثلاً UnhideSpecificColumns ..

وفي آخر سطر قفلة الكود بالجملة End Sub

ما بين السطرين البداية والنهاية هذا هو لب الكود (ودا ملوش علاقة بالسوداني .. ولا المصري !!)

السطر الأول في الكود يقوم بإخفاء الأعمدة كلها ...أينعم حيث أن الخاصية المستخدمة هي الخاصية Hidden وتعني مخفي .. إذاً ترجمة السطر الأعمدة. مخفي =صح يعني إخفاء كل الأعمدة

لو غيرنا القيمة True إلى False تفتكر ايه اللي ممكن يحصل ؟؟ معروف إن True عكسها False ..إذاً سيقوم السطر في هذه الحالة بإظهار كل الأعمدة

السطر الأول إذاً يقوم بإخفاء كل الأعمدة مرة واحدة (دفعة واحدة وفي نفس واحد)

ثم السطر الثاني يأتي ليحدد اعمدة يعينها للتعامل معها وإظهارها .. وهنا أخونا الغالي سليم استخدم أول خلية في كل عمود من الأعمدة المراد إظهارها ، فالخلية a1 تمثل العمود الأول ..

المهم جمع الخلايا في نطاق واحد كما هو مشار في الكود بهذا الشكل

Range("a1,c1,e1,j1,o1,z1")

ثم استخدم الخاصية EntireColumn والتي تتعامل مع العمود بالكامل ثم الخاصية Hidden والتي تحدثنا عنها ، وهنا إشارة لكل الأعمدة المطلوبة وفي النهاية تم وضع القيمة False لها لإظهارها دون سواها

أرجو أن أكون وفقت في توصيل المعلومة

تقبل تحياتي

  • Like 3
قام بنشر

جزاك الله كل خير يا ابو البراء على هذا الشرح الميسر الرائع

بس والنبى ابقى زود اللب شويه لانى مدمن لب سورى هههههههههههههههههههه

 

قام بنشر

ماشاء الله عليك استاذي ياسر حليل ابوالبراء

الله يزيدك من العلم ويبارك فيك يارب

شرح جميل جدا ومفهوم

جزاك الله خير وجعلة الله في ميزان حسناتك

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

الله يوفقكم جميعا ويحفظكم يارب

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

السلام عليكم 

جزاكم الله خيرا على ما تقدمونه

لدى حل بعيد عن البرمجه اود المشاركه به

هو القيام بعمل تحديد للاعمده المراد اخفائها فقط بالضغط عليها مع زر ctrl

ثم نقف على العمود الذى يلى اخر عمود مراد اظهاره وتضغط ctrl +shift + سهم لليسار

ثم الضغط على unhide

تم تعديل بواسطه محمد عادل عبد الغنى
قام بنشر
في ٤‏/٣‏/٢٠١٦ at 12:24, ياسر خليل أبو البراء said:

وبمكنك بدلاً من تسمية نطاق معرف .. يمكن الإشارة إلى النطاق في الكود نفسه بهذا الشكل


Sub xx()
    Dim rng As Range
    Set rng = Range("a1,c1,e1,j1,o1,z1")
    Columns.Hidden = True
    rng.EntireColumn.Hidden = False
End Sub

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

بدلاً من تسمية نطاق بهذا الشكل ..


=ورقة1!$A:$A,ورقة1!$C:$C,ورقة1!$E:$E,ورقة1!$G:$G,ورقة1!$I:$I,ورقة1!$K:$K,ورقة1!$M:$M,ورقة1!$O:$O,ورقة1!$Q:$Q,ورقة1!$S:$S,ورقة1!$U:$U,ورقة1!$W:$W,ورقة1!$Z:$Z

ابحث عن الأيسر والأسهل

تقبل تحياتي

 

 

اخي الكريم لماذا تضع الكود كصوره اين خاصيه نسخ الاكواد في المنتدى

قام بنشر

أخي الكريم ناصر سعيد

المشاركة ليست صورة ويمكن أخد نسخة من الأكواد بكل بساطة ..

حاول تغير المتصفح الذي تعمل عليه لربما يكون هناك مشكلة بمتصفحك ..

قام بنشر

السلام عليكم

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

بالنسبة لهذ الموضوع ( اخفاء جميع الأعمدة ما عدا أعمدة محددة )

الكود الذى قدمه أخى المبدع سليم هو أبسط كود يقوم بعمل المطلوب فعلا

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

هذه فكرة أخرى

وفيها يتم تحديد الأعمدة المراد عدم اخفاءها عن طريق الماوس  داخل inputBox

وفى حالة تحديد أعمدة غير متجاورة يستخدم مفتاح CTRL أثناء التحديد

Sub ragab()
Dim Rng As Range
On Error Resume Next
Application.DisplayAlerts = False
Set Rng = Application.InputBox(Prompt:="قم بتحديد الأعمدة التى لا تريد اخفاءها عن طريق الماوس وعند اختيار أعمدة غير متجاورة اضغط مفتاح Ctrl أثناء التحديد", Title:="اخفاء مخصص", Type:=8)
Application.DisplayAlerts = True
If Rng Is Nothing Then Exit Sub
Columns.Hidden = True
Rng.EntireColumn.Hidden = False
End Sub

 

 

 

  • Like 2
قام بنشر

أخي الغالي رجب جاويش

لكم يسعدني مشاركتك بالموضوع والمشاركة رائعة جداً وتثري الموضوع بشكل كبير

مناقشة الكود لا تعني التقليل منه على الإطلاق إنما الموضوع أصلاً متعمد فيه عملية المناقشة وليس تقديم حلول فحسب ..

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

فرأيي أن مناقشة الأكواد تكسب المتعلم الجديد مهارات لن يكتسبها وحده ، وتثقل أداء المحترف ..ألست توافقني الرأي في تلك النطة (اتكتبت غلط أنا أقصد النقطة بس يبدو إن البطة مسيطرة على تفكيري)

بالنسبة لكودك جميل جداً في حالة إذا كانت الأعمدة قريبة من بعضها والتي تمكن المستخدم من الاختيار بسهولة ولكن لو كانت الأعمدة متباعدة جداً سيكون الأمر مرهق ..

هذه نقطة .. وبما أنك جعلت المستخدم يختار الأعمدة فكان من الأيسر بدلاً من الكود أن يقوم بتلك الخطوة ثم كليك يمين على رؤوس الأعمدة ثم يختار الأمر Hide .. فلن يكون للكود أهمية

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

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

  • Like 1
قام بنشر

أخى الحبيب ياسر

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

أولا : النقطة الخاصة بتحديد الأعمدة ثم كليك يمين على رؤوس الأعمدة ثم يختار الأمر Hide يكون سهل فعلا فى حالة الاخفاء

ولكن فى هذه الحالة أنت تريد تحديد الأعمدة المراد اظهارها وليس اخفاءها وبالتالى لا يمكن تنفيذ ذلك الا من خلال الكود

والا كان الأمر فى منتهى الصعوبة بدون الكود

 

  • 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