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

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

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

Hello World 😉

מתוזמן נעוץ נעול הועבר תכנות
3 פוסטים 2 כותבים 132 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • The shadowT מנותק
    The shadowT מנותק
    The shadow
    כתב ב נערך לאחרונה על ידי
    #1

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

    רציתי לסנן עם הסליקרים של אקסל חודש הנוכחי
    מצרף את התוצאה הרצויה שב"ה עובדת
    סינון.gif

    וזה הקוד:

    Sub סנן_להיום()
        
    'שם הסליקר
    SlicerMonth = "Slicer_חודש2"
    SlicerYear = "Slicer_שנה2"
       
    'ביטול סינונים קודמים
    ActiveWorkbook.SlicerCaches(SlicerMonth).ClearManualFilter
    ActiveWorkbook.SlicerCaches(SlicerYear).ClearManualFilter
    
    'ספירת פריטים בסליקר
    Dim countSlicerMonth As Integer
    Dim countSlicerYear As Integer
    countSlicerMonth = ActiveWorkbook.SlicerCaches(SlicerMonth).SlicerItems.Count - 1
    countSlicerYear = ActiveWorkbook.SlicerCaches(SlicerYear).SlicerItems.Count - 1
            
    'כיבוי כל הפריטים
    Dim i As Integer
    For i = 1 To countSlicerMonth
        ActiveWorkbook.SlicerCaches(SlicerMonth).SlicerItems(i).Selected = False
    Next i
    
    For i = 1 To countSlicerYear
        ActiveWorkbook.SlicerCaches(SlicerYear).SlicerItems(i).Selected = False
    Next i
    
    'הגדרת התאריכים
    Dim myMonth As String
    Dim myYear As String
    myMonth = Month(Date)
    myYear = Year(Date)
    
    
    'הפעלת התאריכים
    ActiveWorkbook.SlicerCaches(SlicerMonth).SlicerItems(myMonth).Selected = True
    ActiveWorkbook.SlicerCaches(SlicerYear).SlicerItems(myYear).Selected = True
      
    End Sub
    
    

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

    תודה!!

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

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

      כעת שאלות:

      ActiveWorkbook.SlicerCaches(SlicerYear).SlicerItems.Count - 1
      

      למה המינוס 1?

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

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

      The shadowT תגובה 1 תגובה אחרונה
      4
      • The shadowT מנותק
        The shadowT מנותק
        The shadow
        השיב לdovid ב נערך לאחרונה על ידי
        #3

        @dovid אמר בHello World 😉:

        למשל לכאורה הוא יקרוס אם מישהו ינקה את הסינונים

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

        @dovid אמר בHello World 😉:

        כעת שאלות:
        ActiveWorkbook.SlicerCaches(SlicerYear).SlicerItems.Count - 1

        למה המינוס 1?

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

        ותודה על העידוד!
        מחזק!

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

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

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

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