בחירת תיאום

יש לך צג גדול, אבל השולחנות שאתה עובד איתם גדולים עוד יותר. ובהסתכלות על המסך בחיפוש אחר המידע הדרוש, תמיד יש סיכוי "להחליק" את העיניים לשורה הבאה ולהסתכל בכיוון הלא נכון. אני אפילו מכיר אנשים שבמקרים כאלה תמיד מחזיקים סרגל עץ קרוב אליהם כדי לחבר אותו לקו במוניטור. טכנולוגיות העתיד! 

ואם השורה והעמודה הנוכחיות מסומנות כאשר התא הפעיל עובר על פני הגיליון? סוג של בחירת קואורדינטות כמו זה:

עדיף על סרגל, נכון?

ישנן מספר דרכים לשינוי מורכבות ליישם זאת. לכל שיטה יש את היתרונות והחסרונות שלה. בואו נסתכל עליהם בפירוט.

שיטה 1. ברור. מאקרו שמדגיש את השורה והעמודה הנוכחיים

הדרך הברורה ביותר לפתור את הבעיה שלנו "על המצח" - אנחנו צריכים מאקרו שיעקוב אחר השינוי בבחירה בגיליון ויבחר את כל השורה והעמודה עבור התא הנוכחי. רצוי גם להפעיל ולנטרל את הפונקציה הזו במידת הצורך, כדי שבחירה כזו בצורת צלב לא מונעת מאיתנו להזין למשל נוסחאות, אלא תעבוד רק כשאנחנו מסתכלים ברשימה בחיפוש אחר הדרוש מֵידָע. זה מביא אותנו לשלושת פקודות המאקרו (בחר, הפעל והשבת) שיהיה צורך להוסיף למודול הגיליון.

פתחו גיליון עם טבלה שבה אתם רוצים לקבל מבחר קואורדינטות שכזה. לחץ לחיצה ימנית על לשונית הגיליון ובחר את הפקודה מתפריט ההקשר טקסט מקור (קוד מקור).חלון Visual Basic Editor אמור להיפתח. העתק את הטקסט הזה של שלוש פקודות המאקרו האלה לתוכו:

Dim Coord_Selection As Boolean 'משתנה גלובלי לבחירה מופעל/כבוי Sub Selection_On() 'מאקרו בבחירה Coord_Selection = True End Sub Selection_Off() 'Macro off selection Coord_Selection = False End Sub 'הליך ראשי שמבצע בחירה Private Sub Worksheet_SelectionChange(ByVal Target As Range) עמום WorkRange As Range אם Target.Cells.Count > 1 אז צא מ-Sub 'אם נבחר יותר מתא אחד, צא אם Coord_Selection = False אז צא משנה 'אם הבחירה כבויה, צא Application.ScreenUpdating = False Set WorkRange = Range ("A1:N6") 'כתובת של טווח העבודה שבו הבחירה גלויה  

שנה את הכתובת של טווח העבודה לשלך - בטווח הזה הבחירה שלנו תעבוד. לאחר מכן סגור את עורך Visual Basic וחזור ל- Excel.

לחץ על מקש הקיצור ALT + F8כדי לפתוח חלון עם רשימה של פקודות מאקרו זמינות. מאקרו Selection_On, כפי שאתה יכול לנחש, כולל בחירת קואורדינטות בגיליון הנוכחי ואת המאקרו בחירה_כבוי - מכבה אותו. באותו חלון, על ידי לחיצה על הכפתור פרמטרים (אפשרויות) אתה יכול להקצות קיצורי מקלדת לפקודות מאקרו אלה להפעלה קלה.

היתרונות של שיטה זו:

  • קלות יחסית ביישום
  • בחירה – הפעולה אינה מזיקה ואינה משנה את התוכן או העיצוב של תאי הגיליון בשום אופן, הכל נשאר כפי שהוא

חסרונות של שיטה זו:

  • בחירה כזו אינה פועלת כהלכה אם יש תאים ממוזגים בגיליון - כל השורות והעמודות הכלולים באיחוד נבחרים בבת אחת
  • אם תלחץ בטעות על מקש Delete, אז לא רק התא הפעיל ימוקה, אלא כל האזור שנבחר, כלומר מחיקת נתונים מכל השורה והעמודה

שיטה 2. מקורי. CELL + פונקציית עיצוב מותנה

השיטה הזו, למרות שיש לה כמה חסרונות, נראית לי מאוד אלגנטית. ליישם משהו רק באמצעות כלי האקסל המובנים, גישה מינימלית לתכנות ב-VBA היא אווירובטיקה 😉

השיטה מבוססת על שימוש בפונקציית CELL, שיכולה לתת מידע רב ושונה על תא נתון - גובה, רוחב, מספר שורה-עמודה, פורמט מספר וכו'. לפונקציה זו יש שני ארגומנטים:

  • מילת קוד עבור הפרמטר, כגון "עמודה" או "שורה"
  • הכתובת של התא שעבורו אנו רוצים לקבוע את הערך של פרמטר זה

החוכמה היא שהטיעון השני הוא אופציונלי. אם זה לא צוין, התא הפעיל הנוכחי נלקח.

