דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
לוגו מותג
  1. דף הבית
  2. תוכנות
  3. יישומי אופיס
  4. אקסל
  5. עזרה הדדית - אקסל
  6. בקשת מידע | מאקרו שמופעל בשינוי תא מסוים

בקשת מידע | מאקרו שמופעל בשינוי תא מסוים

מתוזמן נעוץ נעול הועבר עזרה הדדית - אקסל
13 פוסטים 3 כותבים 105 צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    ארפכשד
    כתב נערך לאחרונה על ידי
    #1

    ניסיתי לכתוב את הקוד הבא

    Private Sub Worksheet_Change(ByVal Target As Range)   
        If Range("l9") < 0 Then
        MsgBox "שלום"
        End If
    End Sub
    

    אך זה מפעיל את המאקרו בכל שינוי תא
    ובקוד הבא (שלקחתי מכאן)

    Private Sub Worksheet_Change(ByVal Target As Range)
                If Target.Address = "$l$9" Then
                 'Do something
              
        If Range("l9") < 0 Then
        MsgBox "שלום"
        End If
       
       End If
    End Sub
    

    לא קורה כלום גם בשינוי התא המצוין

    א תגובה 1 תגובה אחרונה
    0
    • א ארפכשד

      ניסיתי לכתוב את הקוד הבא

      Private Sub Worksheet_Change(ByVal Target As Range)   
          If Range("l9") < 0 Then
          MsgBox "שלום"
          End If
      End Sub
      

      אך זה מפעיל את המאקרו בכל שינוי תא
      ובקוד הבא (שלקחתי מכאן)

      Private Sub Worksheet_Change(ByVal Target As Range)
                  If Target.Address = "$l$9" Then
                   'Do something
                
          If Range("l9") < 0 Then
          MsgBox "שלום"
          End If
         
         End If
      End Sub
      

      לא קורה כלום גם בשינוי התא המצוין

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

      @ארפכשד תשנה ל-

      If Target.Address = "$L$9" Then
      

      לא יודע למה צריך אות גדולה, כשעושים

      MsgBox Target.address
      

      הוא מציג אות קטנה, וגם ב Range אתה קורא לו באות קטנה

      א תגובה 1 תגובה אחרונה
      0
      • א אופיר123

        @ארפכשד תשנה ל-

        If Target.Address = "$L$9" Then
        

        לא יודע למה צריך אות גדולה, כשעושים

        MsgBox Target.address
        

        הוא מציג אות קטנה, וגם ב Range אתה קורא לו באות קטנה

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

        @אופיר123 ככה בדיוק כתבתי לא הבנתי היכן השינוי

        א תגובה 1 תגובה אחרונה
        0
        • א ארפכשד

          @אופיר123 ככה בדיוק כתבתי לא הבנתי היכן השינוי

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

          @ארפכשד אות L גדולה

          ראית את הספויילר למעלה?

          א תגובה 1 תגובה אחרונה
          0
          • א אופיר123

            @ארפכשד אות L גדולה

            ראית את הספויילר למעלה?

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

            @אופיר123 לא חשבתי שזה משנה משהו
            ובכל מקרה שיניתי וזה עדיין לא עובד

            א תגובה 1 תגובה אחרונה
            0
            • א ארפכשד

              @אופיר123 לא חשבתי שזה משנה משהו
              ובכל מקרה שיניתי וזה עדיין לא עובד

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

              @ארפכשד אצלי שיניתי ועבד

              שמת לב שL9 צריך להיות קטן מאפס

              א תגובה 1 תגובה אחרונה
              0
              • א אופיר123

                @ארפכשד אצלי שיניתי ועבד

                שמת לב שL9 צריך להיות קטן מאפס

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

                @אופיר123
                עכשיו הבנתי..
                זה פועל רק אם משנים את תוכן התא ידנית
                אבל אם בתא יש נוסחה והתוכן משתנה אוטומטי (למשל אם כתוב שם =A1 ובתא A1 השתנה התוכן) אז זה לא פועל..
                יש פתרון לזה?

                ד א 2 תגובות תגובה אחרונה
                0
                • א ארפכשד

                  @אופיר123
                  עכשיו הבנתי..
                  זה פועל רק אם משנים את תוכן התא ידנית
                  אבל אם בתא יש נוסחה והתוכן משתנה אוטומטי (למשל אם כתוב שם =A1 ובתא A1 השתנה התוכן) אז זה לא פועל..
                  יש פתרון לזה?

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

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

                  arcivaty@gmail.com

                  א תגובה 1 תגובה אחרונה
                  0
                  • א ארפכשד

                    @אופיר123
                    עכשיו הבנתי..
                    זה פועל רק אם משנים את תוכן התא ידנית
                    אבל אם בתא יש נוסחה והתוכן משתנה אוטומטי (למשל אם כתוב שם =A1 ובתא A1 השתנה התוכן) אז זה לא פועל..
                    יש פתרון לזה?

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

                    @ארפכשד גם עם אות קטנה עבד לך? כי לי לא

                    א תגובה 1 תגובה אחרונה
                    0
                    • א אופיר123

                      @ארפכשד גם עם אות קטנה עבד לך? כי לי לא

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

                      @אופיר123 לא רק אחרי ששינתי.
                      באמת שכחתי להודות לך.. תודה!!

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

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

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

                        @דאבל אשמח אם תפרט יותר

                        א תגובה 1 תגובה אחרונה
                        0
                        • א ארפכשד

                          @דאבל אשמח אם תפרט יותר

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

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

                          איך לבדוק את הערך האם הוא השתנה זה קצת מורכב עי' כאן

                          א תגובה 1 תגובה אחרונה
                          0
                          • א אופיר123

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

                            איך לבדוק את הערך האם הוא השתנה זה קצת מורכב עי' כאן

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

                            תשובת @ רובי בוט

                            נקודות חשובות:

                            אם הערך ב-L9 משתנה באמצעות נוסחה (ולא בעריכה ישירה), המאקרו לא יופעל כי Worksheet_Change מתרחש רק כשמשנים את התא ידנית או דרך קוד. במקרה כזה יש להשתמש ב-Worksheet_Calculate או לבדוק שינויים באופן שונה.
                            אם הערך ב-L9 נקבע על ידי נוסחה ואתה רוצה שההודעה תופיע כשהערך הופך לשלילי, אפשר להשתמש בקוד כזה ב-Worksheet_Calculate:

                            vba
                            Dim prevValue As Variant
                            
                            Private Sub Worksheet_Calculate()
                                Dim currValue As Variant
                                currValue = Me.Range("L9").Value
                            
                                If IsNumeric(currValue) Then
                                    If currValue < 0 Then
                                        If prevValue >= 0 Or IsEmpty(prevValue) Then
                                            MsgBox "שלום"
                                        End If
                                    End If
                                End If
                            
                            prevValue = currValue
                                End Sub
                            

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

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

                            • התחברות

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

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