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

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

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

מאקרו רץ בלולאה

מתוזמן נעוץ נעול הועבר תוכנה
22 פוסטים 4 כותבים 397 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • O מנותק
    O מנותק
    one1010
    השיב לארי ב נערך לאחרונה על ידי
    #13

    @ארי כתב במאקרו רץ בלולאה:

    @one1010 אכן כך.

    יש פתרון?!

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

    Sub SumYellowCells()
    Dim rng As Range
    Dim cell As Range
    Dim sum As Double

    Set rng = Range("A7:AG355") '
    
    For Each cell In rng.SpecialCells(xlCellTypeConstants, 2).Cells
        If cell.DisplayFormat.Interior.Color = RGB(255, 255, 0) Then ' זיהוי תאים מודגשים בצהוב
            If cell.HasFormula Then ' בדיקה אם התא הנוכחי הוא מחזורי
                If InStr(1, cell.Formula, "SUM(") = 0 Then ' בדיקה אם התא הוא מסכם עצמאי
                    sum = sum + cell.Value
                End If
            End If
        End If
    Next cell
    
    MsgBox "The sum of yellow cells that are not circular references is: " & sum
    

    End Sub

    רק שים לב כמו שכתבתי למעלה שהוא מציג גם תאריכים לא צמודים.

    כמו איזה?

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

      @one1010 מה אתה מנסה לכתוב? שהוא יעבור בלולאה רק על התאים שאתה בוחר?
      תאריכים לא צמודים כוונתי הייתה שאם לדוג' בתא B12 יש תאריך ובתאים D12 וF12 יש אותו תאריך הוא יודיע עליו, ולאו דוקא בתאים צמודים זל"ז.

      O תגובה 1 תגובה אחרונה
      0
      • O מנותק
        O מנותק
        one1010
        השיב לארי ב נערך לאחרונה על ידי
        #15

        @ארי כתב במאקרו רץ בלולאה:

        @one1010 מה אתה מנסה לכתוב? שהוא יעבור בלולאה רק על התאים שאתה בוחר?

        לא בלולאה, אלא שיחפש מחזוריות בתאים צבועים מתוך כל הגליון

        תאריכים לא צמודים כוונתי הייתה שאם לדוג' בתא B12 יש תאריך ובתאים D12 וF12 יש אותו תאריך הוא יודיע עליו, ולאו דוקא בתאים צמודים זל"ז.

        אני לא רוצה שיזהה 15-18 לחודש הראשון אלא מחזוריות בחודשים נפרדים. כמו 15 לחודש בראשון ובשני ובשלישי וגם 15 בראשון 16 בשני ו17 בשלישי

        א dovidD 2 תגובות תגובה אחרונה
        0
        • א מנותק
          א מנותק
          ארי
          השיב לone1010 ב נערך לאחרונה על ידי
          #16

          @one1010 הקוד הזה עובד לך?

          Sub SumYellowCells()
          Dim rng As Range
          Dim cell As Range
          Dim sum As Double
          
          Set rng = Range("A7:AG355")
          
          For i = 1 To rng.Count
              If rng.Cells(i).Interior.Color = RGB(255, 255, 0) Then
                  If rng.Cells(i).HasFormula = False Then
                      If InStr(1, rng.Cells(i).Formula, "SUM(") = 0 Then
                          sum = sum + rng.Cells(i).Value
                      End If
                  End If
              End If
          Next i
          
          MsgBox "The sum of yellow cells that are not circular references is: " & sum
          End Sub
          

          הוא אמור לעבור בלולאה על כל התאים בצבע צהוב (בטווח שבין A7 לAG355) ולסכם אותם (בתנאי שהם לא נוסחה ולא סיכום).

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

          @one1010 כתב במאקרו רץ בלולאה:

          וגם 15 בראשון 16 בשני ו17 בשלישי

          נראה לי שבשביל זה אתה צריך משהו יותר מתוחכם ממה שאני יודע....

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

            @one1010 סתם שאלה, מי כתב לך את הקוד הראשון?

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

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

            O תגובה 1 תגובה אחרונה
            0
            • OdedDvirO מנותק
              OdedDvirO מנותק
              OdedDvir
              השיב לone1010 ב נערך לאחרונה על ידי
              #18

              @one1010 כתב במאקרו רץ בלולאה:

              For i = 1 To rangeToCheck.Count - 2
              For j = i + 1 To rangeToCheck.Count - 1
              For k = j + 1 To rangeToCheck.Count

              1. השורות האלו גורמות לי צמרמורת...לכאורה יש כאן חוסר יעילות גדול בכמות הבדיקות שנעשית.
              2. אני מודה שלא התעמקתי בכל השרשור, וממילא לא הבנתי מה בדיוק הבדיקה, אבל אני מוכן לעזור לך אם תפרט בדיוק מה אתה רוצה שהקוד יעשה, מא' ועד ת'.
              O תגובה 1 תגובה אחרונה
              2
              • O מנותק
                O מנותק
                one1010
                השיב לdovid ב נערך לאחרונה על ידי
                #19

                @dovid כתב במאקרו רץ בלולאה:

                @one1010 סתם שאלה, מי כתב לך את הקוד הראשון?

                נראה לי שאתה יודע את התשובה...

                dovidD תגובה 1 תגובה אחרונה
                0
                • O מנותק
                  O מנותק
                  one1010
                  השיב לOdedDvir ב נערך לאחרונה על ידי
                  #20

                  @OdedDvir כתב במאקרו רץ בלולאה:

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

                  הקוד שאני רוצה הוא לכאורה מאד ארוך, לכן זה יהיה מוגזם שתעזור לי בהכל....
                  אבל אולי שלב שלב...
                  אני רוצה קוד שיזהה תאריכים מסומנים בצהוב ובמידה וביניהם יש מחזוריות מסויימת שחוזרת על עצמה 3 פעמים שיסמן אותם.
                  לדוגמא 15.01 15.02 15.03
                  וגם 15.01 16.02 17.03
                  וכן עוד כאלו בסגנון הזה

                  OdedDvirO תגובה 1 תגובה אחרונה
                  0
                  • OdedDvirO מנותק
                    OdedDvirO מנותק
                    OdedDvir
                    השיב לone1010 ב נערך לאחרונה על ידי
                    #21

                    @one1010 אני לא מפחד מלכתוב קוד ארוך, אבל אני נרתע מלהתחיל לכתוב אפילו שורה אחת בלי לדעת בדיוק מה המטרה. אתה יכול להגדיר בדיוק את סוגי המחזוריות המבוקשים?
                    לדוגמא:
                    א. דילוגים של טווח קבוע של ימים, כשהטווח נע מ-1 עד 25
                    ב ימים זהים בחודשים עוקבים
                    ג. ימים עוקבים בחודשים עוקבים
                    וכו'

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

                      @one1010 כתב במאקרו רץ בלולאה:

                      נראה לי שאתה יודע את התשובה...

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

                      אולי זה בגלל זה:

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

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

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

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

                      תגובה 1 תגובה אחרונה
                      0
                      • dovidD dovid נעל נושא זה ב-

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

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

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