זמני חישוב ארוכים באקסל ושגיאת תחביר VBA – בקשה חוזרת

  • פותח הנושא ל13
  • פורסם בתאריך

ל13

New member
זמני חישוב ארוכים באקסל ושגיאת תחביר VBA – בקשה חוזרת


שלום חברים,

לפני כשבוע העליתי כאן בעיה של זמני חישוב ארוכים באקסל ושגיאת תחביר קוד VBA. ראו קישור:
http://www.tapuz.co.il/forums/viewmsg/62/183321759/

עדיין יש לי בעיות עם הקובץ ואשמח לעזרתכם.

הפעם צירפתי את קובץ המקור עצמו (אחרי שמחקתי ממנו נתונים לא רלוונטיים) במקום קובץ הדוגמא.

אשמח להתייחסותכם לגבי 2 הנושאים:
1) האם אתם יודעים לזהות את הגורם לבעיית זמני החישוב הארוכים ואיך ניתן לפתור אותה? כל הזנה של שם עובד ומשמרת גוררת זמני חישוב ארוכים ולא הגיוניים עבור הנוסחאות שבעמודות הסמוכות... (ואין לי אפשרות לעבור למוד חישוב ידני כי כל הזנה חייבת לקבל אתראה מיידית שמתקבלת ע"י נוסחה).

2) בפעם הקודמת קיבלתי פיתרון מעולה לשגיאת תחביר קוד ה-VBA, שעבד מצוין על קובץ הדוגמא שצירפתי אז. כשאני מנסה ליישם את הפיתרון על קובץ המקור, ריצת המאקרו נעצרת בפקודה של PasteValues ואני לא מבין מה הסיבה ולא יודע איך לתקן את הקוד כדי שיעבוד.

תזכורת למטרת המאקרו:

א. להסתיר כל שורה בגיליון שהתאריך הרשום בה בעמודה קבועה הינו ישן יותר מהיום הראשון של 2 שבועות העבודה הקודמים >>> המאקרו לא מבצע הסתרה כלל...

ב. להפוך כל שורה בגיליון מנוסחה לערך (copy & paste values) שהתאריך הרשום בה בעמודה קבועה הינו ישן יותר מהיום הראשון של השבוע הנוכחי, במטרה להפחית את כמות הנוסחאות המיותרת בקובץ >>> המאקרו עושה את הפעולה אבל "מפספס" היום האחרון של השבוע הקודם ומשאיר בו נוסחאות במקום להפוך לערכים, לא כפי הנדרש.

תודה מראש למשיבים
 

u333

New member
לשאלה 2 - הבעיה היא התאים הממוזגים בעמודה A


ובעוד כל מיני חורים.
אם תוסיף בתחילת המקרו שורה לביטול כל התאים הממוזגים בגיליון - המקרו ירוץ 'כמו משוגע'
זאת השורה שיש להוסיף:
Cells.UnMerge
 

ל13

New member
תודה על הפיתרון, אבל...

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

u333

New member
לדעתי - לא בצורה הנוכחית.

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

ל13

New member
*** האם יש למישהו פיתרון לבעיית זמני חישוב ארוכים?


(סעיף 1 בבקשה שלעיל)
 

ziv98

Member
For Each cell In

הלולאה מגיעה ל - t10000, הגיליון רק ל - t1000 - פי 10 זמן חישוב מהדרוש...
 

ל13

New member
תודה רבה, אבל...

תודה רבה על ההארה.
הסיבה שקבעתי את הלולאה ל-10,000 היא כי הכלי אמור לצבור בכל שבוע חדש כ-90 שורות נוספות שזה כמעט 4700 שורות לשנה, השורות הישנות נשמרות כ-Hidden ואינן נמחקות... כדי להקטין את הלולאה, אצטרך להחיל אותה על מספר קטן יותר של שורות (החדשות יותר)... צריך למצוא דרך חכמה לעשות את זה.

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

מה אפשר לעשות כדי לפתור את הבעיה?
 
למעלה