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

هل من طريقة في التحكم في Scroll Bars الخاص Frame بمدى ديناميكي


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

السلام عليكم ورحمة الله تعالى وبركاته

أساتذي الكرام

هل من طريقة في التحكم في Scroll Bars الخاص Frame بمدى ديناميكي

المطلوب في المرفق

 

FrameScrollBars.rar

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

السلام عليكم

 

جرب هذا

Private Sub UserForm_Activate()
Dim Sh As Object
Dim LastCol, i As Integer
Set Sh = ThisWorkbook.Sheets(1)
LastCol = Cells(2, Sh.Columns.Count).End(xlToLeft).Column

MyTop = 10
For i = 1 To LastCol
Set txt = Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i)
With txt
.Text = Cells(2, i)
.SpecialEffect = fmSpecialEffectSunken
.TextAlign = fmTextAlignCenter
.Top = MyTop
.Left = 20
.Height = 24
.Width = 114
.BackColor = &HFFFFFF
End With
MyTop = MyTop + 30
Next
Me.Frame1.ScrollHeight = MyTop
End Sub
  • Like 1
رابط هذا التعليق
شارك

 

السلام عليكم

 

جرب هذا

Private Sub UserForm_Activate()
Dim Sh As Object
Dim LastCol, i As Integer
Set Sh = ThisWorkbook.Sheets(1)
LastCol = Cells(2, Sh.Columns.Count).End(xlToLeft).Column

MyTop = 10
For i = 1 To LastCol
Set txt = Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i)
With txt
.Text = Cells(2, i)
.SpecialEffect = fmSpecialEffectSunken
.TextAlign = fmTextAlignCenter
.Top = MyTop
.Left = 20
.Height = 24
.Width = 114
.BackColor = &HFFFFFF
End With
MyTop = MyTop + 30
Next
Me.Frame1.ScrollHeight = MyTop
End Sub

 

بارك الله فيك / العلامة عبد الله باقشير

أولا وقبل كل شيء الحمد لله على سلامتك إن شاء الله ما أبعدك عنا غير الخير

سعدت جدا بمرورك وتعديلك

أستاذي ملاحظة بسيطه  عند إنقاص البيانات من الأعمدة مثلا تركت 5 بياناات فقط

السكرول بار يبقى ظاهر لكن خاصية التمرير لا تظهر

هل من إضافة للكود بحيث اذا نقصت البيانات لا يظهر السكرول بار

تم تعديل بواسطه دغيدى
  • Like 1
رابط هذا التعليق
شارك

اخى الفاضل

 

بعد إذن استاذي القدير أ.عبدالله باقشير .. اجعل الكود هكذا

Private Sub UserForm_Activate()
Dim Sh As Object
Dim LastCol, i As Integer
Set Sh = ThisWorkbook.Sheets(1)
LastCol = Cells(2, Sh.Columns.Count).End(xlToLeft).Column

MyTop = 10
For i = 1 To LastCol
Set txt = Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i)
With txt
.Text = Cells(2, i)
.SpecialEffect = fmSpecialEffectSunken
.TextAlign = fmTextAlignCenter
.Top = MyTop
.Left = 20
.Height = 24
.Width = 114
.BackColor = &HFFFFFF
End With
MyTop = MyTop + 30
Next

If MyTop + 30 < Me.Height Then
Me.ScrollBars = fmScrollBarsNone
Me.Frame1.KeepScrollBarsVisible = fmScrollBarsNone
Else
Me.ScrollBars = fmScrollBarsVertical
Me.Frame1.KeepScrollBarsVisible = fmScrollBarsVertical
Me.Frame1.ScrollHeight = MyTop
End If
End Sub

تحياتى :fff: 

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

اخى الفاضل

 

بعد إذن استاذي القدير أ.عبدالله باقشير .. اجعل الكود هكذا

Private Sub UserForm_Activate()
Dim Sh As Object
Dim LastCol, i As Integer
Set Sh = ThisWorkbook.Sheets(1)
LastCol = Cells(2, Sh.Columns.Count).End(xlToLeft).Column

MyTop = 10
For i = 1 To LastCol
Set txt = Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i)
With txt
.Text = Cells(2, i)
.SpecialEffect = fmSpecialEffectSunken
.TextAlign = fmTextAlignCenter
.Top = MyTop
.Left = 20
.Height = 24
.Width = 114
.BackColor = &HFFFFFF
End With
MyTop = MyTop + 30
Next

If MyTop + 30 < Me.Height Then
Me.ScrollBars = fmScrollBarsNone
Me.Frame1.KeepScrollBarsVisible = fmScrollBarsNone
Else
Me.ScrollBars = fmScrollBarsVertical
Me.Frame1.KeepScrollBarsVisible = fmScrollBarsVertical
Me.Frame1.ScrollHeight = MyTop
End If
End Sub

