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

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

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

התייעצות | בניית מסד נתונים לתכנת "הדרן עלך" | אקסל

מתוזמן נעוץ נעול הועבר תכנות
74 פוסטים 4 כותבים 4.9k צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • OdedDvirO OdedDvir

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

    Public DataWB As Workbook
    

    כעת בפתיחת החוברת שלך, תריץ את הקוד הבא:

    Set DataWB = GetObject("Hadran_Data.xlsx")
    

    ולפני הסגירה תריץ:

    DataWB.Close SaveChanges:=True
    

    כי מסתמא תרצה לשמור את השינויים שביצעת בקובץ הדאטא.

    בין לבין, תוכל לגשת לקובץ הדאטא מכל מקום בקוד על ידי האובייקט DataWB.

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

    @odeddvir

    אני מנסה לכתוב איליו כך:

    Application.Goto Workbooks(DataWB).Sheets("גיליון1").Range("a1") = Range("a1").Value
    

    מקבל שגיאה
    Type mismatch

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

      @odeddvir

      אני מנסה לכתוב איליו כך:

      Application.Goto Workbooks(DataWB).Sheets("גיליון1").Range("a1") = Range("a1").Value
      

      מקבל שגיאה
      Type mismatch

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

      @פלורידה צ"ל כך:

      DataWB.Sheets("גיליון1").Range("a1")
      
      תגובה 1 תגובה אחרונה
      3
      • OdedDvirO OdedDvir

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

        Public DataWB As Workbook
        

        כעת בפתיחת החוברת שלך, תריץ את הקוד הבא:

        Set DataWB = GetObject("Hadran_Data.xlsx")
        

        ולפני הסגירה תריץ:

        DataWB.Close SaveChanges:=True
        

        כי מסתמא תרצה לשמור את השינויים שביצעת בקובץ הדאטא.

        בין לבין, תוכל לגשת לקובץ הדאטא מכל מקום בקוד על ידי האובייקט DataWB.

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

        @odeddvir

        כיצד ניתן להחזיר את הקובץ שיפעל כרגיל?

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

          @odeddvir

          כיצד ניתן להחזיר את הקובץ שיפעל כרגיל?

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

          @פלורידה לא הבנתי מה כוונתך.

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

            @פלורידה לא הבנתי מה כוונתך.

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

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

            631daada-a1a4-4c90-8e60-6b67f0a0f7f4-image.png

            ניסיתי להגדיר ככה:

            DataWB.Visible = True

            אך קיבלתי שגיאה: Object doesn't support this property or method

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

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

              631daada-a1a4-4c90-8e60-6b67f0a0f7f4-image.png

              ניסיתי להגדיר ככה:

              DataWB.Visible = True

              אך קיבלתי שגיאה: Object doesn't support this property or method

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

              @פלורידה מעניין... לא הצלחתי לשחזר את התופעה אצלי.🤔
              בכל מקרה, פתח את הקובץ דאטא, עבור לעורך ה-VBA על ידי מקש F11 ובחלון ה- Immediate למטה תריץ:

              ThisWorkbook.Windows(1).Visible = True
              

              האם כעת מוצג?

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

                @פלורידה מעניין... לא הצלחתי לשחזר את התופעה אצלי.🤔
                בכל מקרה, פתח את הקובץ דאטא, עבור לעורך ה-VBA על ידי מקש F11 ובחלון ה- Immediate למטה תריץ:

                ThisWorkbook.Windows(1).Visible = True
                

                האם כעת מוצג?

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

                @odeddvir אמר בהתייעצות | בניית מסד נתונים לתכנת "הדרן עלך" | אקסל:

                האם כעת מוצג?

                אכן מוצג
                מה המספר (1) מבטא?
                על מנת שאדע כיצד לשלב אותו בקוד

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

                  @odeddvir אמר בהתייעצות | בניית מסד נתונים לתכנת "הדרן עלך" | אקסל:

                  האם כעת מוצג?

                  אכן מוצג
                  מה המספר (1) מבטא?
                  על מנת שאדע כיצד לשלב אותו בקוד

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

                  @פלורידה את אינדקס החלון מתוך החלונות הפעילים. ניתן לציין לפי מספר או לפי כותרת:

                  Application.Windows(1).Caption = "שמוליק"
                  Application.Windows("שמוליק").ActiveSheet.Calculate
                  
                  פ תגובה 1 תגובה אחרונה
                  0
                  • OdedDvirO OdedDvir

                    @פלורידה את אינדקס החלון מתוך החלונות הפעילים. ניתן לציין לפי מספר או לפי כותרת:

                    Application.Windows(1).Caption = "שמוליק"
                    Application.Windows("שמוליק").ActiveSheet.Calculate
                    
                    פ
                    פ
                    פלורידה
                    כתב ב נערך לאחרונה על ידי
                    #67

                    @odeddvir אמר בהתייעצות | בניית מסד נתונים לתכנת "הדרן עלך" | אקסל:

                    Application.Windows(1).Caption = "שמוליק"

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

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

                    כאשר הוא יהפך לפעיל הוא יחזור להיות (1) וכל הקוד ישתבש? ואם נתתי לו שם, זה ישנה את העובדה הזו?

                    הפיתרון לתת כותרת, גם היא צריכה קודם לדעת את המיקום באינדקס

                    אני מרגיש שדיברתי יותר מידי... מה חסר לי בהבנה?

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

                      @odeddvir אמר בהתייעצות | בניית מסד נתונים לתכנת "הדרן עלך" | אקסל:

                      Application.Windows(1).Caption = "שמוליק"

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

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

                      כאשר הוא יהפך לפעיל הוא יחזור להיות (1) וכל הקוד ישתבש? ואם נתתי לו שם, זה ישנה את העובדה הזו?

                      הפיתרון לתת כותרת, גם היא צריכה קודם לדעת את המיקום באינדקס

                      אני מרגיש שדיברתי יותר מידי... מה חסר לי בהבנה?

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

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

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

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

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

                        @odeddvir בוודאי יש לך גירסת אופיס 365
                        לי יש 2019

                        הצורה שהכנסתי את זה היא כך:

                        Sub open1()
                        Set DataWB = GetObject("C:\Desktop\Hadran_Data.xlsx")
                        DataWB.Visible = True
                        End Sub
                        

                        וכך

                        Sub סגור()
                        DataWB.Visible = True
                        DataWB.Close SaveChanges:=True
                        End Sub
                        

                        בריצה בחלון המיידי מתקבלת השגיאה הבאה:

                        Run-time error '424':

                        Object required

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

                          @odeddvir בוודאי יש לך גירסת אופיס 365
                          לי יש 2019

                          הצורה שהכנסתי את זה היא כך:

                          Sub open1()
                          Set DataWB = GetObject("C:\Desktop\Hadran_Data.xlsx")
                          DataWB.Visible = True
                          End Sub
                          

                          וכך

                          Sub סגור()
                          DataWB.Visible = True
                          DataWB.Close SaveChanges:=True
                          End Sub
                          

                          בריצה בחלון המיידי מתקבלת השגיאה הבאה:

                          Run-time error '424':

                          Object required

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

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

                          Sub open1()
                          Set DataWB = Workbooks.Open("C:\Desktop\Hadran_Data.xlsx")
                          End Sub
                          

                          ותו לא מידי.

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

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

                            Sub open1()
                            Set DataWB = Workbooks.Open("C:\Desktop\Hadran_Data.xlsx")
                            End Sub
                            

                            ותו לא מידי.

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

                            @odeddvir אמר בהתייעצות | בניית מסד נתונים לתכנת "הדרן עלך" | אקסל:

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

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

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

                              @odeddvir אמר בהתייעצות | בניית מסד נתונים לתכנת "הדרן עלך" | אקסל:

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

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

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

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

                              DataWB.Sheets(1).Visible = True
                              

                              או

                              DataWB.Windows(1).Visible = True
                              
                              תגובה 1 תגובה אחרונה
                              2
                              • OdedDvirO OdedDvir

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

                                Public DataWB As Workbook
                                

                                כעת בפתיחת החוברת שלך, תריץ את הקוד הבא:

                                Set DataWB = GetObject("Hadran_Data.xlsx")
                                

                                ולפני הסגירה תריץ:

                                DataWB.Close SaveChanges:=True
                                

                                כי מסתמא תרצה לשמור את השינויים שביצעת בקובץ הדאטא.

                                בין לבין, תוכל לגשת לקובץ הדאטא מכל מקום בקוד על ידי האובייקט DataWB.

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

                                @odeddvir אמר בהתייעצות | בניית מסד נתונים לתכנת "הדרן עלך" | אקסל:

                                Set DataWB = GetObject("Hadran_Data.xlsx")

                                ישנו הסבר מדוע אינו פועל בנתיב יחסי?

                                Set DataWB = GetObject("\Hadran_Data.xlsx")
                                
                                OdedDvirO תגובה 1 תגובה אחרונה
                                0
                                • פ פלורידה

                                  @odeddvir אמר בהתייעצות | בניית מסד נתונים לתכנת "הדרן עלך" | אקסל:

                                  Set DataWB = GetObject("Hadran_Data.xlsx")

                                  ישנו הסבר מדוע אינו פועל בנתיב יחסי?

                                  Set DataWB = GetObject("\Hadran_Data.xlsx")
                                  
                                  OdedDvirO
                                  OdedDvirO
                                  OdedDvir
                                  כתב ב נערך לאחרונה על ידי
                                  #74

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

                                  תגובה 1 תגובה אחרונה
                                  2

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

                                  נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

                                  בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

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


                                  • 1
                                  • 2
                                  • 3
                                  • 4
                                  בא תתחבר לדף היומי!
                                  • התחברות

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

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