יום שבת, 29 בספטמבר 2012

אי-מייל אוטומטי מתוך "אקסל" - חלק ב'

אי-מייל אוטומטי מתוך "אקסל" - חלק ב'

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


להזכירכם, אם בפתיחת הקובץ מתקיימים התנאים:
1. תאריך נוכחי (בתא D2) > תאריך קודם (בתא E2)
2. רמת המלאי = 0 (בתא F2)

אזי מתבצעת שליחת אי-מייל אוטומטית - מתוך גליון ה"אקסל".

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




הפתרון: 
כמובן שהסכמתי עם הלקוח (הוא הרי תמיד צודק...) ועל סמך הפתרון בדרישה הקודמת שלו בניתי את הפתרון הבא:

בממשק המשתמש - לא נעשה שנוי. 4 הפרמטרים נשארו בעינם.
1. כתובת הנמען: בתא C5
2. תוכן ההודעה: בתא C6
3. כותרת ההודעה ("נושא"): בתא C7
4. קובץ צרופה (Attachment): בתא C8.

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

השנוי העקרי שעשיתי היה בקוד הפונקציה sendAutoMail

1. כדי לאפשר שנוי של ישור הטכסט (משמאל לימין), היה צורך להפוך את הודעת הטכסט ל- HTML

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

כך, אם כן, יֵרָאֶה טכסט עברי בהודעת האי-מייל בפתרון החדש(מיושרת לימין):



וכך יֵרָאֶה טכסט אנגלי בהודעת האי-מייל (מיושרת לשמאל):




µµµ
למעוניינים, אפשר להוריד את הקובץ מכאן:
שם הקובץ:
SendAutoMail -with attachment - HTMLBODY & Alignment- Hebrew Version.xlsm

µµµ

הערות:
1 .כדי שתוכלו לבדוק גם אי-מייל שתוכנו באנגלית מבלי לשנות את תוכן תא C6, כתבו את ההודעה באנגלית בתא: I6 והוסיפו את האות: E בתא: B2.
כך תדע התכנית לקחת את ההודעה מתא: I6 במקום מתא: C6



2. יש לשנות את כתובת הנמען בתא C5. בפעם הראשונה כשנפתח הקובץ, האי-מייל לא נשלח לשום מקום, מכיון שכתובת הנמען המופיעה ב-C5 - אינה קיימת....
3. התכנית מציגה תבת הודעה (Message Box), כדי להודיע למשתמש אם משלוח האי-מייל (מתוך "אקסל") הסתיים בהצלחה או שנכשל.
השפה בתבת ההודעה מתאימה לשפה בתוכן ההודעה: אם רוב ההודעה בתא C6  (או בתא I6) הוא באנגלית - תבת ההודעה תוצג באנגלית, אחרת - ההודעה תוצג בעברית.


µµµ

אין תגובות:

הוסף רשומת תגובה