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

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

قام بنشر

السلام عليكم.

الاخوة الكرام والاساتذه العظام 

ارجو المساعده فى تصحيح كود حدث الورقه فى شيت Medi. Kha

المفترض بعد الترحيل الى هذا الشيت يتم ترك سطر فارغ اسفل اخر بيانات تم ترحيها من شيت ( 1 )

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

مع العلم ان عند اظهار الاسطر المخفيه تظهر جميع البيانا المرحله ..... ويعود اخفاء الاسطر مره اخرى بعد الترحيل حتى الصف رقم 21

طلب أخر

هل يمكن عمل تصفيه فى شيت Medi. Kha عند كتابه الرقم فى  D2   يتم تصفيه جميع البيانات الا هذا الرقم  

(Private Sub Worksheet_Change(ByVal Target As Range
  Dim MyRng As Range
  Dim Col As Range
    If Not Intersect(Target, Range("G1:G3")) Is Nothing Then
    Call SortData
  End If
    If Intersect(Target, Range("G4:G10000")) Is Nothing Then Exit Sub
  Application.EnableEvents = False
  Application.Calculation = xlManual
  Application.ScreenUpdating = False
        With Target
            Range("G4:G10000").EntireRow.Hidden = False
            For Each Col In Range("G4:G10000")
                If CStr(Col) = "" Or Col.Value = 0 Then
                If MyRng Is Nothing Then Set MyRng = Col Else Set MyRng = Union(MyRng, Col)
                End If
            Next
            If Not MyRng.Offset(1, 0) Is Nothing Then MyRng.Offset(1, 0).EntireRow.Hidden = True
      End With


 Application.Calculation = xlAutomatic
 Application.ScreenUpdating = True
 Application.EnableEvents = True
End Sub

Book6.rar

قام بنشر

السلام عليكم

الاخوة الكرام 

تم تصحيح الكود وذلك بعد مراجعه مشاركة خاصة بالاخ الحبيب ياسر خليل

وهو خطاءمن المستخدم  عدم ادخال بيانات فى الخليه G

 

 

ويبقى الطلب الاخير

 

هل يمكن عمل تصفيه فى شيت  Medi. Kha عند كتابه الرقم فى  D2   يتم تصفيه جميع البيانات الا بيانات  هذا الرقم 

قام بنشر

أخي الكريم أبو حنين

أعتقد أنه يجب التخلي قليلاً عن حدث ورقة العمل .. لاحظت أنك تركز على ذلك . ما بال عمل الأكواد وربطها بزر ؟ في وجهة نظري أفضل حتى لا يرتبط تنفيذ الكود بتغيير ما في خلية أو في خلايا ..

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

إليك الكود التالي .. كود يوضع في موديول

Sub FilterData()
    Dim WS As Worksheet
    Dim myDate As Date
    
    Set WS = Sheets("Medi. Kha")
    If IsDate(Range("D2")) Then
        myDate = Range("D2")
        myDate = DateSerial(Year(myDate), Month(myDate), Day(myDate))
    End If
    
    With WS
        .AutoFilterMode = False
        .Range("A4:G4").AutoFilter Field:=5, Criteria1:="<=" & myDate, Operator:=xlOr, Criteria2:=">" & myDate + 1
    End With
End Sub

وليس في حدث ورقة العمل

أما إذا أردته تلقائي وهذا أتوقعه فأعتقد أنك قد عرفت الطريق

  • Like 1
قام بنشر

السلام عليكم

اخى الكريم ياسر 

وجه نظر لم الاحظ مدى قيمتها الا من كلامك .... 

((أنا أنفذ الكود لما أحب ...ودا هيجنبك الكثير من المشكلات))...معك كل الحق جزاك الله خيرا

ونرجع مرجعنا للكود ..اخى الحبيب

اتوقع منك سعت صدرك ....

تقبل وجميع الاعضاء الكرام عزرى  لقد اخطاءت اثناء شرح طلبى  لكون البيت به ثانويه عامه وانت اعلم بمدى التوتر ولهذااكرر اعتزارى عن وقتك ومجهودك معى

المطلوب الصحيح

عمل تصفيه فى شيت  Medi. Kha وكذلك شيت Medi. Eps 

عند كتابه الرقم فى الخليه( D3 وليس D2 )واقصد به رقم العمل  يتم تصفيه جميع البيانات الا بيانات  هذا الرقم ورقم العامل موجود فى العمود C

 

 

 

 

قام بنشر

جرب الكود بهذا الشكل

Sub FilterData()
    Dim WS As Worksheet
    Dim myCrit
    
    Set WS = Sheets("Medi. Kha")
    myCrit = Range("D3")
    
    With WS
        .AutoFilterMode = False
        .Range("A4:G4").AutoFilter Field:=3, Criteria1:="<>" & myCrit
    End With
End Sub

تقبل تحياتي

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

السلام عليكم

اخى الكريم ياسر 

الكود يعمل على عكس المطلوب

عند كتابه الرقم وتنفيذ الكود .... تظهر بيانات جمبع الارقام الا بيانات هذتا الرقم

ولاحظت ان الكود به ( Set WS = Sheets("Medi. Kha") )

واريد ان يعمل ايضا على شيت ( Medi. Eps ) 

تقبل منى كل التقدير والاحترام

تم تعديل بواسطه ۩◊۩ أبو حنين ۩◊۩
قام بنشر

أخي الكريم أبو حنين

الرجاء التوضيح بشكل يزول معه أي لبس

هل تريد تصفية البيانات في ورقتي العمل اللتين ذكرتهما ..بنفس الشرط ألا وهو الخلية D3 في ورقة العمل المسماة Medi. Kha ؟؟ أم أن كل خلية في كل ورقة عمل منفصلة عن الأخرى .. أقصد العمل سيكون على الخلية D3 في ورقة العمل Medi. Kha والخلية D3 في ورقة العمل Medi. Epe؟

 

بالمناسبة بالنسبة لملاحظتك أعتقد أنها لا تستحق ..كان من الواجب أن تقوم بالإطلاع على الكود أولاً ومعرفة لما تم تصفية البيانات بهذا الشكل ..لقد أسأت الفهم وفهمت العكس .. ولحل المشكلة بكل يسر قم بإزالة هذا الجزء من الشرط

"<>" &

من السطر

        .Range("A4:G4").AutoFilter Field:=3, Criteria1:="<>" & myCrit

يرجى توضيح المطلوب من جديد بارك الله فيك

وقم بإرفاق الملف مرة أخرى بعد وضع بعض البيانات في ورقة العمل المسماة Medi. Epe حتى يتسنى لنا تجربة الكود قبل رفعه

قام بنشر

السلام عليكم

اخى الكريم ياسر 

اعلم انى اثقلت عليك من كثره المطلوب وعدم توصيل المطلوب بصوره صحيحه

جزاك الله خير على صبرك معى

اخى الحبيب ياسر

اريد ان يتم تنفيز الكود على شيت Medi. Kha وكذلك شيت Medi. Eps 

ويكون العمل على نفس الخليه D3

لقد قمت بالتغير الذى ذكرته والكود يعمل بصوره ممتازه

ويبقى جعل الكود يعمل على  شيت Medi. Kha وكذلك شيت Medi. Eps  

 

Book6.rar

قام بنشر

سأسأل للمرة الأخيرة ..الخلية المقصودة D3 في أي ورقة منهما ؟ أم أن كل خلية D3 في كل ورقة منفصلة عن الأخرى ؟؟ ..

يعني الشرط خلية واحدة فقط في كلا الورقتين أم لا ...؟

اعذرني لابد من التوضيح التاااااااااااااام الذي لا يشوبه لبس

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

اخى ياسر

واضح انى اثقلت جدا عليك 

اريد اذا اردت تنفيذ الكود وانا فى شيت Medi. Kha استطيع ذلك

واذا كنت فى شيت Medi. Eps واردت تنفيذ الكود استطيع ذلك

لان الكود واقف تنفيذ على شيت Medi. Kha   

     ("Set WS = Sheets("Medi. Kha

اخى ياسر 

خلية D3 في كل ورقة منفصلة عن الأخرى 

اى الخليه D3   فى شيت  Medi. Kha تخص ذلك الشيت فقط

 و الخليه D3   فى شيت  Medi. Eps تخص ذلك الشيت فقط

لقد كررت الكود بما يتناسب وشيت Medi. Eps

ده حل مؤقت حتى تدلنى على الصح

Sub FilterData1()
    Dim WS As Worksheet
    Dim myCrit
    
    Set WS = Sheets("Medi. Epe")
    myCrit = Range("D3")
    
    With WS
        .AutoFilterMode = False
        .Range("A4:G4").AutoFilter Field:=3, Criteria1:="" & myCrit
    End With
End Sub
تم تعديل بواسطه ۩◊۩ أبو حنين ۩◊۩
  • أفضل إجابة
قام بنشر

أخي الحبيب أبو حنين

لم تثقل علي ..كل الفكرة أنني دائماً وأبداً أحب التوضيح التام للأمر ..لأن عدم التوضيح يؤدي إلى تضييع الوقت في مشاركات لا طائلة منها (هذا أسلوبي لو إنت متابع لمشاركاتي بالمنتدى)

إليك الكود التالي يصلح لورقة العمل النشطة أي ورقة عمل سواء هذه الورقة أم تلك

Sub FilterData()
    Dim WS As Worksheet
    Dim myCrit
    
    Set WS = ActiveSheet
    myCrit = WS.Range("D3")
    
    Application.ScreenUpdating = False
    
        With WS
            If Not IsEmpty(myCrit) Then
                .AutoFilterMode = False
                .Range("A4:G4").AutoFilter Field:=3, Criteria1:=myCrit
            Else
                .Cells.AutoFilter
            End If
        End With
    
    Application.ScreenUpdating = True
End Sub

تقبل تحياتي

قام بنشر

أخي الحبيب أبو حنين

أحبك الله الذي أحببتني فيه ..

:fff: :fff: :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