تحياتى :fff: 

 

جربت الكود وليس هذا ما أريده

 

إفتراضي الفرام هو بيانات 11 عمود بمعنى عند ظهور بيانات 11 عمود في الفرام لا يظهر السكرول بار

وعند إضافة عمود أخر يظهر السكرول بار ويبقى عند أخر بيانات

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

اخى الفاضل

 

 

تحياتى :fff:

 

معذرة أستاذي كان الخطأ من عندي لأني لم أحذف هذا السطر من الكود

عندما أدرجت الكود المعدل من طرفك

Me.Frame1.ScrollHeight = (Sh.Columns.Count * 2)

وبذلك هنالك تعرض في الكود

فعلا هو المطلوب وجزاك الله كل الخير

أستاذي  ماهي الطريقة لتغيير تكست بوكس إلى كمبوبوكس بخاصية  إدارة الأسماء

مثلا في العمود الثالث في الفووم اريد ان يظهر كمبوبوكس مكان تكست بوكس وهكذا

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

وبذلك هنالك تعرض في الكود

فعلا هو المطلوب وجزاك الله كل الخير

أستاذي  ماهي الطريقة لتغيير تكست بوكس إلى كمبوبوكس بخاصية  إدارة الأسماء

مثلا في العمود الثالث في الفووم اريد ان يظهر كمبوبوكس مكان تكست بوكس وهكذا

 

 

أخى الفاضل

 

جرب الملف المرفق لربما به طلبك

 

تحياتي :fff: 

FrameScrollBars.rar

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

 

وبذلك هنالك تعرض في الكود

فعلا هو المطلوب وجزاك الله كل الخير

أستاذي  ماهي الطريقة لتغيير تكست بوكس إلى كمبوبوكس بخاصية  إدارة الأسماء

مثلا في العمود الثالث في الفووم اريد ان يظهر كمبوبوكس مكان تكست بوكس وهكذا

 

 

أخى الفاضل

 

جرب الملف المرفق لربما به طلبك

 

تحياتي :fff: 

 

أستاذي إبن مصر شكرا على المجهود

ليست هذه الطريقة التي اريدها أريد كود مرن بحيث لا ألجأ  كل مرة إلى تعديل في الكود

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

 

 

السلام عليكم

 

جرب هذا

Private Sub UserForm_Activate()
Dim Sh As Object
Dim LastCol, i As Integer
Set Sh = ThisWorkbook.Sheets(1)
LastCol = Cells(2, Sh.Columns.Count).End(xlToLeft).Column

MyTop = 10
For i = 1 To LastCol
Set txt = Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i)
With txt
.Text = Cells(2, i)
.SpecialEffect = fmSpecialEffectSunken
.TextAlign = fmTextAlignCenter
.Top = MyTop
.Left = 20
.Height = 24
.Width = 114
.BackColor = &HFFFFFF
End With
MyTop = MyTop + 30
Next
Me.Frame1.ScrollHeight = MyTop
End Sub

 

بارك الله فيك / العلامة عبد الله باقشير

أولا وقبل كل شيء الحمد لله على سلامتك إن شاء الله ما أبعدك عنا غير الخير

سعدت جدا بمرورك وتعديلك

أستاذي ملاحظة بسيطه  عند إنقاص البيانات من الأعمدة مثلا تركت 5 بياناات فقط

السكرول بار يبقى ظاهر لكن خاصية التمرير لا تظهر

هل من إضافة للكود بحيث اذا نقصت البيانات لا يظهر السكرول بار

 

الله يسلمك  ...........جزاكم الله خير

بالنسبة لسؤالك يمكنك تغيير الخاصية

KeepScrollBarsVisible الى الخيار 0 (fmScrollBarsNone)  اثناء التصميم

 

تحياتي

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

 

 

 

 

 

 

الله يسلمك  ...........جزاكم الله خير

بالنسبة لسؤالك يمكنك تغيير الخاصية

KeepScrollBarsVisible الى الخيار 0 (fmScrollBarsNone)  اثناء التصميم

 

تحياتي

 

 

بارك الله فيك أستاذي العلامة القديرعلى هذه المساعدة

ياريت إضافة للكود

ماهي الطريقة لتغيير تكست بوكس إلى كمبوبوكس بخاصية  إدارة الأسماء كما فعلت في ملفك كود بحث وتعديل مرن

اريد كود سهل وسلس بعيد عند تلك الأكواد المعقدة

