راهنمای در مورد چک باکس

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • میثم مقدم نیا

    • 2017/03/23
    • 558
    • 41.00

    پرسش راهنمای در مورد چک باکس

    سلام
    چطور میتونم با انتخاب یک
    CheckBox در یوزر فرم CheckBox دیگر را انتخاب کنم
    من برای این کار از کد زیر استفاده کرد

    کد PHP:
    Private Sub CheckBox_01_Click()

        
    Dim x As Control    
    For Each x In Me.Controls       
     
    If TypeOf x Is MSForms.CheckBox Then x.Value = True    
    Next    

    End Sub 
    ولی مشکلی تو این کد هست
    این کد همه
    CheckBox موجود در یوزر فرم را انتخاب میکنه همینطور که در تصویر میبینید من با استفاده از Frameسه تا گروه
    CheckBox دارم

    Click image for larger version

Name:	Untitled.png
Views:	1
Size:	12.8 کیلو بایت
ID:	149291

    یک دیگه هم مشکل هست کد Unselect All هست که با برداشتن تک انتخاب همه تیک ها غییر فعا بشوند

    فایل های پیوست شده
    [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]
  • generalsamad
    مدير تالار توابع

    • 2014/06/22
    • 1496

    #2
    با سلام
    از این کد استفاده کنید
    کد PHP:
    Private Sub CheckBox_01_Click()
    Dim x As msforms.Control
    For Each x In Frame1.Controls
        
    If TypeOf x Is msforms.CheckBox Then
            x
    .Value = True
        End 
    If
    Next
    End Sub 
    برای چک باکس های هر ستون فریم مربوطه را در کد تغییر دهید
    [CENTER]
    [SIGPIC][/SIGPIC]
    [/CENTER]

    کامنت

    • میثم مقدم نیا

      • 2017/03/23
      • 558
      • 41.00

      #3
      نوشته اصلی توسط generalsamad
      با سلام
      از این کد استفاده کنید
      کد PHP:
      Private Sub CheckBox_01_Click()
      Dim x As msforms.Control
      For Each x In Frame1.Controls
          
      If TypeOf x Is msforms.CheckBox Then
              x
      .Value = True
          End 
      If
      Next
      End Sub 
      برای چک باکس های هر ستون فریم مربوطه را در کد تغییر دهید
      استاد ممنون بابت کدی که فرستادید

      این کد شما یک اشکال کوچیک داره که فقط Select میکنه و UnSelect نمیکنه

      با اجازه شما کدتون را من به شکل زیر تغییر دادم

      کد PHP:
      Private Sub CheckBox_01_Click()
      Dim x As msforms.Control
      For Each x In Frame1.Controls
          
      If TypeOf x Is msforms.CheckBox Then
         
      If Me.Controls(x.Name).Value = True Then
          CheckBox1
      .Value = True
          CheckBox2
      .Value = True
          CheckBox3
      .Value = True
          CheckBox4
      .Value = True
          CheckBox5
      .Value = True
          CheckBox6
      .Value = True
          CheckBox7
      .Value = True
          CheckBox8
      .Value = True
          CheckBox9
      .Value = True
          CheckBox10
      .Value = True
          CheckBox11
      .Value = True
          CheckBox12
      .Value = True
      Else
         
      CheckBox1.Value = False
          CheckBox2
      .Value = False
          CheckBox3
      .Value = False
          CheckBox4
      .Value = False
          CheckBox5
      .Value = False
          CheckBox6
      .Value = False
          CheckBox7
      .Value = False
          CheckBox8
      .Value = False
          CheckBox9
      .Value = False
          CheckBox10
      .Value = False
          CheckBox11
      .Value = False
          CheckBox12
      .Value = False

          End 
      If
      End If
      Next
      End Sub 

      ولی کد طولانی شد

      یه کد جایگزینم نوشتم ببینید ایراد یا اشکالی نداره

      کد PHP:
      Private Sub CheckBox_01_Click()

          
      CheckBox1.Value = CheckBox_01.Value
          CheckBox2
      .Value = CheckBox_01.Value
          CheckBox3
      .Value = CheckBox_01.Value
          CheckBox4
      .Value = CheckBox_01.Value
          CheckBox5
      .Value = CheckBox_01.Value
          CheckBox6
      .Value = CheckBox_01.Value
          CheckBox7
      .Value = CheckBox_01.Value
          CheckBox8
      .Value = CheckBox_01.Value
          CheckBox9
      .Value = CheckBox_01.Value
          CheckBox10
      .Value = CheckBox_01.Value
          CheckBox11
      .Value = CheckBox_01.Value
          CheckBox12
      .Value = CheckBox_01.Value  

      End Sub 
      Last edited by میثم مقدم نیا; 2021/05/12, 11:28.
      [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]

      کامنت

      • generalsamad
        مدير تالار توابع

        • 2014/06/22
        • 1496

        #4
        با سلام
        اگه از یک چک باکس میخواهید به عنوان انتخاب همه و از حالت انتخاب در بیاورید از این کد میتونید استفاده کنید
        کد PHP:
        Private Sub CheckBox_01_Click()
        If 
        UserForm1.Controls("CheckBox_01").Value = True Then
                
        For i = 1 To 12
                    UserForm1
        .Controls("Checkbox" & i).Value = True
                Next i
        Else
                For 
        i = 1 To 12
                    UserForm1
        .Controls("Checkbox" & i).Value = False
                Next i
        End 
        If
        End Sub 
        [CENTER]
        [SIGPIC][/SIGPIC]
        [/CENTER]

        کامنت

        • generalsamad
          مدير تالار توابع

          • 2014/06/22
          • 1496

          #5
          کد اولی هم میتونید اینطور تغییر دهید
          کد PHP:
          Private Sub CheckBox_01_Click()
          Dim x As msforms.Control
          If CheckBox_01.Value = True Then
              
          For Each x In Frame1.Controls
                  
          If TypeOf x Is msforms.CheckBox Then
                      x
          .Value = True
                  End 
          If
              
          Next
          Else
              For 
          Each x In Frame1.Controls
                  
          If TypeOf x Is msforms.CheckBox Then
                      x
          .Value = False
                  End 
          If
              
          Next
          End 
          If
          End Sub 
          [CENTER]
          [SIGPIC][/SIGPIC]
          [/CENTER]

          کامنت

          • میثم مقدم نیا

            • 2017/03/23
            • 558
            • 41.00

            #6
            نوشته اصلی توسط generalsamad
            کد اولی هم میتونید اینطور تغییر دهید
            کد PHP:
            Private Sub CheckBox_01_Click()
            Dim x As msforms.Control
            If CheckBox_01.Value = True Then
                
            For Each x In Frame1.Controls
                    
            If TypeOf x Is msforms.CheckBox Then
                        x
            .Value = True
                    End 
            If
                
            Next
            Else
                For 
            Each x In Frame1.Controls
                    
            If TypeOf x Is msforms.CheckBox Then
                        x
            .Value = False
                    End 
            If
                
            Next
            End 
            If
            End Sub 


            نوشته اصلی توسط generalsamad
            با سلام
            اگه از یک چک باکس میخواهید به عنوان انتخاب همه و از حالت انتخاب در بیاورید از این کد میتونید استفاده کنید
            کد PHP:
            Private Sub CheckBox_01_Click()
            If 
            UserForm1.Controls("CheckBox_01").Value = True Then
                    
            For i = 1 To 12
                        UserForm1
            .Controls("Checkbox" & i).Value = True
                    Next i
            Else
                    For 
            i = 1 To 12
                        UserForm1
            .Controls("Checkbox" & i).Value = False
                    Next i
            End 
            If
            End Sub 
            سلام

            استاد مرسی بابات کدهای زیباتون هردو کد به درستی عمل میکنند

            ولی در کد بالا من به یه مشکلی بر خوردم وقتی که نام چک باکس ها را تغییر میدم

            این کد را اجرا میکنم پیغام خطا میده که در تصویر زیر معلوم است

            Click image for larger version

Name:	Untitled2.png
Views:	1
Size:	24.6 کیلو بایت
ID:	138794
            [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]

            کامنت

            • generalsamad
              مدير تالار توابع

              • 2014/06/22
              • 1496

              #7
              با سلام
              اگه دقت کرده باشید شماره حلقه ها از 1 تا 12 می باشد
              این اعداد برای شماره نام چک باکس ها می باشد
              شما باید ببینید شماره چک باکس های هر فریم از چند شروع و با چند به پایان میرسه شماره حلقه ها هم برای هر فریم تغییر میکند
              بهتره از این کد استفاده کنید که نیاز به تغییر فقط شماره فریم را داشته باشد

              کد PHP:
              Dim x As msforms.Control
              If CheckBox_01.Value = True Then
                  
              For Each x In Frame1.Controls
                      
              If TypeOf x Is msforms.CheckBox Then
                          x
              .Value = True
                      End 
              If
                  
              Next
              Else
                  For 
              Each x In Frame1.Controls
                      
              If TypeOf x Is msforms.CheckBox Then
                          x
              .Value = False
                      End 
              If
                  
              Next
              End 
              If 
              [CENTER]
              [SIGPIC][/SIGPIC]
              [/CENTER]

              کامنت

              چند لحظه..