דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. מחפש קוד של c# להפעלת מאקרו vba

מחפש קוד של c# להפעלת מאקרו vba

מתוזמן נעוץ נעול הועבר תכנות
19 פוסטים 3 כותבים 675 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • אורייא אוריי

    @yossiz
    ניסיתי בקוד vba בתוך קובץ vbs וזה עובד הבעיה היא שהוא לא סוגר את האקסל ברקע לאחר הפעולה (כך שלאחר כמה פתיחות השרת לא זז)
    א. אני צריך שהבקשה תגיע מקובץ קוד כי זה אמור להגיע לאחר פעולה
    ב. אני לא יכול לבקש מתוך אקסס כי א"כ אני מוכרך לפתוח את האקסס בשביל זה והרי אני רוצה שזה יעבוד באופן אוטומטי לחלוטין...
    ג. חוץ מזה יש לי קוד c# שעושה לי את הפעולה הקודמת של הורדת קבצים משרת ftp וב"ה עובד מעולה ... כ"כ חיפשתי ג"כ קוד המשך לפעולה הבאה במקום לסרבל את המערכת...

    לגבי הניסיונות שלי
    אני הכנסתי את הקוד הבא והוא לא מוצא את המחלקה של Excel

       public void WebTest_CodedStep()
        {
            // Object for missing (or optional) arguments.
            object oMissing = System.Reflection.Missing.Value;
    
            // Create an instance of Microsoft Excel
            Excel.ApplicationClass oExcel = new Excel.ApplicationClass();
    
            // Make it visible
            oExcel.Visible = true;
    
            // Define Workbooks
            Excel.Workbooks oBooks = oExcel.Workbooks;
            Excel._Workbook oBook = null;
    
            // Get the file path
            string path = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            path = path + "\\Worksheet02.csv";
    
            //Open the file, using the 'path' variable
            oBook = oBooks.Open(path, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing,  oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);
    
            // Run the macro, "First_Macro"
            RunMacro(oExcel, new Object[]{"Worksheet01.xlsm!First_Macro"});
    
            // Quit Excel and clean up.
            oBook.Close(false, oMissing, oMissing);
            System.Runtime.InteropServices.Marshal.ReleaseComObject (oBook);
            oBook = null;
            System.Runtime.InteropServices.Marshal.ReleaseComObject (oBooks);
            oBooks = null;
            oExcel.Quit();
            System.Runtime.InteropServices.Marshal.ReleaseComObject (oExcel);
            oExcel = null;
    
            //Garbage collection
            GC.Collect();
        }
    
        private void RunMacro(object oApp, object[] oRunArgs)
        {
            oApp.GetType().InvokeMember("Run", System.Reflection.BindingFlags.Default | System.Reflection.BindingFlags.InvokeMethod, null, oApp, oRunArgs);
        }
    

    במחשבה שניה לא בטוח שהקוד הזה יסגור לי את האקסל לאחר הפעולה..

    yossizY מנותק
    yossizY מנותק
    yossiz
    כתב ב נערך לאחרונה על ידי
    #4

    @אוריי אמר במחפש קוד של c# להפעלת מאקרו vba:

    הבעיה היא שהוא לא סוגר את האקסל ברקע לאחר הפעולה

    Application.Quit

    והוא לא מוצא את המחלקה של Excel

    צריך להוסיף למעלה

    using Microsoft.Office.Interop.Excel;
    

    ולהוסיף Reference בפרוייקט ל-DLL של זה.

    זה בגדול, יותר בפרטות אני לא יודע.

    📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

    אורייא תגובה 1 תגובה אחרונה
    6
    • yossizY yossiz

      @אוריי אמר במחפש קוד של c# להפעלת מאקרו vba:

      הבעיה היא שהוא לא סוגר את האקסל ברקע לאחר הפעולה

      Application.Quit

      והוא לא מוצא את המחלקה של Excel

      צריך להוסיף למעלה

      using Microsoft.Office.Interop.Excel;
      

      ולהוסיף Reference בפרוייקט ל-DLL של זה.

      זה בגדול, יותר בפרטות אני לא יודע.

      אורייא מנותק
      אורייא מנותק
      אוריי
      כתב ב נערך לאחרונה על ידי
      #5

      @yossiz 👍
      הרבה תודה ב"ה התקדמתי נחמד ב #C

      @yossiz אמר במחפש קוד של c# להפעלת מאקרו vba:

      להוסיף Reference בפרוייקט ל-DLL של זה.

      אשמח לקבל איזה הסבר קצר איך אני מוסיף את זה

      ניתן לפנות אלי גם ב al0548446188@gmail.com
      ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

      yossizY תגובה 1 תגובה אחרונה
      0
      • אורייא אוריי

        @yossiz 👍
        הרבה תודה ב"ה התקדמתי נחמד ב #C

        @yossiz אמר במחפש קוד של c# להפעלת מאקרו vba:

        להוסיף Reference בפרוייקט ל-DLL של זה.

        אשמח לקבל איזה הסבר קצר איך אני מוסיף את זה

        yossizY מנותק
        yossizY מנותק
        yossiz
        כתב ב נערך לאחרונה על ידי
        #6

        @אוריי
        https://stackoverflow.com/questions/15285880/how-to-reference-microsoft-office-interop-excel-dll

        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

        תגובה 1 תגובה אחרונה
        3
        • Aharon 0A מחובר
          Aharon 0A מחובר
          Aharon 0
          כתב ב נערך לאחרונה על ידי Aharon 0
          #7

          יש ספרייה לעבוד מול excel בשם epplus, היא לא תומכת ב vba. אבל אפשר בקלות להפוך את הקוד של ה vba ל c#

          אורייא תגובה 1 תגובה אחרונה
          0
          • Aharon 0A Aharon 0

            יש ספרייה לעבוד מול excel בשם epplus, היא לא תומכת ב vba. אבל אפשר בקלות להפוך את הקוד של ה vba ל c#

            אורייא מנותק
            אורייא מנותק
            אוריי
            כתב ב נערך לאחרונה על ידי אוריי
            #8

            @aharon-0
            אם היה מדובר ב קוד vba קטן הייתי חושב על המהלך הזה
            הנקודה היא שמדובר בקוד באורך של מאות שורות (למעלה מ 1900 )עם כמויות פונקציות וכו'
            שזמן ריצה של כל הקוד בממוצע כ 50 שניות במחשב I5 8GR

            ניתן לפנות אלי גם ב al0548446188@gmail.com
            ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

            Aharon 0A תגובה 1 תגובה אחרונה
            0
            • אורייא אוריי

              @aharon-0
              אם היה מדובר ב קוד vba קטן הייתי חושב על המהלך הזה
              הנקודה היא שמדובר בקוד באורך של מאות שורות (למעלה מ 1900 )עם כמויות פונקציות וכו'
              שזמן ריצה של כל הקוד בממוצע כ 50 שניות במחשב I5 8GR

              Aharon 0A מחובר
              Aharon 0A מחובר
              Aharon 0
              כתב ב נערך לאחרונה על ידי
              #9

              @אוריי עבודה מול excel בסגנון הישן כ dll. מתכון לצרות.
              א. אסור לעבוד עם אקסל בזמן שהקוד רץ. כי זה מפריע לקוד לרוץ.
              ב. לצורך סגירת האקסל צריך לקרוא 3 פעמים ל GC לרוקן אובייקטים של אקסל. (כמובן לאחר ששיחררו אותם)
              ג. צריך להזהר לא לקמפל ב netcore

              אורייא תגובה 1 תגובה אחרונה
              0
              • Aharon 0A Aharon 0

                @אוריי עבודה מול excel בסגנון הישן כ dll. מתכון לצרות.
                א. אסור לעבוד עם אקסל בזמן שהקוד רץ. כי זה מפריע לקוד לרוץ.
                ב. לצורך סגירת האקסל צריך לקרוא 3 פעמים ל GC לרוקן אובייקטים של אקסל. (כמובן לאחר ששיחררו אותם)
                ג. צריך להזהר לא לקמפל ב netcore

                אורייא מנותק
                אורייא מנותק
                אוריי
                כתב ב נערך לאחרונה על ידי
                #10

                @aharon-0
                אני לא מפעיל ישירות מה #C את ה vba
                אלא מפעיל vbs שמפעיל את ה vba
                זה האופציה היחידה כרגע והכי אופציונלית..
                עיין כאן

                ניתן לפנות אלי גם ב al0548446188@gmail.com
                ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

                Aharon 0A תגובה 1 תגובה אחרונה
                0
                • אורייא אוריי

                  @aharon-0
                  אני לא מפעיל ישירות מה #C את ה vba
                  אלא מפעיל vbs שמפעיל את ה vba
                  זה האופציה היחידה כרגע והכי אופציונלית..
                  עיין כאן

                  Aharon 0A מחובר
                  Aharon 0A מחובר
                  Aharon 0
                  כתב ב נערך לאחרונה על ידי Aharon 0
                  #11

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

                  אורייא תגובה 1 תגובה אחרונה
                  0
                  • Aharon 0A Aharon 0

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

                    אורייא מנותק
                    אורייא מנותק
                    אוריי
                    כתב ב נערך לאחרונה על ידי
                    #12

                    @aharon-0 אמר במחפש קוד של c# להפעלת מאקרו vba:

                    ,אבל יש לי הרגשה שאם תעלה מסמך דרישות למה שאתה מפתח, יהיה יותר קל לעזור לך

                    כתבתי את זה כאן

                    ניתן לפנות אלי גם ב al0548446188@gmail.com
                    ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

                    Aharon 0A תגובה 1 תגובה אחרונה
                    0
                    • אורייא אוריי

                      @aharon-0 אמר במחפש קוד של c# להפעלת מאקרו vba:

                      ,אבל יש לי הרגשה שאם תעלה מסמך דרישות למה שאתה מפתח, יהיה יותר קל לעזור לך

                      כתבתי את זה כאן

                      Aharon 0A מחובר
                      Aharon 0A מחובר
                      Aharon 0
                      כתב ב נערך לאחרונה על ידי Aharon 0
                      #13

                      @אוריי
                      קצת התבלבלתי, אם הקוד שמוריד את הקבצים ב powershell. למה לא להמשיך להריץ את ה vbs ב powershell ? מה הצורך ב c#?

                      אורייא תגובה 1 תגובה אחרונה
                      0
                      • Aharon 0A Aharon 0

                        @אוריי
                        קצת התבלבלתי, אם הקוד שמוריד את הקבצים ב powershell. למה לא להמשיך להריץ את ה vbs ב powershell ? מה הצורך ב c#?

                        אורייא מנותק
                        אורייא מנותק
                        אוריי
                        כתב ב נערך לאחרונה על ידי אוריי
                        #14

                        @aharon-0
                        אני יעשה לך קצת סדר
                        עם הפאוורשאל לא הסתדרתי
                        אז עברתי להשתמש ב #C
                        תכלס יש לי קוד #C שמוריד בהצלחה את כל הקבצים מה FTP
                        חוץ מזה בניתי קובץ VBS שמפעיל את המאקרו של האקסל
                        מה שכרגע חסר לי הוא להפעיל את ה VBS דרך ה#C
                        מקווה שהייתי ברור...

                        ניתן לפנות אלי גם ב al0548446188@gmail.com
                        ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

                        Aharon 0A תגובה 1 תגובה אחרונה
                        0
                        • אורייא אוריי

                          @aharon-0
                          אני יעשה לך קצת סדר
                          עם הפאוורשאל לא הסתדרתי
                          אז עברתי להשתמש ב #C
                          תכלס יש לי קוד #C שמוריד בהצלחה את כל הקבצים מה FTP
                          חוץ מזה בניתי קובץ VBS שמפעיל את המאקרו של האקסל
                          מה שכרגע חסר לי הוא להפעיל את ה VBS דרך ה#C
                          מקווה שהייתי ברור...

                          Aharon 0A מחובר
                          Aharon 0A מחובר
                          Aharon 0
                          כתב ב נערך לאחרונה על ידי
                          #15

                          @אוריי הבנתי. האקסל שמותקן על המחשב גרסת 32bit או 64bit ?

                          אורייא תגובה 1 תגובה אחרונה
                          0
                          • Aharon 0A Aharon 0

                            @אוריי הבנתי. האקסל שמותקן על המחשב גרסת 32bit או 64bit ?

                            אורייא מנותק
                            אורייא מנותק
                            אוריי
                            כתב ב נערך לאחרונה על ידי
                            #16

                            @aharon-0
                            64

                            ניתן לפנות אלי גם ב al0548446188@gmail.com
                            ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

                            Aharon 0A תגובה 1 תגובה אחרונה
                            0
                            • אורייא אוריי

                              @aharon-0
                              64

                              Aharon 0A מחובר
                              Aharon 0A מחובר
                              Aharon 0
                              כתב ב נערך לאחרונה על ידי Aharon 0
                              #17

                              @אוריי עוד משהו שלא הבנתי. הקוד בתחילת הפוסט ניסת לפתוח csv עם אקסל. זה לא יכול לעבוד כך.
                              צריך לפתוח גיליון ואז לייבא את ה csv לגליון. (עם אפשרות להגדיר מה מחלק לטורים פסיק או טאב או תו אחר).
                              איך פתרת את זה עם vbs ?

                              אורייא תגובה 1 תגובה אחרונה
                              0
                              • Aharon 0A Aharon 0

                                @אוריי עוד משהו שלא הבנתי. הקוד בתחילת הפוסט ניסת לפתוח csv עם אקסל. זה לא יכול לעבוד כך.
                                צריך לפתוח גיליון ואז לייבא את ה csv לגליון. (עם אפשרות להגדיר מה מחלק לטורים פסיק או טאב או תו אחר).
                                איך פתרת את זה עם vbs ?

                                אורייא מנותק
                                אורייא מנותק
                                אוריי
                                כתב ב נערך לאחרונה על ידי
                                #18

                                @aharon-0
                                זה לא קשור אחד לשני
                                יש לי קובץ xlsm שלוקח נתונים מ csv

                                ניתן לפנות אלי גם ב al0548446188@gmail.com
                                ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

                                Aharon 0A תגובה 1 תגובה אחרונה
                                0
                                • אורייא אוריי

                                  @aharon-0
                                  זה לא קשור אחד לשני
                                  יש לי קובץ xlsm שלוקח נתונים מ csv

                                  Aharon 0A מחובר
                                  Aharon 0A מחובר
                                  Aharon 0
                                  כתב ב נערך לאחרונה על ידי
                                  #19

                                  @אוריי
                                  דוגמא שמצאתי באינטרנט(אני מסמארטפון וקשה להקליד):
                                  Process scriptProc = new Process();
                                  scriptProc.StartInfo.FileName = @"cscript";
                                  scriptProc.StartInfo.WorkingDirectory = @"c:\scripts"; //<---very important
                                  scriptProc.StartInfo.Arguments ="//B //Nologo vbscript.vbs";
                                  scriptProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; //prevent console window from popping up
                                  scriptProc.Start();
                                  scriptProc.WaitForExit(); // <-- Optional if you want program running until your script exit
                                  scriptProc.Close

                                  עדיין חסר בדיקת ExitCode שאתה יכול להחזיר מ VBS שאומר אם ההרצה נכשלה או הצליחה.
                                  ואפשר להוסיף קריאה של הדפסות ל console שתוכל לטפל באירועים.

                                  תגובה 1 תגובה אחרונה
                                  0
                                  • dovidD dovid העביר נושא זה מ-תכנות ב-
                                  תגובה
                                  • תגובה כנושא
                                  התחברו כדי לפרסם תגובה
                                  • מהישן לחדש
                                  • מהחדש לישן
                                  • הכי הרבה הצבעות


                                  בא תתחבר לדף היומי!
                                  • התחברות

                                  • אין לך חשבון עדיין? הרשמה

                                  • התחברו או הירשמו כדי לחפש.
                                  • פוסט ראשון
                                    פוסט אחרון
                                  0
                                  • דף הבית
                                  • קטגוריות
                                  • פוסטים אחרונים
                                  • משתמשים
                                  • חיפוש
                                  • חוקי הפורום