איך עושים ארוע באקסל בעת שינוי בתא מסוים
-
@yits אמר באיך עושים ארוע באקסל בעת שינוי בתא מסוים:
Place
תשתמש באירוע Change, ותבדוק אם הארגומנט Target בטווח הרצוי (אני מניח שאתה מתכוון ב"שם" לשם טווח, נכון?).
כדי למנוע רקורסיה תצהיר על דגל שימנע ביצוע של האירוע עד לסוף הפעולה.Dim ToggleSuspenEvent As Boolean Private Sub Worksheet_Change(ByVal Target As Range) If ToggleSuspenEvent Then End If Intersect(Target, Me.Range("Place")) Is Nothing Then End ToggleSuspenEvent = True 'תעדכן מה שבא לך פה' ToggleSuspenEvent = False End Sub
-
@chagold אמר באיך עושים ארוע באקסל בעת שינוי בתא מסוים:
@yits
בנוגע לשאלה הראשונה
הנתונים המרועננים שמגיעים מהד"ב הם קשורים לאותה הטבלה? כי אם לא , אז תעביר את הטבלה לגליון אחר.אני מעוניין שמי שעובד על הקובץ יראה את הנתונים המעודכנים לפניו (בצד ימין).
-
@dovid אמר באיך עושים ארוע באקסל בעת שינוי בתא מסוים:
ותבדוק אם הארגומנט Target בטווח הרצוי (אני מניח שאתה מתכוון ב"שם" לשם טווח, נכון?).
זה מה שאני עושה כרגע.
כדי למנוע רקורסיה תצהיר על דגל שימנע ביצוע של האירוע עד לסוף הפעולה.
ניסיתי את זה בעבר , ולא עזר,
הבעיה שעדכון הנתונים מבוצע ע"י Refresh ובנתיים הפונקציה מסיימת ומחזירה את הדגל ל False.
ולאחר חצי שניה או משהו כזה נגמר העדכון ושוב הפונקציה קופצת. -
@dovid אמר באיך עושים ארוע באקסל בעת שינוי בתא מסוים:
תשתמש באירוע Change.
האם התכוונת שזה יפתור לי את הבעיה השניה.
כי ברגע שאני משנה ולוחץ Enter אין לי כבר אפשרות לדעת היכן בוצע השינוי,
אלא א"כ זה מתוך רשימה שאז הוא מבצע אירוע של Change ונשאר באותו תא. -
@yits אמר באיך עושים ארוע באקסל בעת שינוי בתא מסוים:
@dovid אמר באיך עושים ארוע באקסל בעת שינוי בתא מסוים:
תשתמש באירוע Change.
האם התכוונת שזה יפתור לי את הבעיה השניה.
כי ברגע שאני משנה ולוחץ Enter אין לי כבר אפשרות לדעת היכן בוצע השינוי,
אלא א"כ זה מתוך רשימה שאז הוא מבצע אירוע של Change ונשאר באותו תא.לא הבנתי אותך. רצית אירוע בעת שינוי נתון בתא מסוים, אז זה האירוע שאתה צריך. לא אירוע של שינוי בחירה (Selction_Change). זה מביא את הכתובת הנכונה גם במקרה של אנטר.
-
אני יסביר באריכות
יש לי גליון אקסל שהגדרתי תאים לפי מקומות ישיבה בבית הכנסת,
יש לי DB עם רשימת המתפללים שבקשו מקום (עבור ימים נוראים וכדו'),כל תא שהוגדר אפשר להכניס בו שם משתמש מתוך רשימה,
הרשימה נלקחת מצד ימין של הגיליון (שם מופיעים לי שמות המתפללים ומספר המקומות שהם בקשו),לאחר בחירה של מתפלל מתוך הרשימה קופץ ארוע,
לאחר מכן מתבצע עדכון אוטמטי לגיליון מקושר (DlookUp לתא),
ומתבצע עדכון ל DB,
ועכשיו אנחנו עושים רענון נתונים (של המתפללים שאין להם מקום). -
@dovid אמר באיך עושים ארוע באקסל בעת שינוי בתא מסוים:
לא הבנתי אותך. רצית אירוע בעת שינוי נתון בתא מסוים, אז זה האירוע שאתה צריך. לא אירוע של שינוי בחירה (Selction_Change). זה מביא את הכתובת הנכונה גם במקרה של אנטר.
אתה צודק באמת אני השתמשתי ב Change, ולא כמו שכתבתי.
בצעתי עריכה בשאלה