black-eagle قام بنشر سبتمبر 24, 2014 قام بنشر سبتمبر 24, 2014 السلام عليكم اخواني الكرام ,, لدي قاعدة بيانات كبيرة و ملف الاكسيل يعمل بشكل بطيئ هل من طريقة لتسريعه ؟؟ حاولت تغير الاحقة الى xlsb ولم ينفع الامر
طارق محمود قام بنشر سبتمبر 24, 2014 قام بنشر سبتمبر 24, 2014 السلام عليكم أسباب بطء الملف كثيرة ومتعددة قد يكون به صور قد يكون به معادلات قد يكون به ورقات (شيتات) محجوز بها خلايا حتي نهاية الورقة .. الأفضل رفع الملف 2
black-eagle قام بنشر سبتمبر 25, 2014 الكاتب قام بنشر سبتمبر 25, 2014 تفضل الكود مشكورا Dim y1, y2, z, g, L, H Sub dd() Rw = 5 Y = Val(InputBox("step")) clm = Val(InputBox("Column")) x = Cells(Cells.Rows.Count, clm).End(xlUp).Row If Cells(Cells.Rows.Count, clm).End(xlUp).Row >= 5 Then Range(Cells(5, clm), Cells(Cells(Cells.Rows.Count, clm).End(xlUp).Row, clm)).Clear End If endr = Cells(Cells.Rows.Count, 1).End(xlUp).Row g = [B5] y1 = g - Y y2 = g + Y L = g H = g For r1 = 5 To endr d = DateSerial(Mid(Cells(r1, 1), 1, 4), Mid(Cells(r1, 1), 6, 2), Mid(Cells(r1, 1), 9, 2)) d1 = Format(d, "dddd") d2 = Cells(r1, 1) d = Cells(r1, 1) If Cells(r1, 2) < L Then L = Cells(r1, 2) If Cells(r1, 2) > H Then H = Cells(r1, 2) 1: If check(Cells(r1, 2)) = 1 Then Cells(r2 + 5, clm) = "down" & String(z1, "+") Cells(r2 + 5, clm).AddComment Cells(r2 + 5, clm).Comment.Visible = False fom = IIf(IIf(H <> 0, H, hh) < g, "no", IIf(Round((IIf(H <> 0, H, hh) - 100) / Y) = (IIf(H <> 0, H, hh) - 100) / Y, "no", IIf(H <> 0, H, hh))) Cells(r2 + 5, clm).Comment.Text Text:="Author:" & Chr(10) & "Date : " & d1 & " " & Chr(10) & " " & d2 & "" & Chr(10) & "Highest : " & fom & " " & Chr(10) & "" If H <> 0 Then hh = H H = 0 r2 = r2 + 1 g = g - Y y1 = g - Y y2 = g + Y z1 = 0 z2 = 0 If Cells(r1, 2) <= y1 Then z1 = 1 GoTo 1 End If ElseIf check(Cells(r1, 2)) = 2 Then Cells(r2 + 5, clm) = "up" & String(z2, "+") Cells(r2 + 5, clm).AddComment Cells(r2 + 5, clm).Comment.Visible = False fom2 = IIf(IIf(L <> 999999, L, ll) > g, "no", IIf(Round((IIf(L <> 999999, L, ll) - 100) / Y) = (IIf(L <> 999999, L, ll) - 100) / Y, "no", IIf(L <> 999999, L, ll))) Cells(r2 + 5, clm).Comment.Text Text:="Author:" & Chr(10) & "Date : " & d1 & " " & Chr(10) & " " & d2 & "" & Chr(10) & "Lowest : " & fom2 & " " & Chr(10) & "" If L <> 999999 Then ll = L L = 999999 r2 = r2 + 1 g = g + Y y1 = g - Y y2 = g + Y z1 = 0 z2 = 0 If Cells(r1, 2) >= y2 Then z2 = 1 GoTo 1 End If End If Next End Sub Function check(x) If x <= y1 Then check = 1 ElseIf x >= y2 Then check = 2 ElseIf x > y1 And x < y2 Then check = 3 End If End Function
الصـقر قام بنشر سبتمبر 25, 2014 قام بنشر سبتمبر 25, 2014 (معدل) السلام عليكم بارك الله فيك اخى الكريم وزادك الله من علمة الكود يكون بحدث مودويل وأم حدث ملف ورقة العمل أم حدث ورك شيت وان امكن شرح الكود بارك الله فيك وفقك الله تم تعديل سبتمبر 25, 2014 بواسطه حسام عيسى
ياسر خليل أبو البراء قام بنشر سبتمبر 25, 2014 قام بنشر سبتمبر 25, 2014 الأخ صاحب الموضوع الكود بدون الملف ليس منه فائدة على الإطلاق ارفق ملفك عل أحد الأخوة يعينك على حل مشكلة بطء الملف ..!!
black-eagle قام بنشر سبتمبر 26, 2014 الكاتب قام بنشر سبتمبر 26, 2014 السلام عليكم بارك الله فيك اخى الكريم وزادك الله من علمة الكود يكون بحدث مودويل وأم حدث ملف ورقة العمل أم حدث ورك شيت وان امكن شرح الكود بارك الله فيك وفقك الله بارك الله بك استاذ حسام ,, بصراحة خبرتي البرمجية ضئيلة و هذا تم بمساعدة كريمة من استاذنا الكبير احمد عبد الناصر جزاه الله كل خير
black-eagle قام بنشر سبتمبر 26, 2014 الكاتب قام بنشر سبتمبر 26, 2014 الأخ صاحب الموضوع الكود بدون الملف ليس منه فائدة على الإطلاق ارفق ملفك عل أحد الأخوة يعينك على حل مشكلة بطء الملف ..!! شكرا لك اخي الكريم FIN.rar
black-eagle قام بنشر سبتمبر 27, 2014 الكاتب قام بنشر سبتمبر 27, 2014 هل من طريقة محددة اخواني الكرام ؟
ياسر خليل أبو البراء قام بنشر سبتمبر 27, 2014 قام بنشر سبتمبر 27, 2014 (معدل) أخي الحبيب .. جربت ملفك والملف ليس بطيئاً على الإطلاق .. قد يكون جهازك مصاب بفيروس أو ما شابه وهو الذي يسبب بطء الملف وبطء التعامل مع برنامج الإكسيل تم تعديل سبتمبر 27, 2014 بواسطه YasserKhalil
black-eagle قام بنشر سبتمبر 27, 2014 الكاتب قام بنشر سبتمبر 27, 2014 شكرا لك اخي ياسر على المداخلة الكريمة ,, مسألة البطء بسبب ضخامة قاعدة البيانات اي مايقارب 50000 سطر و لأكثر من ملف تأخذ العملية ما يقارب ال 30ثانية لتنتهي , علما و عند الاستخدام تكون الرامات الفارغة 2GB و المعالج لا يستهلك اكتر من 10% ربما المسألة لها علاقة بمعادلات الكود او التكرار و ما الا ذالك
محمد الريفى قام بنشر سبتمبر 27, 2014 قام بنشر سبتمبر 27, 2014 اذا كان لابديل عن هذا الملف فليس امامك سوى ايقاف الحساب وعمل الحساب يدوى وكلما اردت التحديث اضغط F9 2
black-eagle قام بنشر سبتمبر 27, 2014 الكاتب قام بنشر سبتمبر 27, 2014 اذا كان لابديل عن هذا الملف فليس امامك سوى ايقاف الحساب وعمل الحساب يدوى وكلما اردت التحديث اضغط F9 ارجو التوضيح اكثر ان تكرمت
طارق محمود قام بنشر سبتمبر 28, 2014 قام بنشر سبتمبر 28, 2014 السلام عليكم أخي الحبيب أكيد انك لن تريد عمل التدقيق (المراجعة) علي 50,000 سطر كما أوضحت لو كانت 30 ثانية كما تقول فهذا سريع وليس بطيء مع هذا الكم من البيانات أعتقد انك تتابع تغير أسعار شيء ما فلاداعي لمقارنة الأسعار كل يوم - كل يوم- كل يوم لنفس البيانات القديمة لعشر سنوات مضت لاأعرف ان كنت مصيبا ام مخطئا بعد المقارنة ومعرفة الناتج +up ، up+ ، down ، down ، ... وما إلي ذلك يمكن تثبيت هذه النتائج بما فيها من كومنتات إذن عليك تغيير الكود ليعمل بداية من آخر سطر به نتيجة من عمود النتيجة وليس من أول سطر 1
محمد الريفى قام بنشر سبتمبر 28, 2014 قام بنشر سبتمبر 28, 2014 اذهب الى صيغ ثم خيارات الحساب ازل علامة تلقائى ثم ضع علامة على يدوى هذه الوظيفه ستقوم بايقاف الحساب مما يخفف من الملف وعندما تريد عمل حساب اضغط F9 ارجو ان اكون قد وضحت تقبل خالص تحياتى hhh.bmp
black-eagle قام بنشر سبتمبر 28, 2014 الكاتب قام بنشر سبتمبر 28, 2014 اذهب الى صيغ ثم خيارات الحساب ازل علامة تلقائى ثم ضع علامة على يدوى هذه الوظيفه ستقوم بايقاف الحساب مما يخفف من الملف وعندما تريد عمل حساب اضغط F9 ارجو ان اكون قد وضحت تقبل خالص تحياتى شكرا لك اخي الكريم و لكن الطريقة لم تساعد بتسريع الملف اظن المشكلة مع الكود
black-eagle قام بنشر سبتمبر 28, 2014 الكاتب قام بنشر سبتمبر 28, 2014 السلام عليكم أخي الحبيب أكيد انك لن تريد عمل التدقيق (المراجعة) علي 50,000 سطر كما أوضحت لو كانت 30 ثانية كما تقول فهذا سريع وليس بطيء مع هذا الكم من البيانات أعتقد انك تتابع تغير أسعار شيء ما فلاداعي لمقارنة الأسعار كل يوم - كل يوم- كل يوم لنفس البيانات القديمة لعشر سنوات مضت لاأعرف ان كنت مصيبا ام مخطئا بعد المقارنة ومعرفة الناتج +up ، up+ ، down ، down ، ... وما إلي ذلك يمكن تثبيت هذه النتائج بما فيها من كومنتات إذن عليك تغيير الكود ليعمل بداية من آخر سطر به نتيجة من عمود النتيجة وليس من أول سطر ممكن الكود بعد التعديل ؟
طارق محمود قام بنشر سبتمبر 28, 2014 قام بنشر سبتمبر 28, 2014 لاأدري إن كنت مصيبا أم لا لكن جرب التعديل التالي في أول الكود بعد 4 أو 5 أسطر تجد الشرط التالي If Cells(Cells.Rows.Count, clm).End(xlUp).Row >= 5 Then Range(Cells(5, clm), Cells(Cells(Cells.Rows.Count, clm).End(xlUp).Row, clm)).Clear End If إحذفه ثم بعده بعدة أسطر تجد الأمر For r1 = 5 To endr إستبدله بالتالي For r1 = x+1 To endr ليكون الكود بعد التعديل هكذا Dim y1, y2, z, g, L, H Sub dd() Rw = 5 Y = Val(InputBox("برجاء ادخل قيمة step")) clm = Val(InputBox("براجاء ادخال رقم عمود النتيجة")) x = Cells(Cells.Rows.Count, clm).End(xlUp).Row كان هنا شرط تم إلغاؤه endr = Cells(Cells.Rows.Count, 1).End(xlUp).Row g = [B5] y1 = g - Y y2 = g + Y L = g H = g For r1 = x+1 To endr ... ..
black-eagle قام بنشر سبتمبر 28, 2014 الكاتب قام بنشر سبتمبر 28, 2014 لاأدري إن كنت مصيبا أم لا لكن جرب التعديل التالي في أول الكود بعد 4 أو 5 أسطر تجد الشرط التالي If Cells(Cells.Rows.Count, clm).End(xlUp).Row >= 5 Then Range(Cells(5, clm), Cells(Cells(Cells.Rows.Count, clm).End(xlUp).Row, clm)).Clear End If إحذفه ثم بعده بعدة أسطر تجد الأمر For r1 = 5 To endr إستبدله بالتالي For r1 = x+1 To endr ليكون الكود بعد التعديل هكذا Dim y1, y2, z, g, L, H Sub dd() Rw = 5 Y = Val(InputBox("برجاء ادخل قيمة step")) clm = Val(InputBox("براجاء ادخال رقم عمود النتيجة")) x = Cells(Cells.Rows.Count, clm).End(xlUp).Row كان هنا شرط تم إلغاؤه endr = Cells(Cells.Rows.Count, 1).End(xlUp).Row g = [B5] y1 = g - Y y2 = g + Y L = g H = g For r1 = x+1 To endr ... .. بارك الله بك استاذنا الغالي عند وضع x+1 يعطيني mismatch error لكن مع x+5 يعمل على نفس السرعة السابقة
black-eagle قام بنشر أكتوبر 1, 2014 الكاتب قام بنشر أكتوبر 1, 2014 اخواني الكرم , شكرا لكم على المساعدة الطيبة حاولت تعديل تعديل الكود ليصبح لدي ستيب متعدد اريد وضع الستيب على الشكل Y1 = E2 , CLM1 = 5 Y2 = F2 , CLM2 =6 Y3 = G2 , CLM3=7 . . علما ان Y هي قيمة الستيب و CLm هي رقم العمود همسة : المف يأخذ وقتا في قراءة البيانات, ان امكن جعل القيم تكتب معا في كامل الاعمدة لا ان يعيد القراءة في كل عامود ,, و شكرا
طارق محمود قام بنشر أكتوبر 1, 2014 قام بنشر أكتوبر 1, 2014 السلام عليكم رددت أخي عليا علي الخاص سائلا نفس السؤال ورددت عليك "هل تعني أنه إذا كان Y1 = E2 فإن CLM1 = 5 وإذا كان Y2 = F2 فإن CLM2 =6 وهكذا ............... أي تريد قيم ثابتة للـ CLM حسب قيمة الـ Y" فأجبتني "بالظبط , هذا مأريده حيث ان رقم العمود E = 5 فقيمة CLM = 5 و رقم العمود F = 6 فقيمة CLM = 6 ما يهمني ان يكون ناتح قيم الستيب في العامود E تحت العامود E و مثله باقي القيم فاذا وجدت قيمة في الخلايا E2,F2,G2,H2,I2,......... نعتبرها الستيب, و يكون CLM هو رقم الحرف" فقط أحببت أنقل المحادثة لمن يريد المشاركة
black-eagle قام بنشر أكتوبر 2, 2014 الكاتب قام بنشر أكتوبر 2, 2014 اخواني الكرم , شكرا لكم على المساعدة الطيبة حاولت تعديل الكود ليصبح لدي ستيب متعدد اريد وضع الستيب على الشكل Y1 = E2 , CLM1 = 5 Y2 = F2 , CLM2 =6 Y3 = G2 , CLM3=7 . . علما ان Y هي قيمة الستيب و CLm هي رقم العمود ما يهمني ان يكون ناتح قيم الستيب في العامود E تحت العامود E و مثله باقي القيم فاذا وجدت قيمة في الخلايا E2,F2,G2,H2,I2,......... نعتبرها الستيب, و يكون CLM هو رقم الحرف" همسة : المف يأخذ وقتا في قراءة البيانات, ان امكن جعل القيم تكتب معا في كامل الاعمدة لا ان يعيد القراءة لكل عامود ,, و شكرا UP FIN.rar
احمد عبد الناصر قام بنشر أكتوبر 12, 2014 قام بنشر أكتوبر 12, 2014 السلام عليكم استاذي الفاضل اسعد الله صباحك - بالنسبة لبطء الملف مع كمية البيانات الكبيرة فلم اجد له حل حاولت قراءة الكود اكثر من مرة و لم استوعبه(اعادة كتابته اسهل ههههه) , من الممكن ان يكون السبب في comments . -بالنسبة لتعدد قيم steps علي مستوى ثلاث عواميد , الملف باستطاعته ذلك ففي كل مرة يسءلك عن قيمة ال step و رقم العمود الذي تريد النتيجه ان تظهر به و لكن سيتطلب ذللك منك تشغيل الكود ثلاث مرات (امر سهل :D ). -كان عندي تساؤل فكما اتذكر الكود كان به عيوب و لم يكن مكتمل و احيانا يأتي بنتائج خاطءه خاصة عن وجود ارقام بعلامات عشرية , فهل مازلت تواجه مشاكل في نتائج الكود ؟! تحياتي و معذرة علي التأخر في الرد
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.