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

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

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

עזרה קטנה בקוד מאקרו - אקסל

מתוזמן נעוץ נעול הועבר תוכנה
8 פוסטים 2 כותבים 346 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • מ מנותק
    מ מנותק
    מטעמים
    כתב ב נערך לאחרונה על ידי מטעמים
    #1

    שלום.

    יש לי המון קבצי אקסל (כ-280 קבצים) ששמורים בפורמט csv.
    אני צריך להמיר את כולם לפורמט רגיל (xlsx.)

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

    אני מנסה ליצור פקודת מאקרו שתעשה את זה לבד:

    ActiveWorkbook.SaveAs
    
    • "שמירה בשם"
    FileFormat:=51
    
    • בחירת פורמט xlsx.

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

    איך אני כותב קוד ששומר את הקובץ החדש בתיקיה הנוכחית שבה נמצא הקובץ הקודם?

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

    dovidD תגובה 1 תגובה אחרונה
    0
    • מ מטעמים

      שלום.

      יש לי המון קבצי אקסל (כ-280 קבצים) ששמורים בפורמט csv.
      אני צריך להמיר את כולם לפורמט רגיל (xlsx.)

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

      אני מנסה ליצור פקודת מאקרו שתעשה את זה לבד:

      ActiveWorkbook.SaveAs
      
      • "שמירה בשם"
      FileFormat:=51
      
      • בחירת פורמט xlsx.

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

      איך אני כותב קוד ששומר את הקובץ החדש בתיקיה הנוכחית שבה נמצא הקובץ הקודם?

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

      dovidD מחובר
      dovidD מחובר
      dovid
      ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      @מטעמים תצרף קוד שכתבת.

      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
      מ תגובה 1 תגובה אחרונה
      0
      • dovidD dovid

        @מטעמים תצרף קוד שכתבת.

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

        @dovid
        מה שכתבתי לעיל, זה כל הקוד:

        Sub s51()
        '
        ' s51 מאקרו
        '
        
        '
            ActiveWorkbook.SaveAs , FileFormat:=51
        
        End Sub
        
        
        dovidD תגובה 1 תגובה אחרונה
        0
        • מ מטעמים

          @dovid
          מה שכתבתי לעיל, זה כל הקוד:

          Sub s51()
          '
          ' s51 מאקרו
          '
          
          '
              ActiveWorkbook.SaveAs , FileFormat:=51
          
          End Sub
          
          
          dovidD מחובר
          dovidD מחובר
          dovid
          ניהול
          כתב ב נערך לאחרונה על ידי
          #4

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

          • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
          • בכל נושא אפשר ליצור קשר dovid@tchumim.com
          מ תגובה 1 תגובה אחרונה
          0
          • dovidD dovid

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

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

            @dovid כתב בעזרה קטנה בקוד מאקרו - אקסל:

            אתה פותח קובץ קובץ ומפעיל את המאקרו הזה?

            בדיוק. (זה חוסך לי המון לחיצות על כל קובץ על פני לחיצה אחת)

            אם יש לך דרך אחרת לעשות את זה, אשמח לשמוע.

            dovidD תגובה 1 תגובה אחרונה
            0
            • מ מטעמים

              @dovid כתב בעזרה קטנה בקוד מאקרו - אקסל:

              אתה פותח קובץ קובץ ומפעיל את המאקרו הזה?

              בדיוק. (זה חוסך לי המון לחיצות על כל קובץ על פני לחיצה אחת)

              אם יש לך דרך אחרת לעשות את זה, אשמח לשמוע.

              dovidD מחובר
              dovidD מחובר
              dovid
              ניהול
              כתב ב נערך לאחרונה על ידי
              #6

              @מטעמים תמחק את השורה הבודדת ותדיבק במקומה את הקוד הזה:

                  Dim xFd As FileDialog
                  Dim xSPath As String
                  Dim xCSVFile As String
                  Dim xWsheet As String
                  Application.DisplayAlerts = False
                  Application.StatusBar = True
                  xWsheet = ActiveWorkbook.Name
                  Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
                  xFd.Title = "Select a folder:"
                  If xFd.Show = -1 Then
                      xSPath = xFd.SelectedItems(1)
                  Else
                      Exit Sub
                  End If
                  If Right(xSPath, 1) <> "\" Then xSPath = xSPath + "\"
                  xCSVFile = Dir(xSPath & "*.csv")
                  Do While xCSVFile <> ""
                      Application.StatusBar = "Converting: " & xCSVFile
                      Workbooks.Open Filename:=xSPath & xCSVFile
                      ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xlsx", vbTextCompare), 51
                      ActiveWorkbook.Close
                      Windows(xWsheet).Activate
                      xCSVFile = Dir
                  Loop
                  Application.StatusBar = False
                  Application.DisplayAlerts = True
              

              תפעיל עם F5 בעוד הסמן על אחת השורות שהדבקת.
              זה יפתח לך תיבת בחירה לאיתור התיקיה וזהו.
              מקור (עם שני שינויים קטנים לXLSX):
              https://www.extendoffice.com/documents/excel/4615-excel-batch-convert-csv-to-xls-xlsx.html

              • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
              • בכל נושא אפשר ליצור קשר dovid@tchumim.com
              מ תגובה 1 תגובה אחרונה
              9
              • dovidD dovid

                @מטעמים תמחק את השורה הבודדת ותדיבק במקומה את הקוד הזה:

                    Dim xFd As FileDialog
                    Dim xSPath As String
                    Dim xCSVFile As String
                    Dim xWsheet As String
                    Application.DisplayAlerts = False
                    Application.StatusBar = True
                    xWsheet = ActiveWorkbook.Name
                    Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
                    xFd.Title = "Select a folder:"
                    If xFd.Show = -1 Then
                        xSPath = xFd.SelectedItems(1)
                    Else
                        Exit Sub
                    End If
                    If Right(xSPath, 1) <> "\" Then xSPath = xSPath + "\"
                    xCSVFile = Dir(xSPath & "*.csv")
                    Do While xCSVFile <> ""
                        Application.StatusBar = "Converting: " & xCSVFile
                        Workbooks.Open Filename:=xSPath & xCSVFile
                        ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xlsx", vbTextCompare), 51
                        ActiveWorkbook.Close
                        Windows(xWsheet).Activate
                        xCSVFile = Dir
                    Loop
                    Application.StatusBar = False
                    Application.DisplayAlerts = True
                

                תפעיל עם F5 בעוד הסמן על אחת השורות שהדבקת.
                זה יפתח לך תיבת בחירה לאיתור התיקיה וזהו.
                מקור (עם שני שינויים קטנים לXLSX):
                https://www.extendoffice.com/documents/excel/4615-excel-batch-convert-csv-to-xls-xlsx.html

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

                @dovid
                עזרת לי מאוד מאוד. ישר כח!

                תגובה 1 תגובה אחרונה
                2
                • מ מנותק
                  מ מנותק
                  מטעמים
                  כתב ב נערך לאחרונה על ידי מטעמים
                  #8

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

                  (כיוון שהנושא נפתח כאן אני משתף אותו למקרה ומאן דהו יחפש ג"כ תשובה לשאלה הפותחת של האשכול)

                  Sub Macro2()
                   
                  ' שמירה בשם, אותו שם, אותו נתיב קובץ, החלפת שם הסיומת, החלפת הפורמט
                  
                  ActiveWorkbook.SaveAs Replace(ActiveWorkbook.Path & "\" & ActiveWorkbook.Name, ".csv", ".xlsx"), 51
                     
                  End Sub
                  
                  
                  תגובה 1 תגובה אחרונה
                  0
                  תגובה
                  • תגובה כנושא
                  התחברו כדי לפרסם תגובה
                  • מהישן לחדש
                  • מהחדש לישן
                  • הכי הרבה הצבעות


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

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

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