بسم الله الرحمن الرحيم
كنت بحاجه ملحة لهذا الموضوع و استعرضت المشاركات من الأخوة الأفاضل بخصوص قائمة منسدلة باسماء الصفحات
و استعرضت بعض الصفحات الأجنبية لهذا الغرض و وجدت كود رائع يقوم بفتح نافذة Navigate و بها كل صفحات الملف حتى لو أضفت صفحة أخرى. الطريقة سهلة جدا افتح الملف ثم ألصق الكود التالي عن طريق أدوات -----> ماكرو ------> محرر الفيجول بيسك
Option Explicit
Sub Workbooknewcb()
'create the menubar
Dim sht As Worksheet
On Error Resume Next
Application.CommandBars("Navigate").Delete
On Error GoTo 0
With Application.CommandBars.Add("Navigate", , False, True)
With .Controls.Add(msoControlDropdown)
For Each sht In ActiveWorkbook.Sheets
If sht.Visible = xlSheetVisible Then
.AddItem "" & sht.Name
End If
Next sht
.TooltipText = "SheetNavigate"
.OnAction = "Sheet_Navigate"
End With
.Protection = msoBarNoCustomize
.Position = msoBarFloating
.Visible = True
End With
End Sub
'******************************************************
Private Sub Sheet_Navigate()
'navigate to selected sheet
Dim stActiveSheet As String
With CommandBars.ActionControl
stActiveSheet = .List(.ListIndex)
End With
Worksheets("" & stActiveSheet).Activate
End Sub
ثم اذهب لصفحة في الملف و قم بعمل زر أو شكل تلقائي ثم كلك يمين و تعيين ماكرو و اختارالماكرو الذي به الكود
عند الضغط على الشكل ستظهر لك نافذة صعيرة بها سهم عند الضغط عليه ستظهر كل الصفحات و الأجمل هو انه بإمكانك سحب هذه النافذة بجانب أشرطة الأدوات لتصبح جزء منها و إليكم ملف نموذج
لاتنسونا من دعوة صالحة و لكل من يشارك بعلمه من أساتذتنا في هذا المنتدى الرائع الذي حولني من شخص لا يعرف من الإكسيل إلا اسمه إلى باحث في الأكواد
navigate.zip