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

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

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

אקסל | ייבוא ערכים מחוברת עבודה

מתוזמן נעוץ נעול הועבר תוכנה
20 פוסטים 2 כותבים 446 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • OdedDvirO מנותק
    OdedDvirO מנותק
    OdedDvir
    השיב לפלורידה ב נערך לאחרונה על ידי OdedDvir
    #6

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

    Public Sub CopyAllSheets(targetWorksheet as string, selectedRange As String)
       Dim source As Workbook, target As Workbook
       Dim sh As Worksheet
    
       Set source = ThisWorkbook
       Set target = Workbooks.Open(targetWorksheet)
    
       For Each sh In source.Sheets
            sh.Range(selectedRange).Copy
            target.Worksheets(sh.Name).Range(selectedRange).PasteSpecial Paste:=xlPasteValues
       Next sh
    End Sub
    

    בהרצה אתה צריך לספק את שם חוברת היעד, ואת הטווח להעתקה, כך:

    CopyAllSheets "d:\Temp\target.xlsx", "A:BB"
    

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

    פ 2 תגובות תגובה אחרונה
    2
    • פ מנותק
      פ מנותק
      פלורידה
      השיב לOdedDvir ב נערך לאחרונה על ידי
      #7

      @odeddvir

      בוודאי אתה מתכוון להריץ את זה ב VBA...
      אולי חסר שורה בהתחלה?
      והיכן משלבים את הקוד השני?

      OdedDvirO תגובה 1 תגובה אחרונה
      0
      • OdedDvirO מנותק
        OdedDvirO מנותק
        OdedDvir
        השיב לפלורידה ב נערך לאחרונה על ידי
        #8

        @פלורידה את הקוד אתה מדביק בתוך מודול כלשהו.
        את ההרצה אתה יכול לבצע מחלון הערכים המיידיים Immediate בחלק התחתון של עורך ה-VBA:
        3117606e-3cb6-4703-a1c6-59ea1fafd615-תמונה.png
        או ליצור לחצן שמריץ את הקריאה הנ"ל וכו'.

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

          עובד מצויין
          קשה לי להתאפק להסתיר את התלהבותי 🙂

          תגובה 1 תגובה אחרונה
          1
          • פ מנותק
            פ מנותק
            פלורידה
            השיב לOdedDvir ב נערך לאחרונה על ידי
            #10

            @odeddvir אמר באקסל | ייבוא ערכים מחוברת עבודה:

            את שם חוברת היעד

            א. ניתן לעשות את זה בנתיב שאינו קבוע?

            לדוג'.לקובץ 'גיבוי' שבאותו נתיב שבו נמצא הקובץ המקורי?

            ב. האם אפשר לעשות גם ייבוא באותו אופן.

            (אני מנחש שאתה כבר מבין בדיוק מה אני זומם...)

            OdedDvirO תגובה 1 תגובה אחרונה
            0
            • OdedDvirO מנותק
              OdedDvirO מנותק
              OdedDvir
              השיב לפלורידה ב נערך לאחרונה על ידי
              #11

              @פלורידה אמר באקסל | ייבוא ערכים מחוברת עבודה:

              א. ניתן לעשות את זה בנתיב שאינו קבוע?
              לדוג'.לקובץ 'גיבוי' שבאותו נתיב שבו נמצא הקובץ המקורי?
              ב. האם אפשר לעשות גם ייבוא באותו אופן.
              (אני מנחש שאתה כבר מבין בדיוק מה אני זומם...)

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

              פ תגובה 1 תגובה אחרונה
              2
              • פ מנותק
                פ מנותק
                פלורידה
                השיב לOdedDvir ב נערך לאחרונה על ידי
                #12

                @odeddvir כפי הנראה אני מתכוון לפרסם גרסא/ות יותר מעודכנות.
                כמו למשל גרפים וכו'...

                הבעיה שבהתקנה התוכנה דורסת את הגירסא הקודמת...

                הרעיון שלי הוא שבהתקנה יותקן קובץ גיבוי, ובתכנה יהיה לחצן גיבוי (כבר יש... 🙂 ) ולחצן שחזור, כלומר שישאב את הנתונים מקובץ הגיבוי.

                (כמובן שאת קובץ הגיבוי נתקין באופן שהוא לא דורס את הגירסא הקודמת שלו, אלא מדלג אם יש...)

                OdedDvirO תגובה 1 תגובה אחרונה
                1
                • OdedDvirO מנותק
                  OdedDvirO מנותק
                  OdedDvir
                  השיב לפלורידה ב נערך לאחרונה על ידי OdedDvir
                  #13

                  @פלורידה הבנתי.
                  פשוט נשנה את הקוד קצת:

                  Private Sub CopyAllSheets(source As Workbook, target As Workbook, selectedRange As String)
                     Dim sh As Worksheet
                     For Each sh In source.Sheets
                          sh.Range(selectedRange).Copy
                          target.Worksheets(sh.Name).Range(selectedRange).PasteSpecial Paste:=xlPasteValues
                     Next sh
                  End Sub
                  
                  Public Sub BackupTo(targetWorkbook As String, selectedRange As String)
                     CopyAllSheets ThisWorkbook, Workbooks.Open(targetWorkbook), selectedRange
                  End Sub
                  
                  Public Sub RestoreFrom(sourceWorkbook As String, selectedRange As String)
                     CopyAllSheets Workbooks.Open(sourceWorkbook), ThisWorkbook, selectedRange
                  End Sub
                  

                  כעת כדי לגבות תריץ:

                  BackupTo ActiveWorkbook.Path & "\גיבוי.xlsx", "A:BB"
                  

                  וכדי לשחזר תריץ:

                  RestoreFrom ActiveWorkbook.Path & "\גיבוי.xlsx", "A:BB"
                  
                  פ תגובה 1 תגובה אחרונה
                  2
                  • פ מנותק
                    פ מנותק
                    פלורידה
                    השיב לOdedDvir ב נערך לאחרונה על ידי
                    #14

                    @odeddvir הנתיב שהבאת מפנה לתיקייה שבאותו קובץ?

                    OdedDvirO תגובה 1 תגובה אחרונה
                    0
                    • OdedDvirO מנותק
                      OdedDvirO מנותק
                      OdedDvir
                      השיב לפלורידה ב נערך לאחרונה על ידי
                      #15

                      @פלורידה כן, הגיבוי והשחזור הם לתוך\מתוך הקובץ גיבוי.xlsx שנמצא באותה תיקייה של החוברת.

                      פ תגובה 1 תגובה אחרונה
                      1
                      • פ מנותק
                        פ מנותק
                        פלורידה
                        השיב לOdedDvir ב נערך לאחרונה על ידי
                        #16

                        @odeddvir

                        כשלון ביבוא

                        42395203-f697-43e6-881a-d345d176a5d2-image.png

                        OdedDvirO תגובה 1 תגובה אחרונה
                        0
                        • OdedDvirO מנותק
                          OdedDvirO מנותק
                          OdedDvir
                          השיב לפלורידה ב נערך לאחרונה על ידי OdedDvir
                          #17

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

                          פ 2 תגובות תגובה אחרונה
                          1
                          • פ מנותק
                            פ מנותק
                            פלורידה
                            השיב לOdedDvir ב נערך לאחרונה על ידי פלורידה
                            #18

                            @odeddvir כלומר אם אני יניח בקוד את הטווח הרלוונטי (עמודות 2-5 בגליונות ) הנ"ל, לא תהיה בעיה בשחזור...

                            או לחילופין, אם אני יפתח את הנעילה בכל התאים והגליונות לפני שהוא משחזר פנימה (על ידי vba) לא תהיה בעיה. רק הבעיה תהיה להחזיר את כל הנ"ל בפקודה אחת.

                            תגובה 1 תגובה אחרונה
                            1
                            • פ מנותק
                              פ מנותק
                              פלורידה
                              השיב לOdedDvir ב נערך לאחרונה על ידי פלורידה
                              #19

                              @odeddvir אמר באקסל | ייבוא ערכים מחוברת עבודה:

                              אני מניח שחלק מהגליון נעול לשינויים, ולכן השחזור לא מצליח.

                              ניסיתי על גליון חלק ונתן לי את אותה השגיאה...

                              OdedDvirO תגובה 1 תגובה אחרונה
                              0
                              • OdedDvirO מנותק
                                OdedDvirO מנותק
                                OdedDvir
                                השיב לפלורידה ב נערך לאחרונה על ידי
                                #20

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

                                תגובה 1 תגובה אחרונה
                                1
                                • OdedDvirO OdedDvir התייחס לנושא זה ב
                                • פ פלורידה התייחס לנושא זה ב
                                • פ פלורידה התייחס לנושא זה ב
                                • פ פלורידה התייחס לנושא זה ב
                                • פ פלורידה התייחס לנושא זה ב

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

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

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