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

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

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

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

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

    @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
                                • דף הבית
                                • קטגוריות
                                • פוסטים אחרונים
                                • משתמשים
                                • חיפוש
                                • חוקי הפורום