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

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

قام بنشر

تسلم الله يسعدك ..

 

لكن هناك مشكلة في حال تم وضع أكثر من 800 خلية حيث يأخذ وقت عند كتابة أول رقمين

 

هل توجد طريقة خفيفه وبسيطة 

قام بنشر

عفواً ..

 

وصلت الان أكثر من 12000 رقم

 

أنا أحتاج أكتب رقم ، يظهر الرمز تلقائياً

 

الطريقة اللي انت وضحتها ممتازة جداً .. لكن بطيئة عند كتابة الرقم

 

وبالنسبة لل ComboBox لا يصلح استخدامه في ادخال بيانات وترحيلها 

قام بنشر

السلام عليكم

بعد أذن أخى الفاض / طلعت محمد

 

أخى الفاضل

جرب الكود التالى

أنا جربته على 15000  صف والسرعة معقولة

Private Sub TextBox1_Change()
On Error Resume Next
Application.ScreenUpdating = False
x = Cells.Find(What:=TextBox1.Value, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True, SearchFormat:=False).Offset(0, 1).Address
Me.TextBox2 = Range(x).Value
Application.ScreenUpdating = True
End Sub

userform.rar

  • Like 2
قام بنشر

السلام عليكم

الشكر موصول للاخوين  طلعت محمد حسن و الاستاد رجب جاويش

لاثراء الموضوع اكثر هذا كود ايضا يفي بالغرض

Private Sub TextBox1_Change()
Dim Lr As Long
Dim i As Double, Mh As Double
 On Error Resume Next
i = Me.TextBox1
Application.ScreenUpdating = False
    With Sheet1
               Lr = .Cells(.Rows.Count, "D").End(xlUp).Row
               Mh = WorksheetFunction.Match(i, .Range("D4:D" & Lr), 0) + 3
    End With
    Me.TextBox2 = Sheet1.Range("E" & Mh)
Application.ScreenUpdating = True
End Sub

  • Like 3
قام بنشر

 

السلام عليكم

بعد أذن أخى الفاض / طلعت محمد

 

أخى الفاضل

جرب الكود التالى

أنا جربته على 15000  صف والسرعة معقولة

Private Sub TextBox1_Change()
On Error Resume Next
Application.ScreenUpdating = False
x = Cells.Find(What:=TextBox1.Value, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True, SearchFormat:=False).Offset(0, 1).Address
Me.TextBox2 = Range(x).Value
Application.ScreenUpdating = True
End Sub

 

شكراً يل غالي ..

 

لكن إذا كانت الداتا في الشيت الثاني ؟؟

قام بنشر

 

السلام عليكم

الشكر موصول للاخوين  طلعت محمد حسن و الاستاد رجب جاويش

لاثراء الموضوع اكثر هذا كود ايضا يفي بالغرض

Private Sub TextBox1_Change()
Dim Lr As Long
Dim i As Double, Mh As Double
 On Error Resume Next
i = Me.TextBox1
Application.ScreenUpdating = False
    With Sheet1
               Lr = .Cells(.Rows.Count, "D").End(xlUp).Row
               Mh = WorksheetFunction.Match(i, .Range("D4:D" & Lr), 0) + 3
    End With
    Me.TextBox2 = Sheet1.Range("E" & Mh)
Application.ScreenUpdating = True
End Sub

 

ما ضبط معي وخصوصاً في حال إني غيرت الداتا ووضعتها في الشيت الثاني

قام بنشر

أخى الفاضل

هل تريد الداتا فى الشيت الثانى وزر اظهار الفورم معها فى الشيت الثانى أم يظل زر اظهار الفورم كما هو فى الصفحة الأولى

قام بنشر

السلام عليكم

هذا كود آخر أسرع من الأول

Private Sub TextBox1_Change()
On Error Resume Next
TextBox2 = ""
LR = Cells(Rows.Count, 2).End(xlUp).Row
TextBox2 = Application.WorksheetFunction.VLookup(Val(TextBox1), Range("B2:C" & LR), 2, 0)
End Sub

userform2.rar

قام بنشر

أخى الفاضل

هل تريد الداتا فى الشيت الثانى وزر اظهار الفورم معها فى الشيت الثانى أم يظل زر اظهار الفورم كما هو فى الصفحة الأولى

 

يبقى الزر في الشيت الأول

قام بنشر (معدل)

 

السلام عليكم

هذا كود آخر أسرع من الأول

Private Sub TextBox1_Change()
On Error Resume Next
TextBox2 = ""
LR = Cells(Rows.Count, 2).End(xlUp).Row
TextBox2 = Application.WorksheetFunction.VLookup(Val(TextBox1), Range("B2:C" & LR), 2, 0)
End Sub

 

الله يسعدكم يا اخواني لكن في حال أبغير المدخلات في شيت ثاني ويبقى الزر في الشيت الأول ..

وفي حال أرغب إضافة أعمده وتظهر في تكست بوكس ثالث ؟؟؟

أعرف إني ثقلت عليكم 

لكم كل الأجر إن شاء الله

تم تعديل بواسطه بن خليفه
قام بنشر

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

بعد اذن كل الاخوه ... جزاهم الله كل خير

لإثراء الموضوع

Private Sub TextBox1_Change()

Dim hh As Integer

For hh = 2 To 10000
If Sheet3.Cells(hh, 2) = Me.TextBox1.Text Then
     Me.TextBox2 = Sheet3.Cells(hh, 3)

End If
Next

End Sub

و مرفق الحل

و الله المستعان

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

FADILA.rar

  • Like 1
قام بنشر

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

بعد اذن كل الاخوه ... جزاهم الله كل خير

لإثراء الموضوع

Private Sub TextBox1_Change()

Dim hh As Integer

For hh = 2 To 10000
If Sheet3.Cells(hh, 2) = Me.TextBox1.Text Then
     Me.TextBox2 = Sheet3.Cells(hh, 3)

End If
Next

End Sub

و مرفق الحل

و الله المستعان

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

 

عزيزي ..

يعطيك العافية ..

انت شرحته على 2003

ولا جيت أحفظه على 2010 يرفض يعطيني المدخلات

قام بنشر

 

استاذ رجب ممكن شرح هذه الجزئية من الكود

LR = Cells(Rows.Count, 2).End(xlUp).Row

وخصوصا الرقم 2

وشكرا

 

آخر صف في العمود 2

 

شكرا لك يا استاذنا عبد اللة بارك اللة في عمرك

  • Like 1
قام بنشر

الاخوه الافاضل

دائما ما يكون الموضوع صاحب الحلول المتنوعه هو الموضوع الاكثر تميزا

والاكثر اثاره وافاده لنا جميعا

بارك الله فيكم جميكم

ووفقكم لفعل الخير ولما يحبه ويرضاه

-----------------------------------------

اسمحو لى ان

اشاركم بكود

اعتقد انه خفيف ايضا فى حالة كثرة البيانات

--------------------------------------------------------------

On Error GoTo 100
       Worksheets("SHEET3").Activate
       Columns(1).Find(TextBox1, MatchCase:=True).Activate
          TextBox2 = ActiveCell.Offset(0, 0).Value
          TextBox3 = ActiveCell.Offset(0, 1).Value
          TextBox4 = ActiveCell.Offset(0, 2).Value

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