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

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

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

תנאי בVBA לפי רשימה

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

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

    תודה לעוזרים.

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

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

      חנון המרבהח תגובה 1 תגובה אחרונה
      1
      • חנון המרבהח מנותק
        חנון המרבהח מנותק
        חנון המרבה
        השיב לOdedDvir ב נערך לאחרונה על ידי
        #3

        @odeddvir

        @חנון-המרבה אמר בתנאי בVBA לפי רשימה:

        אני רוצה לכתוב תנאי ב VBA

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

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

          לגבי UserForm ניתן ליצור רשימה משולבת עם הגבלה על רשימת הערכים. פשוט תשנה את מאפיין הסגנון Style של הרשימה ל fmStyleDropDownList כך:

          myCombobox.Style = fmStyleDropDownList
          
          חנון המרבהח תגובה 1 תגובה אחרונה
          2
          • חנון המרבהח מנותק
            חנון המרבהח מנותק
            חנון המרבה
            השיב לOdedDvir ב נערך לאחרונה על ידי חנון המרבה
            #5

            @odeddvir אני לא מנסה להגביל את הקלט של ׁInputBox, אני רוצה לקחת את הערך של הInputBox ואז לבדוק את זה אם זה תואם לקריטוריונים מסויימים.
            עכשיו אם אני רוצה שזה יהיה תואם ל א או ב או ג וכו' אני צריך לכתוב כזה קוד: (הדוגמא הוא לגבי שדה ComboBox1 בUserForm)

                If Not (ComboBox1.Value = "א" Or ComboBox1.Value = "ב" Or ComboBox1.Value = "ג" Or ComboBox1.Value = "ד" Or ComboBox1.Value = "ה" Or ComboBox1.Value = "ו" Or ComboBox1.Value = "ז") Then
            
            

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

            (ספיציפי ל ComboBox1 , ענית לי כבר

            פשוט תשנה את מאפיין הסגנון Style של הרשימה ל fmStyleDropDownList

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

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

              אפשר לכתוב פונקצית מעטפת (wrapper) ל-InputBox, שניתן להעביר אליה רשימת ערכים מותרים.

              בדוגמא הבאה ניתן להעביר רשימת ערכים מותרים המופרדים על ידי צינור pipe |.

              Public Function LimitedInputBox(prompt As String, title As String, valuesList As String) As String
              
                  Dim userInput As String
                  Dim done As Boolean: done = False
                  Dim values As Variant
                  values = Split(valuesList, "|")
                  
                  Do
                      userInput = InputBox(prompt, title)
                      If Len(userInput) > 0 Then
                         Dim val As Variant
                         For Each val In values
                              If userInput = val Then
                                  done = True
                                  Exit For
                              End If
                         Next val
                      End If
                  Loop Until done
                  LimitedInputBox = userInput
              End Function
              

              כעת ניתן לקרוא לפונקציה כך:

              selectedColor = LimitedInputBox ("Please enter a color (white, black, or blue):", "Color selection", "white|black|blue")
              

              או בדוגמא שלך (סדר הפרמטרים מוצג הפוך בגלל העברית...):

              selectedClass = LimitedInputBox ("בחר כיתה מ-א עד ח:", "בחירת כיתה", "א|ב|ג|ד|ה|ו|ז|ח")
              

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

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

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

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

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