יצירת תפריט לגיליונות ב- Excel
איל היי,
אחלה אתר, לא חשבתי שאמצא חומר על אקסל בעברית. השאלה שלי היא כזו : יש לי קובץ שמכיל כ40 גליונות. אני מעוניין לעשות גיליון שיכיל טבלה שמכילה את שמות כל הגיליונות. ושם כל גיליון בטבלה ישמש כקישור לאותו גיליון.
האם נתקלת בפונקציה שעושה דבר כזה? אשמח לכל עזרה או כיוון. תודה מראש. דוד
שלום,
להלן פתרון באמצעות קוד VBA.
לטובת מי שלא יודע מה לעשות עם קוד כזה
אני מצרף הנחיות ברורות כיצד לשתול אותו בתוך קובץ ה- Excel.
1. ראשית שמור את הקובץ כך שהוא יוכל להכיל קוד
קובץ > שמור בשם > בחר באפשרות xlsm
2. כעת לחץ על Alt+F11
לפניך נפתח עורך ה-VBA
3. בצד שמאל, לחץ על השם הקובץ הנוכחי > מקש ימני > INSERT > ובחר באפשרות MODULE
4. בעקבות השלב הקודם, נוצר לך “ענף” חדש בעץ, שנקרא לרוב, Module1
לחץ פעמים על Module1 והדבק בתוכו את הקוד שמופיע בתחתית פוסט זה.
5. בסיום חזור ל Excel
6. שמור את הקובץ,
7. כעת, בכרטיסיה תצוגה > לחץ על פקודות מאקרו > ובחר בפקודה החדשה שנקראת CreateMenuAccordingSheetsNames
8. וזהו - התפריט נוצר!
בהצלחה!
אם אתם מחפשים לשדרג את ניתוח הנתונים והדו"חות שלכם באופן מקצועי ?
אני ממליץ בחום לשקול את השירות שלנו של תותח Excel.
המומחיות שלנו באקסל תורמת להגשמת היעדים ולפתרון של בעיות מורכבות בצורה יעילה ומהירה.
עם מומחה Excel, אתם יכולים להיות בטוחים שתהליך העבודה שלכם יתנהל בצורה מקצועית.
ליצירת קשר לחצו כאן.
Sub CreateMenuAccordingSheetsNames()
'Author : Eyal Bardugo
'Website: http://excel.kova.co.il/
'
'Sub to create menu for all sheets
Dim ws As Worksheet, menu\_name As String, I As Integer
menu\_name = "Menu"
'Put a header on B5
Range("B5").Value = "Menu"
On Error Resume Next
'Check if there is old menu sheet, and if so - delete it
Application.DisplayAlerts = False
Sheets(menu\_name).Delete
Application.DisplayAlerts = True
'Add new menu sheet
Sheets.Add Before:=Sheets(1)
ActiveSheet.Name = menu\_name
I = 4
'loop all sheets and put a hyperlink to each one of them
For Each ws In ActiveWorkbook.Sheets
If ws.Name <> menu\_name Then
Sheets(menu\_name).Cells(I, 3).Value = ws.Name
ActiveSheet.Hyperlinks.Add Anchor:=Sheets(menu\_name).Cells(I, 3), Address:="", SubAddress:= \_
"'" & ws.Name & "'!A1", TextToDisplay:=ws.Name
End If
I = I + 1
Next ws
End Sub
רוצה להפוך את עבודתך ב-Excel לפחות מסובכת ויותר יעילה?
מומחה Excel יכול להפוך תהליכים לאוטומטים ולבנות עבורך אקסלים יעילים.
צור קשר עכשיו