בעיית זמני חישוב ארוכים באקסל ושגיאת תחביר קוד VBA
שלום חברים,
צריך את עזרתכם במציאת פיתרון ל-2 בעיות באקסל וב -VBA:
1) בניתי כלי אקסלי לשיבוץ עובדים למשמרות, כאשר יש בו המון נוסחאות שמחשבות את שעות העבודה המצטברות,
רשימות בחירה, נוסחאות שאמורות להתריע על חריגות למיניהן ועוד מקרואים להוספת שורות ישנות, הוספת חדשות ועוד.
לקראת סיום הבנייה של הכלי נוכחתי לראות שיש בעיה קשה של זמני חישוב ארוכים במיוחד על כל הזנה בודדת ופשוטה (10-15 שניות המתנה לאחר כל הזנה).
אי אפשר ולא הגיוני לעבוד ככה עם הכלי, וגם האופציה לעבור למוד חישוב ידני אינה רלוונטית במקרה זה כי חיוני לקבל אתרעה מיידית על כל הזנה. האם יש לכם רעיון מה גורם לזה ואיך אפשר לפתור את הבעיה?
2) רשמתי קוד VBA שאמור לעשות 2 פעולות ויש לי בו שגיאות תחביר או אחרות שאני לא מצליח ולא יודע איך לתקן ושמונעות מהפעולות להתבצע באופן תקין:
א. להסתיר כל שורה בגיליון שהתאריך הרשום בה בעמודה קבועה הינו ישן יותר מהיום הראשון של 2 שבועות העבודה הקודמים >>> המאקרו לא מבצע הסתרה כלל...
(דוגמא: היום יום ג' 12/6, הסתר כל רשומה שהתאריך שלה ישן מתאריכי 2 שבועות העבודה הקודמים, כלומר כל מה שקטן מיום א' 27/5).
ב. להפוך כל שורה בגיליון מנוסחה לערך (copy & paste values) שהתאריך הרשום בה בעמודה קבועה הינו ישן יותר מהיום הראשון של השבוע הנוכחי, במטרה להפחית את כמות הנוסחאות המיותרת בקובץ >>> המאקרו עושה את הפעולה אבל גם עבור היום הראשון של השבוע הנוכחי, לא כפי הנדרש.
(דוגמא: היום יום ג' 12/6, הפוך כל רשומה עם נוסחאות לערכים שהתאריך שלה ישן מתאריך היום הראשון של שבוע העבודה הנוכחי, כלומר כל מה שקטן מיום א' 10/6).
מצורף קובץ לדוגמא עם המאקרו השגוי.
הערה: בקובץ הדוגמא המצורף אין המחשה לבעיית זמני החישוב הארוכים, רק בקובץ המקור שמכיל כמות גדולה פי כמה
של נוסחאות, גיליונות ומקרואים נוספים.
תודה מראש למשיבים
שלום חברים,
צריך את עזרתכם במציאת פיתרון ל-2 בעיות באקסל וב -VBA:
1) בניתי כלי אקסלי לשיבוץ עובדים למשמרות, כאשר יש בו המון נוסחאות שמחשבות את שעות העבודה המצטברות,
רשימות בחירה, נוסחאות שאמורות להתריע על חריגות למיניהן ועוד מקרואים להוספת שורות ישנות, הוספת חדשות ועוד.
לקראת סיום הבנייה של הכלי נוכחתי לראות שיש בעיה קשה של זמני חישוב ארוכים במיוחד על כל הזנה בודדת ופשוטה (10-15 שניות המתנה לאחר כל הזנה).
אי אפשר ולא הגיוני לעבוד ככה עם הכלי, וגם האופציה לעבור למוד חישוב ידני אינה רלוונטית במקרה זה כי חיוני לקבל אתרעה מיידית על כל הזנה. האם יש לכם רעיון מה גורם לזה ואיך אפשר לפתור את הבעיה?
2) רשמתי קוד VBA שאמור לעשות 2 פעולות ויש לי בו שגיאות תחביר או אחרות שאני לא מצליח ולא יודע איך לתקן ושמונעות מהפעולות להתבצע באופן תקין:
א. להסתיר כל שורה בגיליון שהתאריך הרשום בה בעמודה קבועה הינו ישן יותר מהיום הראשון של 2 שבועות העבודה הקודמים >>> המאקרו לא מבצע הסתרה כלל...
(דוגמא: היום יום ג' 12/6, הסתר כל רשומה שהתאריך שלה ישן מתאריכי 2 שבועות העבודה הקודמים, כלומר כל מה שקטן מיום א' 27/5).
ב. להפוך כל שורה בגיליון מנוסחה לערך (copy & paste values) שהתאריך הרשום בה בעמודה קבועה הינו ישן יותר מהיום הראשון של השבוע הנוכחי, במטרה להפחית את כמות הנוסחאות המיותרת בקובץ >>> המאקרו עושה את הפעולה אבל גם עבור היום הראשון של השבוע הנוכחי, לא כפי הנדרש.
(דוגמא: היום יום ג' 12/6, הפוך כל רשומה עם נוסחאות לערכים שהתאריך שלה ישן מתאריך היום הראשון של שבוע העבודה הנוכחי, כלומר כל מה שקטן מיום א' 10/6).
מצורף קובץ לדוגמא עם המאקרו השגוי.
הערה: בקובץ הדוגמא המצורף אין המחשה לבעיית זמני החישוב הארוכים, רק בקובץ המקור שמכיל כמות גדולה פי כמה
של נוסחאות, גיליונות ומקרואים נוספים.
תודה מראש למשיבים