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

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


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

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

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

الشرح في المرفقات
 

مرتبات.rar

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

جرب هذا الملف

الكود

Sub Show_hide_col()
Application.ScreenUpdating = False
Dim my_rg As Range
Dim i%, x%
Dim t As Byte
 t = IIf([b1] = "اداري", 1, 2)
Set my_rg = Range("E1:AT1")
my_rg.Columns.Hidden = False
x = my_rg.Columns.Count
 For i = 1 To x
  If my_rg.Cells(i) <> t Then
    my_rg.Cells(i).EntireColumn.Hidden = True
    End If
    Next
    Application.ScreenUpdating = True
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$B$1" Then
Show_hide_col
End If
Application.EnableEvents = True
End Sub

الملف مرفق

 

مرتبات.xlsm

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

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

مرتبات.rar

مرتبات.rar

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

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

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

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

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

استبدل الكود الى هذا

Option Explicit

Sub Show_hide_col()
Application.ScreenUpdating = False
Dim my_rg As Range
Dim i%
Dim t As Byte
 t = IIf([b1] = "اداري", 1, 2)
Set my_rg = Range("E1:AT1")
my_rg.Columns.Hidden = True

For i = 1 To my_rg.Columns.Count
      With my_rg.Cells(i)
       If .Value = t Or _
          .Value = vbNullString Then _
          .EntireColumn.Hidden = False
      End With
Next
    Application.ScreenUpdating = True
End Sub
Rem=================================
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$B$1" Then
Show_hide_col
End If
Application.EnableEvents = True
End Sub

الملف معدل

_salimمرتبات.xlsm

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

جزاكم الله خيرا استاذ سليم .. هذا هو المطلوب بالتحديد

شكرا جزيلا

جعله الله في ميزان حسناتك

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

لو تكرمت استاذ سليم
الكود يعمل بشكل رائع لكن بعد نسخه للورقة الأصلية لا يعمل إلا بعد عمل قائمة منسدلة في خلية أخرى مثل B2 غير مرتبطة بمعادلات البحث INDEX والتنويه اليها في الكود
حيث اختار أولا من قائمة الإخفاء ثم قائمة البحث أو العكس .. لكن لا يتم إخفاء الأعمدة مع البحث 

هل استمر على ذلك أم هناك خطأ مني؟

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

 

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

في ١٨‏/١‏/٢٠١٩ at 17:39, سليم حاصبيا said:

استبدل الكود الى هذا


Option Explicit

Sub Show_hide_col()
Application.ScreenUpdating = False
Dim my_rg As Range
Dim i%
Dim t As Byte
 t = IIf([b1] = "اداري", 1, 2)
Set my_rg = Range("E1:AT1")
my_rg.Columns.Hidden = True

For i = 1 To my_rg.Columns.Count
      With my_rg.Cells(i)
       If .Value = t Or _
          .Value = vbNullString Then _
          .EntireColumn.Hidden = False
      End With
Next
    Application.ScreenUpdating = True
End Sub
Rem=================================
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$B$1" Then
Show_hide_col
End If
Application.EnableEvents = True
End Sub

الملف معدل

_salimمرتبات.xlsm

السلام عليكم

واجهتني مشكلة في تشغيل الكود على الملف الأصلي في الورقة m1 
أرجوا ألا اثقل عليك 
الملف الأصلي في المرفقات وبه الكود 

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

 

 

مرتبات.rar

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

في ١٨‏/١‏/٢٠١٩ at 17:39, سليم حاصبيا said:

استبدل الكود الى هذا


Option Explicit

Sub Show_hide_col()
Application.ScreenUpdating = False
Dim my_rg As Range
Dim i%
Dim t As Byte
 t = IIf([b1] = "اداري", 1, 2)
Set my_rg = Range("E1:AT1")
my_rg.Columns.Hidden = True

For i = 1 To my_rg.Columns.Count
      With my_rg.Cells(i)
       If .Value = t Or _
          .Value = vbNullString Then _
          .EntireColumn.Hidden = False
      End With
Next
    Application.ScreenUpdating = True
End Sub
Rem=================================
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$B$1" Then
Show_hide_col
End If
Application.EnableEvents = True
End Sub

الملف معدل

_salimمرتبات.xlsm

حل مؤقت به نوع من الصعوبة على قدر معرفتي الضئيلة

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

بالملف المرفق pass= 3599011

 

 

مرتبات.rar

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

في ١٨‏/١‏/٢٠١٩ at 17:39, سليم حاصبيا said:

استبدل الكود الى هذا


Option Explicit

Sub Show_hide_col()
Application.ScreenUpdating = False
Dim my_rg As Range
Dim i%
Dim t As Byte
 t = IIf([b1] = "اداري", 1, 2)
Set my_rg = Range("E1:AT1")
my_rg.Columns.Hidden = True

For i = 1 To my_rg.Columns.Count
      With my_rg.Cells(i)
       If .Value = t Or _
          .Value = vbNullString Then _
          .EntireColumn.Hidden = False
      End With
Next
    Application.ScreenUpdating = True
End Sub
Rem=================================
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$B$1" Then
Show_hide_col
End If
Application.EnableEvents = True
End Sub

الملف معدل

_salimمرتبات.xlsm

حل مؤقت به نوع من الصعوبة على قدر معرفتي الضئيلة

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

بالملف المرفق pass= 3599011

 

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

الان, نــــ حلمي ــوّار said:

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

أعتذر للجميع

 

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

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.

×
×
  • اضف...

Important Information