המרכיב השני בשיטה זו הוא עיצוב מותנה. תכונת Excel שימושית במיוחד מאפשרת לך לעצב באופן אוטומטי תאים אם הם עומדים בתנאים שצוינו. אם נשלב את שני הרעיונות הללו לאחד, נקבל את האלגוריתם הבא ליישום בחירת הקואורדינטות שלנו באמצעות עיצוב מותנה:

  1. אנו בוחרים את הטבלה שלנו, כלומר את התאים שבהם יש להציג את בחירת הקואורדינטות בעתיד.
  2. ב-Excel 2003 ומעלה, פתח את התפריט פורמט – עיצוב מותנה – נוסחה (פורמט - עיצוב מותנה - נוסחה). ב-Excel 2007 ואילך - לחץ על הכרטיסייה עמוד הבית (בית)לַחְצָן עיצוב מותנה - צור כלל (עיצוב מותנה - צור כלל) ובחר את סוג הכלל השתמש בנוסחה כדי לקבוע אילו תאים לעצב (השתמש בנוסחה)
  3. הזן את הנוסחה לבחירת הקואורדינטות שלנו:

    =OR(CELL(“row”)=ROW(A2),CELL(“column”)=COLUMN(A2))

    =OR(CELL(«row»)=ROW(A1),CELL(«column»)=COLUMN(A1))

    נוסחה זו בודקת אם מספר העמודה של כל תא בטבלה זהה למספר העמודה של התא הנוכחי. כך גם עם עמודות. לפיכך, רק התאים שיש להם מספר עמודה או מספר שורה התואם לתא הנוכחי ימולאו. וזוהי בחירת הקואורדינטות בצורת הצלב שאנו רוצים להשיג.

  4. לחץ על הכפתור מסגרת (פוּרמָט) והגדר את צבע המילוי.

הכל כמעט מוכן, אבל יש ניואנס אחד. העובדה היא שאקסל לא מחשיב שינוי בבחירה כשינוי בנתונים על הגיליון. וכתוצאה מכך, הוא אינו מפעיל חישוב מחדש של נוסחאות וצביעה מחדש של עיצוב מותנה רק כאשר המיקום של התא הפעיל משתנה. לכן, בואו נוסיף מאקרו פשוט למודול הגיליון שיעשה זאת. לחץ לחיצה ימנית על לשונית הגיליון ובחר את הפקודה מתפריט ההקשר טקסט מקור (קוד מקור).חלון Visual Basic Editor אמור להיפתח. העתק את הטקסט הזה של המאקרו הפשוט הזה לתוכו:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveCell.Calculate End Sub  

כעת, כאשר הבחירה משתנה, יופעל תהליך חישוב מחדש של הנוסחה עם הפונקציה תאים בעיצוב מותנה ולהציף את השורה והעמודה הנוכחיים.

היתרונות של שיטה זו:

  • עיצוב מותנה אינו שובר עיצוב טבלה מותאם אישית
  • אפשרות בחירה זו פועלת כהלכה עם תאים ממוזגים.
  • אין סיכון של מחיקת שורה ועמודה שלמות של נתונים בלחיצה בשוגג מחק.
  • במאקרו נעשה שימוש מינימלי

חסרונות של שיטה זו:

  • יש להזין את הנוסחה לעיצוב מותנה באופן ידני.
  • אין דרך מהירה להפעיל/להשבית עיצוב כזה - הוא תמיד מופעל עד שהכלל נמחק.

שיטה 3. אופטימלית. עיצוב מותנה + פקודות מאקרו

ממוצע זהוב. אנו משתמשים במנגנון למעקב אחר הבחירה בגיליון באמצעות פקודות מאקרו משיטה-1 ומוסיפים לו הדגשה בטוחה באמצעות עיצוב מותנה משיטה-2.

פתחו גיליון עם טבלה שבה אתם רוצים לקבל מבחר קואורדינטות שכזה. לחץ לחיצה ימנית על לשונית הגיליון ובחר את הפקודה מתפריט ההקשר טקסט מקור (קוד מקור).חלון Visual Basic Editor אמור להיפתח. העתק את הטקסט הזה של שלוש פקודות המאקרו האלה לתוכו:

Dim Coord_Selection As Boolean Sub Selection_On() Coord_Selection = True End Sub Sub Selection_Off() Coord_Selection = False End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range, CrossRange As Range Set WorkRange = Range("7"): 'адрес рабочего диапазона с таблицей If Target.Count > 300 Then Exit Sub If Coord_Selection = False Then WorkRange.FormatConditions.Delete Exit Sub End If Application.ScreenUpdating = False If Not IntersectR, Then Cross Intersect(Target)(R WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).Interior.ColorIndex.FormatConditions = 1 Targets .מחק קצה אם קצה משנה  

אל תשכח לשנות את כתובת טווח העבודה לכתובת הטבלה שלך. סגור את עורך Visual Basic וחזור לאקסל. כדי להשתמש בפקודות המאקרו שנוספו, הקש על קיצור המקלדת ALT + F8  ולהמשיך באותה דרך כמו שיטה 1. 

שיטה 4. יפה. תוסף FollowCellPointer

MVP של Excel Jan Karel Pieterse מהולנד מחלק תוספת חינם באתר שלו FollowCellPointer(36Kb), אשר פותר את אותה בעיה על ידי ציור קווי חץ גרפיים באמצעות פקודות מאקרו כדי להדגיש את השורה והעמודה הנוכחיים:

 

פתרון נחמד. לא בלי תקלות במקומות, אבל בהחלט שווה לנסות. הורד את הארכיון, פרק אותו לדיסק והתקן את התוסף:

  • ב-Excel 2003 ומעלה – דרך התפריט שירות – תוספות – סקירה כללית (כלים - תוספות - עיון)
  • ב-Excel 2007 ואילך, דרך קובץ – אפשרויות – הרחבות – עבור – עיון (קובץ - אפשרויות Excel - תוספות - עבור אל - עיון)

  • מהן פקודות מאקרו, היכן להכניס קוד מאקרו ב-Visual Basic

 

השאירו תגובה