מקרו אירוע, ביטול

מקרו אירוע, ביטול

בקוד שכתבתי, כאשר מתרחש שינוי בחירה - מסומן "V" בשורה המתאימה בעמודה E.
איך למחוק אוטומטית את ה "V" הקודם ברגע שאני בוחר תא אחר, בשורה אחרת ?
הייתי רוצה שבכל רגע נתון, בכל בחירה יוצג "V" אחד בלבד בכל הגיליון.
7,2010
 

ziv98

Member
מאקרו אירוע - ביטול

קוד:
Public PreviousActiveCell As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static pPrevious As Range
    Set PreviousActiveCell = pPrevious
    If Not (PreviousActiveCell Is Nothing) Then
         del_from = PreviousActiveCell.Row
         Range("E" & del_from) = ""
     End If
    
    Set pPrevious = ActiveCell

Dim AR
AR = ActiveCell.Row
    Range("E" & AR) = "V"
   
    

End Sub
 
תודה רבה, אלוף
ואם אפשר...

שאלה גדולה ואחת קטנה...
אני מנסה להבין איך אתה מצליח להסביר לו :) - כשאתה כותב
If Not (....... Is Nothing) Then
כלומר (לפי פרשנותי) - אם התא הקודם הוא לא כלום, אז...
במילים אחרות : אם התא הקודם מלא אז...
אם תרגמתי נכון אז : מלא במה ? בערך, בצבע ? איך הוא מבין ?
אני לא מבין..., אודה מאוד להסבר קצר לגבי שורה זו.
והקטנה :
ההכרזה בהתחלה (ה public) מדוע בחרת להשתמש בה ? זה עובד גם בלי...
תודה.
 

ziv98

Member
is nothing

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

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

את עיני, שמתי לב שאולי חסר טיפול במצב של יציאה מהגיליון.
במצב הנוכחי נשארת הבחירה האחרונה, ואז...
כאשר פותח את הגיליון מחדש - סימון ה "V" מהבחירה האחרונה לפני היציאה - נשאר/אינו נמחק.
האם לדעתך יש להוסיף מאקרו Deactivate ? או שיטה אחרת ?
 

ziv98

Member
נקודת פתיחה

אתה יכול למחוק את כל תוכן העמודה באירוע פתיחה או סגירה של הקובץ.
אתה יכול להוסיף את המחיקה בתוך התנאי is nothing...
 
למעלה