העלאת קובץ דרך VBA (ויזואל בייסיק)
-
מישהו מכיר כאן VBA?
כתבתי קוד בVBA להעלאת תוכן מגיליון מסוים באקסל, ללא הורדה למחשב.
כשניסיתי בקוד אחר לבצע רק הורדה למחשב זה עבד מעולה.
אבל כשאני עושה את הקוד הזה להעלאה באתר, הוא מחזיר לי שגיאה, ואני לא מצליח להבין מה בדיוק הנקודה שחסר.
את הטוקן והנתיב נשלח בGET והשאר בPOST.
אשמח לעזרה!' יצירת אובייקט HTTP Dim http As Object Set http = CreateObject("MSXML2.XMLHTTP.6.0") ' הגדרת URL Dim url As String url = "https://www.call2all.co.il/ym/api/UploadFile?token=" & token & "&path=" & path ' פתיחת חיבור ל-POST http.Open "POST", url, False ' הגדרת כותרת הבקשה http.setRequestHeader "Content-Type", "multipart/form-data" ' יצירת גבול גוף הבקשה Dim boundary As String boundary = "-----" & Format(Now, "yyyyMMddhhmmss") Dim body As String body = "--" & boundary & vbCrLf body = body & "Content-Disposition: form-data; name=""file""; filename=""IdListMessage.ini""" & vbCrLf body = body & "Content-Type: text/plain; charset=UTF-8" & vbCrLf & vbCrLf body = body & EncodeToUTF8(iniContent) & vbCrLf body = body & "--" & boundary & "--" & vbCrLf ' הגדרת אורך הגוף http.setRequestHeader "Content-Length", Len(body) ' שליחת הבקשה On Error GoTo ErrorHandler http.send body ' קבלת התגובה Dim response As String response = http.responseText ' הצגת התגובה MsgBox response ' שחרור האובייקט Set http = Nothing
בנוסף מוגדר פונקציה לקידוד נכון (כי חשבתי שיש בעיה בקידוד)
Function EncodeToUTF8(ByVal str As String) As String Dim arr() As Byte arr = StrConv(str, vbFromUnicode) EncodeToUTF8 = arr End Function
-
@יב
הסתדרת כבר?
נתקלתי בבעיה דומה, אשמח לשמוע פיתרון... -
@אופיר האמת שעדיין לא.
נראה לי שצריכים לעשות הורדה למחשב לקובץ זמני. (לדוגמא; שם הקובץ + temp) - ולהעלות את הקובץ מהמחשב (ללא temp) - ולמחוק את הקובץ אחר כך.
עדיין לא ניסיתי, אבל נראה לי שזה הדרך הבטוחה.
לכאורה אמור להיות דרך יותר ישירה. -
@יב ראית את האקסס של אריה? זה בנוי על VBA!!!
-
-
@יב אני בנטפרי שחסום, אם תשאל אשמח לקבל תשובה. זה יעזור לי מאוד במיידי..
עברתי קצת על האקסס ההוא וזה דווקא נראה לי בדיוק מה שאנחנו צריכים רק הרבה יותר מסובך... כי הוא שילב את זה עם עוד הרבה דברים. -
-
@יב יש כאן קובץ שהעלה @amp-Software-0 ובו קוד VBA מוכן להעלאת כל קובץ למערכת. בהנאה...
אגב, לכותב האלוף @amp-Software-0 ; אשמח ליצור איתך קשר אני מעוניין ללמוד ממך (בתשלום) איך בדיוק עשית את הקוד הזה (יש לי את היסודות של VBA אבל אני לא מכיר את כל הפונקציות) אשמח שתציין איך ניתן ליצור איתך קשר. תודה רבה רבה -
פוסט זה נמחק! -
קטע, הייתי בטוח שויזואל בייסיק ז"ל מזמן...
-
@אופיר
הקובץ אקסס של @amp-Software-0 זה העלאה מהמחשב (קובץ מקומי).
אני דיברתי על העלאה ישירה מתוך גיליון של אקסל, ללא הורדה למחשב, זה עדיין אינני יודע איך לעשות