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

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 1 To 12
                    UserForm1
        .Controls("Checkbox" i).Value True
                Next i
        Else
                For 
        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 1 To 12
                        UserForm1
            .Controls("Checkbox" i).Value True
                    Next i
            Else
                    For 
            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]

              کامنت

              چند لحظه..