مثلا في العمود الثالث في الفورم اريد ان يظهر كمبوبوكس مكان تكست بوكس وهكذا حسب إختياري للعمود

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

 

 

 

 

 

 

 

الله يسلمك  ...........جزاكم الله خير

بالنسبة لسؤالك يمكنك تغيير الخاصية

KeepScrollBarsVisible الى الخيار 0 (fmScrollBarsNone)  اثناء التصميم

 

تحياتي

 

 

بارك الله فيك أستاذي العلامة القديرعلى هذه المساعدة

ياريت إضافة للكود

ماهي الطريقة لتغيير تكست بوكس إلى كمبوبوكس بخاصية  إدارة الأسماء كما فعلت في ملفك كود بحث وتعديل مرن

اريد كود سهل وسلس بعيد عند تلك الأكواد المعقدة

مثلا في العمود الثالث في الفورم اريد ان يظهر كمبوبوكس مكان تكست بوكس وهكذا حسب إختياري للعمود

 

 

جزاكم الله خيرا

اذا كان هناك تعليق على الخلية سيقوم باضافة قائمة

Private Sub UserForm_Activate()
Dim Sh As Worksheet
Dim txt As MSForms.Control
Dim LastCol As Integer, i As Integer
Set Sh = ThisWorkbook.Sheets(1)

LastCol = Sh.Cells(2, Sh.Columns.Count).End(xlToLeft).Column

MyTop = 10
For i = 1 To LastCol
If Not Sh.Cells(2, i).Comment Is Nothing Then
    Set txt = Frame1.Controls.Add("Forms.Combobox.1", "MyTxt" & i)
Else
    Set txt = Frame1.Controls.Add("Forms.TextBox.1", "MyTxt" & i)

End If

With txt
    .Move 20, MyTop, 114, 24
    .Text = Sh.Cells(2, i)
    .SpecialEffect = fmSpecialEffectSunken
    .TextAlign = fmTextAlignCenter
    .BackColor = &HFFFFFF
End With
MyTop = MyTop + 30
Next
Me.Frame1.ScrollHeight = MyTop


End Sub

المرفق 2003

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

 

 

 

 

 

 

 

 

الله يسلمك  ...........جزاكم الله خير

بالنسبة لسؤالك يمكنك تغيير الخاصية

KeepScrollBarsVisible الى الخيار 0 (fmScrollBarsNone)  اثناء التصميم

 

تحياتي

 

 

بارك الله فيك أستاذي العلامة القديرعلى هذه المساعدة

ياريت إضافة للكود

ماهي الطريقة لتغيير تكست بوكس إلى كمبوبوكس بخاصية  إدارة الأسماء كما فعلت في ملفك كود بحث وتعديل مرن

اريد كود سهل وسلس بعيد عند تلك الأكواد المعقدة

مثلا في العمود الثالث في الفورم اريد ان يظهر كمبوبوكس مكان تكست بوكس وهكذا حسب إختياري للعمود

 

 

جزاكم الله خيرا

اذا كان هناك تعليق على الخلية سيقوم باضافة قائمة

Private Sub UserForm_Activate()
Dim Sh As Worksheet
Dim txt As MSForms.Control
Dim LastCol As Integer, i As Integer
Set Sh = ThisWorkbook.Sheets(1)

LastCol = Sh.Cells(2, Sh.Columns.Count).End(xlToLeft).Column

MyTop = 10
For i = 1 To LastCol
If Not Sh.Cells(2, i).Comment Is Nothing Then
    Set txt = Frame1.Controls.Add("Forms.Combobox.1", "MyTxt" & i)
Else
    Set txt = Frame1.Controls.Add("Forms.TextBox.1", "MyTxt" & i)

End If

With txt
    .Move 20, MyTop, 114, 24
    .Text = Sh.Cells(2, i)
    .SpecialEffect = fmSpecialEffectSunken
    .TextAlign = fmTextAlignCenter
    .BackColor = &HFFFFFF
End With
MyTop = MyTop + 30
Next
Me.Frame1.ScrollHeight = MyTop


End Sub

المرفق 2003

 

 ما شاء الله

جزاك الله خيرا

لكن ما هي الطريقة التي نغذي بها القائمة

انا حاولت بهذا الكود ونجح معي الأمر

قمت بإدراج تعليق في العمود الخامس

وأضفت هذا الكود للفورم

ياريت تعديل ليصبح الإختيار مرن كما فعلت عند إدراج تعليق يدرج كمبوبوكس

For i = 5 To 5
Me.Controls("MyTxt" & i).RowSource = "MyRange"
Next
رابط هذا التعليق
شارك

السلام عليكم

 

اذا كان هناك تعليق على الخلية سيقوم باضافة قائمة
وسيقوم باستخدام الاسم الموجود في التعليق لنطاق القائمة

 

