اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

طلب تعديل على كود الدوائر التلقائية


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

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

المساعدة فى طباعة حسابات الأستاذ

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

هل بالإمكان إضافة جزئين للكود

1-الأول ليقوم بالبحث عن الإسم المقابل للمسلسل ( بدل عن دالة VLOOKUP الموجودة فى الخليتين C1 , C2 )

2- يقوم بعمل تصفية تلقائية للبيانات للعمودين E , F 

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

 

LEDGER ACC.rar

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

السلام عليكم

ارجو الشرح أكثر للمشكلة

الملف عندي يعمل تماما

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

تحياتي

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

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

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

الكود المطلوب يقوم بعمل الاتى 

1- يولد الأرقام من رقم البداية وحتى رقم النهاية 

2- يقوم مع كل مرة يتولد فيها الرقم بعمل بحث عن الرقم المتولد ووضع قيمة البحث فى الخليتين C2, C1 ثم يقوم بعمل تصفية ثم طباعة

أى أنه مع كل رقم يقوم بعمل بحث وطباعة

فمثلا لو وضعت أنا المطلوب 15 مسلسل فى كل مرة مع كل رقم يقوم بعمل بحث وتصفية وطباعة 

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

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

لمزيد من الإيضاح للإخوة المشاركين

للوصول الى كود مميز يقوم بهذه الفكرة

أريد أن أضع مثلا فى الخلية H1 من الرقم مثلا 5 وفى الخلية  H2 الى الرقم مثلا 10

فتظهر النتيجة ( 5 ) فى الخلية F1 ومقابل البحث لها فى الخليتين c2 , c1 ثم التصفية للعمودين E , F بناءا على قيمة  c2 , c1  ثم Calculate  ثم الطباعة 

ثم النتيجة ( 6 ) فى الخلية F1 ومقابل البحث لها فى الخليتين c2 , c1 ثم التصفية للعمودين E , F بناءا على قيمة  c2 , c1  ثم Calculate  ثم الطباعة 

ثم النتيجة ( 7 ) فى الخلية F1 ومقابل البحث لها فى الخليتين c2 , c1 ثم التصفية للعمودين E , F بناءا على قيمة  c2 , c1  ثم Calculate  ثم الطباعة 

ثم النتيجة ( 8 ) فى الخلية F1 ومقابل البحث لها فى الخليتين c2 , c1 ثم التصفية للعمودين E , F بناءا على قيمة  c2 , c1  ثم Calculate  ثم الطباعة 

ثم النتيجة ( 9 ) فى الخلية F1 ومقابل البحث لها فى الخليتين c2 , c1 ثم التصفية للعمودين E , F بناءا على قيمة  c2 , c1  ثم Calculate  ثم الطباعة 

ثم النتيجة ( 10 ) فى الخلية F1 ومقابل البحث لها فى الخليتين c2 , c1 ثم التصفية للعمودين E , F بناءا على قيمة  c2 , c1  ثم Calculate  ثم الطباعة 

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

أخي الكريم أناناس (ممكن نغير الفاكهة نخليها رمان عشان بعز الرمان حبتين)

إليك الكود التالي عله يفي بالغرض (وإن كنت أرى أن كود الأخ أبو عيد حفظه الله يعمل بشكل جيد ) ، ولكن من باب إثراء الموضوع جرب الكود

Sub MAIN()
'تعريف المتغيرات
    Dim I As Long
'إلغاء خاصية اهتزاز الشاشة
    Application.ScreenUpdating = False
'[H2] وتنتهي بالقيمة الموجودة في الخلية [H1] حلقة تكرارية تبدأ من القيمة الموجودة في الخلية
    For I = Range("H1") To Range("H2")
'[I] تساوي قيمة المتغير [F1] الخلية
        Range("F1") = I
'بدء التعامل مع ورقة العمل النشطة
        With ActiveSheet
'[DATA] ونطاق البحث ورقة البيانات [F1] تساوي قيمة دالة البحث عن القيمة الموجودة في الخلية [C1] الخلية
'يتم البحث في ورقة البيانات في العمود الثاني
            .Range("C1").Value = Application.WorksheetFunction.VLookup(.Range("F1").Value, Sheets("DATA").Range("A2:C19"), 2, 0)
'[DATA] ونطاق البحث ورقة البيانات [F1] تساوي قيمة دالة البحث عن القيمة الموجودة في الخلية [C1] الخلية
'يتم البحث في ورقة البيانات في العمود الثالث
            .Range("C2").Value = Application.WorksheetFunction.VLookup(.Range("F1").Value, Sheets("DATA").Range("A2:C19"), 3, 0)
            
'إلغاء الفلترة في ورقة العمل النشطة
            .AutoFilterMode = False
'[C1] بشرط القيمة في الخلية [E] فلترة البيانات على الحقل الرابع أي العمود
            .Range("B5:F5").AutoFilter Field:=4, Criteria1:=.Range("C1").Value
'[C2] بشرط القيمة في الخلية [F] فلترة البيانات على الحقل الخامس أي العمود
            .Range("B5:F5").AutoFilter Field:=5, Criteria1:=.Range("C2").Value
            
'[F1] إذا كانت قيمة المتغير أصغر من القيمة الموجودة بالخلية
            If I <= .Range("F1") Then
'إعادة الحسابات في ورقة العمل النشطة كنوع من التحديث للبيانات
                .Calculate
'[PrintOut] بكلمة [PrintPreview] معاينة ورقة العمل وتتم الطباعة باستبدال كلمة
                ActiveWindow.SelectedSheets.PrintPreview
            End If
            
'إلغاء الفلترة في ورقة العمل النشطة
            .AutoFilterMode = False
        End With
'الانتقال لقيمة المتغير التالية
    Next I
'إعادة تفعيل خاصية اهتزاز الشاشة
    Application.ScreenUpdating = True
End Sub

تقبل تحياتي

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

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

ومن المتعارف عليه أن الفلترة أسرع بكثير من الحلقات التكرارية ...

لا أجد الكود بطيئاً على الإطلاق ..

 

هل الكود مطبق على ملف آخر .. قد يكون هناك أكواد أخرى هي السبب في تعارض عمل الكود

جرب تلغي خاصية الحسابات خليها Manual قبل بداية الكود ..

أو ارفق ملفك الأصلي الذي به مشكلة البطء

تقبل تحياتي

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

أخ ياسر بارك الله فيك 

سأرسل لك الملف وأرجو منك التكرم بالغاء تلك الخاصية التى أشرت بها 

جرب تلغي خاصية الحسابات خليها Manual قبل بداية الكود )..

أخ ياسر بارك الله فيك 

سأرسل لك الملف وأرجو منك التكرم بالغاء تلك الخاصية التى أشرت بها 

جرب تلغي خاصية الحسابات خليها Manual قبل بداية الكود )..

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

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