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

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

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

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

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

    שלום.

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

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

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

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

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

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

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

    dovidD תגובה 1 תגובה אחרונה
    0
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      השיב למטעמים ב נערך לאחרונה על ידי
      #2

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

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      מ תגובה 1 תגובה אחרונה
      0
      • מ מנותק
        מ מנותק
        מטעמים
        השיב לdovid ב נערך לאחרונה על ידי מטעמים
        #3

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

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

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

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          מ תגובה 1 תגובה אחרונה
          0
          • מ מנותק
            מ מנותק
            מטעמים
            השיב לdovid ב נערך לאחרונה על ידי
            #5

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

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

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

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

            dovidD תגובה 1 תגובה אחרונה
            0
            • 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
              • מ מנותק
                מ מנותק
                מטעמים
                השיב לdovid ב נערך לאחרונה על ידי
                #7

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

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

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

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

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

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

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

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