شاهد المرفق 2003

FrameScrollBars1.rar

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

أخي الحبيب ومعلمنا الكبير عبد الله باقشير

ما أروعك

ما أبدعك

ما أجملك

ما أخف ظلك

ما أحلاك

نقف جميعاً أمام إبداعاتك صااااااااااااااااااااااااااااااااامتين ..تأخذنا الدهشة والروعة !!

جزيت عنا خير الجزاء في الدنيا والآخرة ، وجمع الله بيننا في الفردوس الأعلى اللهم آمين

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

السلام عليكم

 

اذا كان هناك تعليق على الخلية سيقوم باضافة قائمة

وسيقوم باستخدام الاسم الموجود في التعليق لنطاق القائمة

 

شاهد المرفق 2003

attachicon.gifFrameScrollBars1.rar

 

معلمي القدير

جزاك الله كل خير وأثابك الله الجنه

إستفسار بسيط

قمت بترك عمود فارغ

وعند تشغيل الفورم ظهر التكست بوكس فارغ هل من طريقه عند وجود عمود فارغ ينتقل مباشرة لبيانات للعمود الاخر

وشكرا

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

أخي الغالي الجموعي

جرب الكود بهذا التعديل البسيط ..إذا كانت الخلية فارغة وحتى لو بها تعليق فلن يتم عمل مربع نص لها

Private Sub UserForm_Activate()
    Dim Sh As Worksheet
    Dim txt As MSForms.Control
    Dim LastCol As Integer, I As Integer
    Dim Nam As String
    On Error GoTo kh_Exit
    
    Set Sh = ThisWorkbook.Sheets(1)
    
    LastCol = Sh.Cells(2, Sh.Columns.Count).End(xlToLeft).Column
    
    MyTop = 10
    
    For I = 1 To LastCol
           If Not IsEmpty(Sh.Cells(2, I)) Then
                If Not Sh.Cells(2, I).Comment Is Nothing Then
                    Set txt = Frame1.Controls.Add("Forms.Combobox.1", "MyTxt" & I)
                    Nam = Trim(Sh.Cells(2, I).Comment.Text)
                    If Not IsError(Evaluate(Nam)) Then txt.RowSource = Nam
                Else
                    Set txt = Frame1.Controls.Add("Forms.TextBox.1", "MyTxt" & I)
                End If
            
                With txt
                    .Move 20, MyTop, 114, 24
                    .Text = Sh.Cells(2, I)
                    .TextAlign = 2
                End With
                MyTop = MyTop + 30
            End If
    Next
    Me.Frame1.ScrollHeight = MyTop
kh_Exit:
End Sub
  • Like 2
رابط هذا التعليق
شارك

أستاذي الفاضل/ ياسر خليل

بارك الله فيك

ياريت تشرح لي هذه الجزئية من الكود الذي تفضل به العلامة القدير /عبد الله باقشير

If Not IsEmpty(Sh.Cells(2, I)) Then
                If Not Sh.Cells(2, I).Comment Is Nothing Then
                    Set txt = Frame1.Controls.Add("Forms.Combobox.1", "MyTxt" & I)
                    Nam = Trim(Sh.Cells(2, I).Comment.Text)
                    If Not IsError(Evaluate(Nam)) Then txt.RowSource = Nam
رابط هذا التعليق
شارك

أخي الحبيب الجموعي

السطر الأول لو الخلية في الصف الثاني في العمود I حيث أن I متغير يتغير بتغير الأعمدة ...لو كانت الخلية تحتوي على تعليق

السطر الثاني يتم إنشاء قائمة منسدلة

السطر الثالث تعيين قيمة للمتغير nam والقيمة هي محتوى نص التعليق مع إزالة المسافات الزائدة

السطر الأخير التأكد من صحة النطاق المسمى (على ما أعتقد) ومن ثم تعيين هذا النطاق ليكون مصدر البيانات للقائمة المنسدلة

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

أخي الحبيب الجموعي

السطر الأول لو الخلية في الصف الثاني في العمود I حيث أن I متغير يتغير بتغير الأعمدة ...لو كانت الخلية تحتوي على تعليق

السطر الثاني يتم إنشاء قائمة منسدلة

السطر الثالث تعيين قيمة للمتغير nam والقيمة هي محتوى نص التعليق مع إزالة المسافات الزائدة

السطر الأخير التأكد من صحة النطاق المسمى (على ما أعتقد) ومن ثم تعيين هذا النطاق ليكون مصدر البيانات للقائمة المنسدلة

كفيت ووفيت أستاذي الفاضل

جزاك الله كل الخير

تحياتي :fff:

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information