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

طارق محمود

أوفيسنا
  • Posts

    4,533
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    42

كل منشورات العضو طارق محمود

  1. تفضل المرفق اسعار البنك المركزي2.rar
  2. السلام عليكم أخي العزيز لابأس ، لاداعي للأسف الصحيح IV وليس IU وهذا يقابل العدد 256 حيث a,b,c,d,e,f تقابل 1,2,3,4,5 وهو أقصي عدد متاح في الإكسل 2003 ولكنك تستخدم 2007 إذن انت تحفظ الملف باستخدام 2007 ولكن بتنسيق 2003 ستجد أن امتداد الملف لديك xls وليس xlsx وهذه ماتميز 2007 ومابعده وستجد أيضا بأعلي الملف عند فتحه العبارة [Compatibility Mode] ولتلافي هذا إحفظ بإسم (ممكن تضغط F12) وغير امتداد الملف إلي xlsx
  3. السلام عليكم أخي العزيز أرجو أن يكون المرفق هو ماتريد تفضل ابراهيم حلاوة.rar
  4. السلام عليكم المشكلة الأولي: الخطأ : compile error ، syntax error قد ينتج عن أن المتغيرات التي استخدمتها أنا بالكود غير معرفة عندك مثال في الكود السطر LR = [C9999].End(xlUp).Row يطلب من الاكسل اعطاء قيمة معينة للمتغير LR فلابد من تعريف هذا المتغير قبل هذا السطر بعبارة Dim LR As Integer مثلا أو للهروب من ذلك فلايكون لديك السطر التالي في أول الأكواد Option Explicit كما أفعل أنا فهذا السطر يجبر البرنامج علي رفض قبول متغيرات بدون تعريف مسبق لها إبحث في محرر الأكواد لديك ستجده في حدث فتح الملف مثلا أو في أي مكان آخر ، إذا وجدته امسحه أو عرف جميع المتغيرات (الثلاثة) في الكود بإضافة السطر التالي في البداية Dim LR As Integer, r As Integer, j As Integer المشكلة الثانية: إستبدل العنوان C9999 الموجود في الكود بـ C65536 وهو عنوان أقصي سطر ممكن بالإكسل 2003 وحيث ان عدد البيانات عندك لايتجاوز هذا العدد ولو الإكسل عندك 2007 أو 2010 يكون أفضل تجعل الملف بصيغة xlsb أو xlsm وتجمع كل البيانات في شيت واحد المشكلة الثالثة: ستبدل الكود السابق بهذا Sub join_Repeted_data() Dim LR As Integer, r As Integer, j As Integer LR = [C65536].End(xlUp).Row For r = 4 To LR nm = Cells(r, "C") For j = r + 1 To LR If Cells(j, "C") = nm Then Cells(j, "D").Copy Cells(r, "C").End(xlToRight).Offset(0, 1) Cells(j, "C").EntireRow.Delete LR = LR - 1: j = j - 1 End If Next j Next r End Sub حيث تم استبدال C9999 بـ C65536 وتم إضافة السطر Dim LR As Integer, r As Integer, j As Integer في أول الكود وتم إضافة المعادلة j = j - 1 في السطر LR = LR - 1 ليصبح LR = LR - 1: j = j - 1 وبهذا وفي كل مرة يتم ترحيل رقم لليسار يبدأ من نفس السطر ليس فقط 2 أو 3 بل أكثر
  5. سبحان الله لم أنتبه لهذ العمل الرائع إلا الآن جزاك الله خيرا أخي أحمد وجعله في موازين أعمالك
  6. أخي الكريم أي نسخة أوفيس لديك؟ 2003 ، 2007 أم 2010 مارقم آخر صف لديك؟ ممكن السبب يكون أنك تستخدم 2003 حيث عدد الصفوف لايزيد عن 65535 فقط وحتي هذا احتمال ضعيف لأنه من غير المنطقي أن يكون لديك هذا الكم من البيانات في شيت واحد إذن ممكن يكون السبب أن السطور موجودة ولكنها غير ظاهرة كل اللي عليك أن تعلم علي آخر سطر (كاملا) بيمين الماوس ثم إختر إظهار السطور
  7. لابأس إرسله وإن كان به خصوصيات للعمل إرسله علي الخاص tarekmahmoud_2@hotmail.com
  8. السلام عليكم أخي الكريم بن علية بعد إذنك أهدي للسائل هذا الملف حيث أنه مازال جديد معنا تفضل اخي المرفق حضور-غياب.zip
  9. السلام عليكم طبعا أذكرك جيدا أخي عصام أهلا ومرحبا بك في أي وقت بعد إذنكم جميعا جرب الكود المرفق Sub join_Repeted_data() LR = [C9999].End(xlUp).Row For r = 4 To LR nm = Cells(r, "C") For j = r + 1 To LR If Cells(j, "C") = nm Then LR = LR - 1 Cells(j, "D").Copy Cells(r, "C").End(xlToRight).Offset(0, 1) Cells(j, "C").EntireRow.Delete End If Next j Next rEnd Sub بالملف التالي يمكن تشغيل الكود بالضغط علي Ctrl-Shift-T Numbers with adress tast.zip
  10. السلام عليكم أخي العزيز أضفت بعض البيانات وأضفت أيضا بعض الأسماء في حال أنه ليس لديهم صفحة سابقة ، يقوم الكود بإنشاء واحدة بنفس الإسم يمكنك الضغط علي الزر لتفعيل عملية الترحيل أو إذا كنت تريد تسجيل البيانات أوتوماتيك عند غلق الملف فلتحذف الأبوستروف من سطر الكود اللي في حدث الملف ليصبح Private Sub Workbook_BeforeClose(Cancel As Boolean) Shift End Sub بدلا من Private Sub Workbook_BeforeClose(Cancel As Boolean) 'Shift End Sub تفضل المرفق مشروع.rar
  11. السلام عليكم أخي العزيز اعذرني فلن أستطيع المتابعة معك في هذا الموضوع لظروفي الخاصة
  12. السلام عليكم أخي الحبيب / أبامحمود (جمال عبد السميع) ملك المعادلات (مع أني لم أشاهد بعد) أن حلك رائع كما تعودنا جزاك الله خيرا ووفقك دائما لما يحب ويرضي أخي العظيم / أباأحمد (عبدالله المجرب) ماشاء الله وفقت تماما في الشرح لم أكن لأشرح الكود مثلما فعلت والكود الأخير (مع أني لم أفحصه) أفضل بالتأكيد جزاك الله خيرا ووفقك دائما لما يحب ويرضي
  13. السلام عليكم أخي الكريم أولا الكود الذي ذكرته أنت يتم تفعيله مباشرة مع تفعيل الفورم وهو يمسح الخلايا D1:D99 في Sheets.1 ثم يمسح محتويات ListBox1 ثم يمر علي جميع الشيتات بلا استثناء إن كانت الخلية E1 تحوي رقما فيضيف إسم ذاك الشيت للـ ListBox1 ثم يوجد لديك أيضا الكود التالي والذي يتم تفعيله بالضغط علي Label1 الزر الأخضر (إختر الورقة / الورقات) Private Sub Label1_Click() 'On Error Resume Next For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then r = r + 1 Sheets(1).Cells(r, "D") = ListBox1.List(i) End If ListBox1.Selected(i) = False Next Me.Hide shift_all End Sub وهذا الكود عندما يتم تفعيله يدخل حلقة For - Next ليحدد (من محتويات HistBox1) ماالذي تم إختياره من عناصرها (التي هي أسماء شيتات) ويضعها بالترتيب بالعمود D بالشيت Sheets.1 ثم يخفي الفورم ويبدأ كود الترحيل shift_all والآن لنذهب لكود الترحيل الذي يعتمد في عمله علي محتويات العمود D في الورقة Sheets.1 Sub shift_all() Application.ScreenUpdating = False For rw = 1 To Sheets(1).[D99].End(xlUp).Row sh_nam = Sheets(1).Cells(rw, "D") Sheets(sh_nam).Select d = Range("f7", Range("f7").End(xlDown)).Count ... ... ... End Sub أول سطر كنت أفترض فيه أن عدد الشيتات لن يتجاوز 99 For rw = 1 To Sheets(1).[D99].End(xlUp).Row لذلك تجاوز عدد الشيتات التي ستختارها للترحيل رقم الـ 99 فستكون الخلية D99 بها بيانات نتيجة عمل كود Private Sub Label1_Click() الذي سبق شرحه وتكون نتيجة الأمر .[D99].End(xlUp).Row دائما 1 ، حيث يقف المؤشر علي الخلية D99 التي بها بيانات ويقفز للأعلي حيث يجد خليه ليس بها بيانات ، فلن يجد ويقف عند آخر خليه بالأعلي الخلية D1 ولن يرحل إلا شيت واحد فقط وكنت أقصد بــ "فقط يمكنك تغيير الـ 99 بـ 999 " أن تغير بالكود كل 99 إلي 999 أرجو أن يكون الأمر واضح ولاتتردد في أي سؤال
  14. السلام عليكم أخي الحبيب / جمال أنا أيضا لاألجأ للأكواد إلا إذا فشلت في المعادلات ولكن إحترافي للمعادلات لايرقي لمستواك وصبري أيضا ليس كصبرك فغالبا ماأيأس وألجأ للكود ولكني أشعر بسعادة بالغة إذا وجدت حلولا بالمعادلات فجزاك الله خيرا وأيضا المعادلة ليست بالغة التعقيد وإن كانت طويلة نسبيا مما سيجعل الملف بطيئا إذا كان كما قال أخونا الفاضل عصام (السائل) : الملف به 100 الف رقم لكنها تظل أجمل من الكود
  15. السلام عليكم وبعد إذن اخي جمال وضعت بجوار كل مجموعة الرقم المضاف ثم نسخت المجموعات مع الترتيب للورقة "س" وسميت المجال هناك extt وهكذا يمكنك حذف هذه المجموعات من هذه الورقة وإعتمد الكود علي مقارنة بداية الرقم مع العمود الأول من المجال extt وباستخدام دالة Vlookup إيجاد الرقم المضاف هذا هو الكود Function UMN(Mobile As Range) As String Dim Prefix As Integer Suffix = Right(Mobile, 5) Prefix = Left(Mobile, Len(Mobile) - 5) If Left(Mobile, 1) = 8 Then Prefix = 8: Suffix = Right(Mobile, Len(Mobile) - 1) m = WorksheetFunction.VLookup(Prefix, Range("extt"), 2, 0) UMN = m & Prefix & Suffix End Function تفضل المرفق وبه الدالة مفعلة باللون الأحمر Book1 no tel2.rar
  16. السلام عليكم أختنا الفاضلة يحدث هذا الخطأ نتيجة عدم وجود رقم سري بهذه القيمة أصلا في ورقة النتائج (Sheet1) ولتلافي هذا غيري المعادلة من =MATCH(Q6,Sheet1!D:D) إلي =MATCH(Q6,Sheet1!D:D,0) ولكن سيعطي لك خطأ في هذه الحالة إذا لم يكن الرقم السري موجود قد تضطرين في بعض الحالات لمليء بيانات الرقم السري للشهادات الخمس يدويا ثم تعيدين صيغة =Q6+1 بعد ذلك إذا كانت الأرقام السرية غير منتظمة ========================== ولشرح الدالة السابقة فإن دالة MATCH تقبل بالبحث التقريبي أو الدقيق دالة MATCH يعقبها (بين القوسين) ثلاثة معاملات الأول والثاني إلزاميين والأخير اختياري وهي تبحث عن الأول في مجال الثاني المعامل الثالث (الإختياري) يأخذ إحدي قيمتين 0،1 أو False, True وحيث أنه إختياري فيتم فرضه 1 أو True في حالة لم يتم إختياره وهذا المعامل الثالث (الإختياري) يجعل الدالة تأخذ بالتقريب إذا كان 1 أو True وتأخذ بالدقة إذا كان 0 أو False ونرجع للملف الرقم السري 645 غير موجود بالعمود D:D في Sheet1 إذا مررت بالعمود D:D من أعلي للأسفل ستجدي أن أول رقم يتجاوز الـ 645 هو 651 والموجود بالصف 1107 وصعودا منه للأعلي ستجدين ان أول صف به أرقام هو 1060 وهو ماتحصلين عليه نتيجة التقريب كل هذا الشرح ليس له مجال الآن ولكني فقط أردت ان تعرفي جيدا استخدام تلك الدالة الرائعة
  17. السلام عليكم أخي العزيز تفضل المرفق 2003 بلافورم ولاأكواد فقط معادلات وتنسيق شرطي نقل حقول2.rar
  18. السلام عليكم بالنسبة لحماية الشيت دون الملف من فتحها الا بكلمة مرور هذا هو الكود في حدث الصفحة Private Sub Worksheet_Activate() 1 [A9999].Select Application.DisplayFullScreen = True Application.CommandBars("Full Screen").Visible = False ActiveWindow.DisplayHeadings = False x = InputBox("Pass Word ??") If x <> "333" Then GoTo 1 [A1].Select Application.DisplayFullScreen = False Application.CommandBars("Full Screen").Visible = True ActiveWindow.DisplayHeadings = True End Sub والمرفق ملف مكون من 3 شيتات الورقة Z كلما دخلت إليها سيطلب منك الباسوورد الباسوورد هي "333" hide_Sheet.rar
  19. السلام عليكم تفضل المرفق Microsoft Office Excel Worksheet جديد2.rar
  20. السلام عليكم هذا الكلام غير دقيق ، فالشهادة الأولي مادة القرآن بها المعادلة التالية =OFFSET(Sheet1!$A$1,$S$6-1,D$1-1) وهذا يعني أن الدالة OFFSET ترجع للخلية A1 بالشيت الأول (شيت النتيجة) ومنها يتحرك المؤشر للأسفل (عدد صفوف) بمقدار S6-1 ولليسار (عدد أعمدة) بمقدار D1-1 بفرض أن المادة التي تريدين إضافتها إسمها (م) وتريدين إضافتها قبل أعمدة مادة العلوم التي هي أعمدة رقم 29-30-31 كل ماعليكي أن تنسخي هذه الأعمدة بالكامل ، ثم إدراج النسخة قبل أعمدة العلوم وتغيري عنوان المادة المنسوخة من (العلوم) إلي (م) ، لاحظي أن الصف الثالث (الذي به ارقام الأعمدة) سيتم نسخه أيضا وسيتغير أرقام أعمدة العلوم ومايليها من مواد ثم في شيت الشهادات ، أيضا تنسخي عمود العلوم وتدرجي النسخة قبل عمود العلوم وتغيري أيضا عنوان المادة المنسوخة من (العلوم) إلي (م) ، ولكن هنا الصف ألأول (الذي به ارقام الأعمدة) لابد من تضبيطه يدويا لمادة العلوم وما بعدها من مواد أنظري المرفق نتيجه الترم الثانى للمرحلة الاولي4.rar
  21. السلام عليكم الطبيعي أنه يقبل بلامشاكل لعدد 7 اجهزة قد تكون المشكلة في أن الأجهزة الرافضة للمشاركة ليس مفعل بها الأكواد (يعني قلل أمان الماكرو بها) أو قد تكون المشكلة في أن الملف بامتداد xlsb فهذا لايتعامل مع مشاركة الملفات نعم ممكن عمل كود يجعل الورقة مخفية (أو مخفية جدا) دائما إلا بكلمة سر مخفية :يمكن رؤيتها بدون استخدام محرر الأكواد ، إذا عرفت كلمة السر مخفية جدا :لايمكن رؤيتها بدون استخدام محرر الأكواد
  22. السلام عليكم إستخدم دالة today()
×
×
  • اضف...

Important Information