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

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

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

איך עושים ארוע באקסל בעת שינוי בתא מסוים

מתוזמן נעוץ נעול הועבר תכנות
אקסל
14 פוסטים 3 כותבים 1.1k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • Y מנותק
    Y מנותק
    yits
    כתב ב נערך לאחרונה על ידי yits
    #1

    אני רוצה להפעיל ארוע בשינוי נתון בתאים מסוימים

    עשיתי ארוע בעת שינוי בגיליון,
    אם התא הנבחר נמצא תחת שם מסוים (Place) אני מבצע את הפונקציה וממשיך,
    ולאחר הפונקציה אני עושה רענון לתונים בדף (מכיוון שאני מתחבר מחדש ל DB ושולף נתונים).

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

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

    לקניה והנחות ב KSP כנסו מכאן.
    למוצרים עם הנחה מכאן.

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

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

      איך אפשר לעשות את הארוע בצורה יותר תקינה?

      לקניה והנחות ב KSP כנסו מכאן.
      למוצרים עם הנחה מכאן.

      תגובה 1 תגובה אחרונה
      0
      • chagoldC מנותק
        chagoldC מנותק
        chagold
        כתב ב נערך לאחרונה על ידי
        #3

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

        Y תגובה 1 תגובה אחרונה
        1
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          כתב ב נערך לאחרונה על ידי dovid
          #4

          @yits אמר באיך עושים ארוע באקסל בעת שינוי בתא מסוים:

          Place

          תשתמש באירוע Change, ותבדוק אם הארגומנט Target בטווח הרצוי (אני מניח שאתה מתכוון ב"שם" לשם טווח, נכון?).
          כדי למנוע רקורסיה תצהיר על דגל שימנע ביצוע של האירוע עד לסוף הפעולה.

          Dim ToggleSuspenEvent As Boolean
          
          Private Sub Worksheet_Change(ByVal Target As Range)
              If ToggleSuspenEvent Then End
              If Intersect(Target, Me.Range("Place")) Is Nothing Then End
          
              ToggleSuspenEvent = True
              
              'תעדכן מה שבא לך פה'
          
              ToggleSuspenEvent = False
          End Sub
          

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

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

          Y 2 תגובות תגובה אחרונה
          2
          • Y מנותק
            Y מנותק
            yits
            השיב לchagold ב נערך לאחרונה על ידי
            #5

            @chagold אמר באיך עושים ארוע באקסל בעת שינוי בתא מסוים:

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

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

            לקניה והנחות ב KSP כנסו מכאן.
            למוצרים עם הנחה מכאן.

            תגובה 1 תגובה אחרונה
            0
            • Y מנותק
              Y מנותק
              yits
              השיב לdovid ב נערך לאחרונה על ידי
              #6

              @dovid אמר באיך עושים ארוע באקסל בעת שינוי בתא מסוים:

              ותבדוק אם הארגומנט Target בטווח הרצוי (אני מניח שאתה מתכוון ב"שם" לשם טווח, נכון?).

              זה מה שאני עושה כרגע.

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

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

              לקניה והנחות ב KSP כנסו מכאן.
              למוצרים עם הנחה מכאן.

              תגובה 1 תגובה אחרונה
              0
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                כתב ב נערך לאחרונה על ידי dovid
                #7

                אני לא מבין. התא שעליו אתה עוקב, הוא עצמו מתרענן ממקור חיצוני? איך זה הגיוני?

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

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

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

                  אני משנה תא שיש לו בחירה מתוך רשימה,
                  הרשימה נמצאת על הגיליון בצד ימין.

                  לאחר שינוי אני מעדכן כמה דברים, ואח"כ עושה רענון לעמודה בצד ימין.

                  לקניה והנחות ב KSP כנסו מכאן.
                  למוצרים עם הנחה מכאן.

                  תגובה 1 תגובה אחרונה
                  0
                  • Y מנותק
                    Y מנותק
                    yits
                    השיב לdovid ב נערך לאחרונה על ידי
                    #9

                    @dovid אמר באיך עושים ארוע באקסל בעת שינוי בתא מסוים:

                    תשתמש באירוע Change.

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

                    לקניה והנחות ב KSP כנסו מכאן.
                    למוצרים עם הנחה מכאן.

                    dovidD תגובה 1 תגובה אחרונה
                    0
                    • dovidD מנותק
                      dovidD מנותק
                      dovid ניהול
                      כתב ב נערך לאחרונה על ידי
                      #10

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

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

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

                      תגובה 1 תגובה אחרונה
                      1
                      • dovidD מנותק
                        dovidD מנותק
                        dovid ניהול
                        השיב לyits ב נערך לאחרונה על ידי
                        #11

                        @yits אמר באיך עושים ארוע באקסל בעת שינוי בתא מסוים:

                        @dovid אמר באיך עושים ארוע באקסל בעת שינוי בתא מסוים:

                        תשתמש באירוע Change.

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

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

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

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

                        Y תגובה 1 תגובה אחרונה
                        1
                        • Y מנותק
                          Y מנותק
                          yits
                          כתב ב נערך לאחרונה על ידי
                          #12

                          אני יסביר באריכות

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

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

                          לאחר בחירה של מתפלל מתוך הרשימה קופץ ארוע,
                          לאחר מכן מתבצע עדכון אוטמטי לגיליון מקושר (DlookUp לתא),
                          ומתבצע עדכון ל DB,
                          ועכשיו אנחנו עושים רענון נתונים (של המתפללים שאין להם מקום).

                          לקניה והנחות ב KSP כנסו מכאן.
                          למוצרים עם הנחה מכאן.

                          תגובה 1 תגובה אחרונה
                          0
                          • Y מנותק
                            Y מנותק
                            yits
                            השיב לdovid ב נערך לאחרונה על ידי
                            #13

                            @dovid אמר באיך עושים ארוע באקסל בעת שינוי בתא מסוים:

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

                            אתה צודק באמת אני השתמשתי ב Change, ולא כמו שכתבתי.
                            בצעתי עריכה בשאלה

                            לקניה והנחות ב KSP כנסו מכאן.
                            למוצרים עם הנחה מכאן.

                            תגובה 1 תגובה אחרונה
                            0
                            • dovidD מנותק
                              dovidD מנותק
                              dovid ניהול
                              כתב ב נערך לאחרונה על ידי
                              #14

                              אכן בעיה.

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

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

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

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

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

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