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

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

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

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

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

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

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

    @odeddvir כן

    OdedDvirO תגובה 1 תגובה אחרונה
    0
    • פ פלורידה

      @odeddvir כן

      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
      • OdedDvirO OdedDvir

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

        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"
        

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

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

        @odeddvir

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

        OdedDvirO תגובה 1 תגובה אחרונה
        0
        • פ פלורידה

          @odeddvir

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

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

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

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

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

            תגובה 1 תגובה אחרונה
            1
            • OdedDvirO OdedDvir

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

              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"
              

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

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

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

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

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

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

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

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

              OdedDvirO תגובה 1 תגובה אחרונה
              0
              • פ פלורידה

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

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

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

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

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

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

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

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

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

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

                פ תגובה 1 תגובה אחרונה
                2
                • OdedDvirO OdedDvir

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

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

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

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

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

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

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

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

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

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

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

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

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

                    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
                    • OdedDvirO OdedDvir

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

                      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"
                      
                      פ מנותק
                      פ מנותק
                      פלורידה
                      כתב ב נערך לאחרונה על ידי
                      #14

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

                      OdedDvirO תגובה 1 תגובה אחרונה
                      0
                      • פ פלורידה

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

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

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

                        פ תגובה 1 תגובה אחרונה
                        1
                        • OdedDvirO OdedDvir

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

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

                          @odeddvir

                          כשלון ביבוא

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

                          OdedDvirO תגובה 1 תגובה אחרונה
                          0
                          • פ פלורידה

                            @odeddvir

                            כשלון ביבוא

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

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

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

                            פ 2 תגובות תגובה אחרונה
                            1
                            • OdedDvirO OdedDvir

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

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

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

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

                              תגובה 1 תגובה אחרונה
                              1
                              • OdedDvirO OdedDvir

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

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

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

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

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

                                OdedDvirO תגובה 1 תגובה אחרונה
                                0
                                • פ פלורידה

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

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

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

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

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

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


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

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

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