אי-מייל אוטומטי מתוך "אקסל" - חלק א'
מנהל מחסן במפעל גדול פנה אלי בבקשת עזרה:
הוא בודק מדי יום קובץ "אקסל" ובו הנתונים הבאים:
א. תאריך נוכחי (בתא D2)
ב. תאריך קודם (בתא E2)
ג. רמת המלאי (בתא F2)
הבקשה: אם בפתיחת הקובץ מתקיימים התנאים:
1. תאריך נוכחי > תאריך קודם
2. רמת המלאי = 0
אזי יש לבצע שליחת אי-מייל אוטומטית - מתוך גליון ה"אקסל".
הפתרון:
באמצעות רוטינה (SUB) ופונקציה ב- VBA
א. הרוטינה: workbook_open
זוהי רוטינה מובנֵית (built-in) ב"אקסל". היא מתבצעת באופן אוטומטי בכל פעם שנפתחת חוברת העבודה שבה נמצאת הרוטינה.
א.1. הסבר על הרוטינה:
הרוטינה מקבלת 4 פרמטרים:
1. כתובת הנמען: בתא C5
2. תוכן ההודעה: בתא C6
3. כותרת ההודעה ("נושא"): בתא C7
4. קובץ צרופה (Attachment): בתא C8. פרמטר זה הוא אופציונלי, כלומר: אפשר לשלוח את האי-מייל גם ללא צרופה.
פרמטרים 1,2,3 - לא נבדקים. אפשר כמובן לשלוח הודעת אי-מייל ללא תוכן (פרמטר 2) וגם ללא כותרת (פרמטר 3).
אבל, אם לא מופיעה כתובת הנמען (פרמטר 1) - הפונקציה שאליה פונה הרוטינה, לא תשלח את האי-מייל.
פרמטר 4:
אם מצוין שם קובץ בתא C8 -
א. יש לציין את המסלול המלא של הקובץ (full path), כולל כונן (drive), ספריה (folder) וסיומת הקובץ (suffix). למשל:
D:\Test\רשימת תקלות.xlsx
ב. התכנית בודקת את קיום הקובץ ואם שם הקובץ איננו תקין/לא נמצא במסלול המצוין - האי-מייל לא יישלח ותופיע על כך גם הודעה.
אם כל הפרמטרים תקינים, הרוטינה פונה לפונקציה ומעבירה לה את ארבעת הפרמטרים.
ב. הפונקציה: sendAutoMail
הפונקציה מקבלת את 4 הפרמטרים, מציבה את ערכי הפרמטרים בשדות המתאימים ושולחת את האי-מייל.
אם משלוח האי-מייל הצליח, מוצגת ההודעה: "האי-מייל נשלח בהצלחה"
וכך נראית הודעת האי-מייל לאחר שנשלחה:
µµµ
למעוניינים, אפשר להוריד את הקובץ מכאן:
שם הקובץ:
SendAutoMail -with attachment - Hebrew Version.xlsm
µµµ
שלום מני
השבמחקאשמח אם תוכל לעזור למה זה לא עובד?
היי מני, נתקלתי בבלוג שלך הנוכחי בקשר לשליחת מייל אוטומטי מאקסל..
השבמחקאני אשמח מאוד אם תסביר לי איך מה שהסברת למעלה מתבצע ואם יש דוגמא עובדת בקובץ אקסל מוכן...
אשמח לתגובה למייל של העבודה שלי- shaul.vachnun@gmail.com
תודה , שאול וחנון.
שאול שלום,
השבמחקבסוף ההסבר יש קישור להורדת קובץ הדוגמא.
בברכה,
מני פורת
היי מני
השבמחקמעניין מאד ומחכים.
האם זה עובד רק עם outlook ?
תודה רבה ויום טוב
כן, לצערי רק ב- OUTLOOK
השבמחקאולי בגירסה הבאה אסביר איך עובד ב-GMAIL
תגובה זו הוסרה על ידי המחבר.
מחקמני שלום
השבמחקמנסה לבנות רוטינה שתשלח למספר כתובות מייל תחומים מתוך קובץ אקסל (העתקת והדבקת התחום לגוף המייל)
אודה באם תוכל לסייע
לא כלכך הבנתי. אם אני רוצה לבנות את זה לבד, איך אני עושה את זה? ב VBA?
השבמחקכן :-)
השבמחקשלום מני, תודה על ההסבר. האם ישנה אופציה לשליחת מייל רק לאחר לחיצה על כפור מאקרו? ולא בתחילת המייל?
השבמחק