اذهب الي المحتوي
أوفيسنا

استفسار برمجة اكسل vb حلقات التكرار


M.NHAKAMI
إذهب إلى أفضل إجابة Solved by الـعيدروس,

الردود الموصى بها

السلام عليكم اخوتي الكرام عندي الكود التالي يعمل بشكل ممتاز في فجوال بيسك 2012 وعندما احتاجه في الاكسل لا يعمل ممكن اعرف اين الخلل 

 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim i As Integer
        Dim x As Integer
        Dim z As Integer
        x = CInt(TextBox1.Text)
        z = CInt(TextBox2.Text)
        For i = x To z
            If TypeOf (Me.Controls(i)) Is TextBox Then
                Me.Controls(i).Text = i
            End If
        Next
    End Sub

في الاكسل يظهر خطأ كالتالي 

12.PNG.0c5184006f06d6cf0a8650a6f568f2ff.PNG

رابط هذا التعليق
شارك

الهدف من الكود انه عندما ادخل رقم الحاجز الاول رقم 1 والحاجز الاخير مثلا 7

واعتمد المسار يقوم بكتابة الارقام من 1 إلي 5 كل رقم في textbox  بالترتيب  

الكود يعمل بفجوال بيسك 2012 

هذا صورته داخل الفيجوال 

 

22.PNG

33.PNG

للرفع.rar

رابط هذا التعليق
شارك

السلام عليكم

اظن كالتالي

Private Sub CommandButton1_Click()
        Dim i As Integer
        Dim x As Integer
        Dim z As Integer
        x = CInt(TextBox1.Text)
        z = CInt(TextBox2.Text)
        For i = x To z
            If TypeOf Me.Controls(i) Is MSForms.TextBox Then
                      Me.Controls(i).Text = i
               End Select
            End If
        Next
End Sub

 

رابط هذا التعليق
شارك

اخي العيدروس اشكر مرورك انا اعمل على نسخة 2013 جربت الكود ولم يعمل اتوقع المشكله بالسطر If TypeOf Me.Controls(i) Is MSForms.TextBox Then وبالتحديد في الدالة 

    Me.Controls(i)

لم استطع ايجاد الحل 

رابط هذا التعليق
شارك

  • أفضل إجابة

نفس الكود

انا بملفي فقط حطيت تجاوز الحقلين التي بتكتب عليهم الارقام

لاجل لايعتمدو ضمن الحلقة التكرارية

Private Sub CommandButton1_Click()
        Dim i As Integer
        Dim x As Integer
        Dim z As Integer
        Dim Tx As Control
        x = CInt(TextBox1.Text)
        z = CInt(TextBox2.Text)
          For i = x To z
            If TypeOf Me.Controls(i) Is MSForms.TextBox Then
                    Me.Controls(i + 2).Text = i
            End If
          Next i
End Sub

او كالتالي عداد خاص للترميز للحقول البقية

Private Sub CommandButton1_Click()
        Dim i As Integer
        Dim x As Integer
        Dim z As Integer
        Dim C
        Dim Tx As Control
        x = CInt(TextBox1.Text)
        z = CInt(TextBox2.Text)
        C = 3
          For i = x To z
            If TypeOf Me.Controls(C) Is MSForms.TextBox Then
                Me.Controls(C).Text = i
                C = C + 1
            End If
          Next i
End Sub

 

تم تعديل بواسطه الـعيدروس
رابط هذا التعليق
شارك

اشكرك اخي لا عدمناك الله يزيد علمك فرجت عني لا اراك الله مكروها 

هذا الكود الذي ابحث عنه بالضبط لانه كل ما غيرت الأرقام  واعتمد يتغير الترتيب بخلاف الكود الأول فانه لابد من اغلاق البرنامج والعوده ثانيه 

شكرا لك 

رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information