טיפ 33: יצירה אוטומטית ומתעדכנת של רשימת שמות הגיליונות כולל קישור פעיל אליהם

ניתן על ידי קוד מקרו ליצור רשימת שמות הגיליונות, הכוללים קישור פעיל אליהם, כלומר, שעל ידי לחיצה על שם, תוקפץ לאותו הגיליון.

בואו נלחץ במקלדת על שילוב המקשים: ALT+F11 בכדי להיכנס לעורך המקרואים.

(VBE (Visual Basic Editor.

ו….בואו נוסיף מודול חדש כדי שיהיה לנו מקום לרשום את הקוד:

הקוד עם הסברים בתוכו:

Sub MakeIndexTable()
Dim i As Long

On Error Resume Next

Application.ScreenUpdating = False
Application.EnableEvents = False
Worksheets("תוכן_עיניינים").Delete

Application.ScreenUpdating = True
Application.EnableEvents = True

On Error GoTo 0

ThisWorkbook.Sheets.Add Before:=ThisWorkbook.Worksheets(1)
ActiveSheet.Name = "תוכן_עיניינים"

'לולאה הרצה מגיליון אחד ועד סהכ מספר הגיליונות ומוסיפה קישור בתא
'A1
'לגיליון התוכן עיניינים
For i = 1 To Sheets.Count
 With ActiveSheet
 'הוספת היפר לינק
 .Hyperlinks.Add _
 Anchor:=ActiveSheet.Cells(i, 1), _
 Address:="", _
 SubAddress:=Sheets(i).Name & "!A1", _
 ScreenTip:=Sheets(i).Name, _
 TextToDisplay:=Sheets(i).Name
 End With
Next i

'הרחבת העמודה הכוללת את שמןת הגיליונות עם הקישורים
Range("A:A").Columns.AutoFit

' שמירת חוברת העבודה בכדי שהמקרו הבא יעבוד
ThisWorkbook.Save

'קריאה למקרו אחר
Call InsertLinkOf_BackToHomeSheet

End Sub


התוצאה:

בקוד הנ"ל ובקוד הבא אני משתמש בפעולה (שיטה Method) ב- VBA ליצירת היפר קישור.

ניתן לקרוא על כך בעמוד מייקרוסופט >> כאן

בואו נוסיף עוד קוד שישתול לנו קישור בכל גיליון, חוץ מגיליון ה'תוכן עניינים', בכדי שיעזור לנו לקפוץ חזרה לגיליון תוכן העניינים:

Sub InsertLinkOf_BackToHomeSheet()

'לולאה שעוברת על כל הגיליון חוץ מהגיליון של וכן העיניינים ומוסיפה קישור
'לגליון תוכן העיניינים
For i = 1 To Sheets.Count
 Sheets(i).Activate
 If Sheets(i).Name = "תוכן_עיניינים" Then
 Else
 With ActiveSheet
 .Hyperlinks.Add _
 Anchor:=ActiveSheet.Cells(1, 1), _
 Address:="", _
 SubAddress:="תוכן_עיניינים!A1", _
 TextToDisplay:="לתוכן העיניינים"
 End With
 End If
Next i

End Sub

 

התוצאה:

 

הקובץ עם הקודים להורדה >> מקרו ליצירת תוכן עיניינים עם שמות חוברת העבודה

ברכה והצלחה!