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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    192

كل منشورات العضو أ / محمد صالح

  1. بعد إذن أخي الكريم @عبدالفتاح في بي اكسيل كانت لي محاولة في هذا الشأن منذ عام 2011 في الأكسس فقمت بتطويع الكود للعمل مع نماذج الاكسل فقط يتم تحديد أفضل عرض bestw وأفضل ارتفاع besth في الكود في حدث UserForm_Initialize وهما دقة الشاشة التي تم التصميم عليها بالتوفيق resizeform.xlsb
  2. للأسف لا يوجد طريقة نسخة الاكسل للموبايل محدودة الإمكانيات وتفتقد الكثير من المميزات من ضمنها بعض المعادلات وإضافة أكواد vba أو عناصر activeX لأن هذه الأشياء تعتمد على نظام التشغيل ويندوز وربما في المستقبل القريب يتم التوصل لمحاكي ومترجم لاكواد vb في الاندرويد بالتوفيق
  3. جرب هذا الكود لزر الترحيل فقط Private Sub CommandButton3_Click() Dim rng1 As Range Dim str_search As String str_search = Txt2.Value Set rng1 = sheets("SHEET1").Range("E:E").Find(str_search, , xlValues, xlWhole) If Not rng1 Is Nothing Then Application.ScreenUpdating = False Dim row_number As Long row_number = rng1.Row lastColumn = IIf(Sheets("SHEET1").Range("t" & row_number) = "", 20, Sheets("SHEET1").Range("t" & row_number).End(xlToRight).Column + 1) sheets("SHEET1").Cells(row_number, lastColumn).Value = Txt4.Value sheets("SHEET1").Cells(row_number, lastColumn + 1).Value = Txt7.Value sheets("SHEET1").Select Cells(row_number, lastColumn).Select Me.Hide Application.ScreenUpdating = True End If MsgBox "تم ترحيل المبلغ والتاريخ" End Sub بالتوفيق
  4. يمكنك اخفاء ورقة العمل بدون كود كلك يمين على اسم الشيت ثم اخفاء hide ولو بالكود Sheets("sheet name").visible = False مع تغيير اسم الشيت المطلوب مكان sheet name بالتوفيق
  5. يمكن ربط تشغيل الكود بتغيير الخلية D3 خلية الفصل لا يؤثر ذلك على الكود وهذا كود حدث عند التغيير في شيت قائة فصل Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$3" Then Call mas_getdata4 End Sub يمكنك أن تبدأ من دورة vba الموجودة في أول موضوع مثبت في منتدى الاكسل (دليل المواضيع المثبتة) وفقنا الله جميعا لكل خير
  6. هذا الموضوع يعتمد على ملفين dll وملف خط ttf لذلك فقد شروط طلبك بالتوفيق
  7. هل كان الكود المستخدم من قبل الأستاذ حلمي فؤاد بدون مكتبات dll أو ocx ؟؟ لو يوجد واستعمل في الأكسس يمكن تطويعه للاستخدام في اكسل
  8. تفضل ملفك بعد تعديل أرقام الأعمدة في الصف الأول وتعديل المسلسل في العمودين A & E وتعديل كود الاجراء mas_getdata4 واضافة عمودين لحساب النوع وعدد البنين والبنات للعلم بعض خلايا الرقم القومي ناقصة بالتوفيق قائمة فصل.xlsm
  9. صاحب السؤال يقول والشرح بالفيديو يستخدم google chart api مثلها مثل مكتبات dll & ocr & QR4Office فضلا عن أن هذه المكتبات لا تتطلب الاتصال بالنترنت مثل google chart api
  10. يمكن استعمال المعادلة التالية في الخلية J17 من شيت المقسطون ='تسديد عميل'!C9 وهي لجلب قيمة عدد الأشهر المسددة مع وضع هذا الكود في حدث عند تغيير محتوى شيت المقسطون Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$3" Then Sheets("تسديد عميل").Range("b2").Value = Target.Value End Sub وهو يقوم بوضع رقم الملف المكتوب في شيت المقسطون في مكانه في شيت تسدسد عميل حتى يتم جلب الاشهر المسددة هناك أولا والمعادلة تجلبها هنا بالتوفيق
  11. التاريخ في حقل تاريخ الميلاد نص وليس تاريخا تم تحوله إلى تاريخ باكواد vba وإعادة تنسيقه ووضع خلية بها تاريخ حساب السن ووضع معادلة السن باليوم والشهر والسنة بالتوفيق تنسيق رياض الاطفال - Copy.xlsx
  12. لا أدري هل ظهر هذا بعد إلغاء تثبيت السيرفر ثم إعادة تثبيته فقط أم تمت بعض التغييرات في مجلدات السيرفر على العموم جرب ما يلي: الخروج من سيرفر Xampp الذهاب إلى المجلد E:\xampp\mysql\data تغييراسم ملف ibdata1 إلى مثلا ibdata1_old إعادة تشغيل سيرفر xampp إن شاء الله يعمل بعدها بالتوفيق
  13. أشك في وجود كود vba خالص لهذه العملية لابد من وجود مكتبات مساعدة dll او ocx بالتوفيق
  14. أكواد 32بت لا تعمل على 64بت والعكس صحيح والصواب أن يجمع الكود بين النواتين #if vba7 then 64bit codes #else 32bit codes #end if والفرق بين الكودين وضع ptrsafe قبل function أو sub
  15. نفعنا الله جميعا بما علمنا وعلمنا ما ينفعنا بالتوفيق
  16. الحل من وجهة نظري هو حماية تركيب المصنف فلا يمكن للمستخدم تغيير اسماء الشيتات ولا ترتيبها Review ---> protect workbook ---> password ---> structure ---> OK وبالنسبة للتعبير عن الشيت فهناك 3 طرق أولها ترتيب الشيت sheets(1) وللشيت اسمان اسم ظاهر في التبويبات وهذا في الكود الذي يعبر عنه sheet1.name والاسم البرمجي وهو يظهر في مستكشف المشروع في شاشة vbe ويكون رمزه sheets("data").codename وهذا الاسم البرمجي codename هو الذي لا يتأثر بتغير ترتيب الشيت ولا تسميته ففي الصورة السابقة Name = Data Codename = Sheet1 index = 1 بالتوفيق
  17. وفيكم بارك الله الرسم البياني للفرع كله فعلا اعتمادا على جدول البيانات المجاور للرسم البياني (الموظفين ونسب تحقيق الأهداف لجميع المنتجات) المتبقي يفهم من نسبة تحقيق الهدف مثلا المحقق 10٪ فالمتبقي 90٪ وإذا أضفتها سيتضاعف عدد الأعمدة 20 موظف ضرب 2 عمود ضرب 5 منتجات = 200 عمود (كثير جدا) لذا أنصح بعمود النسبة فقط والباقي هو ما يكمل المائة (معروفة) لا أدري ما المقصود بإجمالي المحقق للفرع كله؟ وإذا كنت تريد عملها فأعتقد في رسم بياني آخر مستقل تكون بياناته اجمالي المحقق للفروع كلها إجمالا او لكل منتج على حده بالتوفيق
  18. الجزء الخاص بالتاريخ على افتراض انه في العمود D الذي يلي C بمقدار عمود 1 هو F.Offset(0, 1) = ComboBox2.Text ولتغييره للعمود A الذي يسبق C بمقدار 2 F.Offset(0, -2) = ComboBox2.Text لذلك جرب الكود كاملا Set ws = Sheets("اصناف") For Each F In ws.Range("c5:c5000") If F = ComboBox1.Text and F.Offset(0, -2) = ComboBox2.Text Then ws.Select F.Select Exit For End If Next F ActiveCell.Value = ComboBox1.Value ActiveCell.Offset(0, 4).Value = TextBox4 ActiveCell.Offset(0, 5).Value = TextBox5 ActiveCell.Offset(0, 6).Value = TextBox6 ActiveCell.Offset(0, 9).Value = TextBox7 ActiveCell.Offset(0, 10).Value = TextBox8 MsgBox "تم تعديل البيانات بنجاح" End Sub وكان ينبغي أن تتوصل لها وحدك بالتوفيق
  19. كان ينبغي تحديد موضع عمود التاريخ على فرض ان اسم الصنف في العمود C والتاريخ في العمود D Set ws = Sheets("اصناف") For Each F In ws.Range("c5:c5000") If F = ComboBox1.Text and F.Offset(0, 1) = ComboBox2.Text Then ws.Select F.Select Exit For End If Next F ActiveCell.Value = ComboBox1.Value ActiveCell.Offset(0, 4).Value = TextBox4 ActiveCell.Offset(0, 5).Value = TextBox5 ActiveCell.Offset(0, 6).Value = TextBox6 ActiveCell.Offset(0, 9).Value = TextBox7 ActiveCell.Offset(0, 10).Value = TextBox8 MsgBox "تم تعديل البيانات بنجاح" End Sub بالتوفيق
  20. لا طبعا ليست بسهولة الفرز في الشيت تحتاج الى اكواد كثيرة
  21. يمكنك تنفيذ هذا الكود ونفس الطريقة على الملف الآخر
  22. لا أعتقد وجود معادلة تقوم بهذا الدور لذلك يمكنك استعمال اكواد vba مع ملاحظة ان اختيار الاسم في شيت A يجب ان يكون من قائمة الاسماء في شيت B لضمان المطابقة تم وضع معادلات للعد وكود لجلب أيام العياب مجمعة بالتوفيق دمج أيام الغياب في خلية واحدة.xlsb
  23. جرب استعمال هذا الكود Sub masTar7eel() Application.ScreenUpdating = 0 Range("B2:B16").Copy Sheets("الشيت").Select lr = Cells(Rows.Count, 1).End(xlUp).Row + 1 Range("A" & lr).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True Application.CutCopyMode = 0 Range("A" & lr).Select Sheets("ادخال بيانات").Select Range("B2:B16").ClearContents Range("B2").Select Application.ScreenUpdating = 1 MsgBox "Done by mr-mas.com" End Sub وهو عبارة عن تسجيل ماكرو لنسخ الخلايا من الشيت الاول الى آخر صف في الشيت الثاني مع خيار اللصق transpose ولا تنس أن تحفظ الملف بامتداد يدعم الاكواد مثل xlsb بالتوفيق
  24. الكود يعمل بصورة جيدة بشرط ألا تكون بيانات العمود المطلوب فارغة في شيت البيانات الأساسية جرب أن تكتب مسافة فقط في اول خلية في عمود تاريخ العودة وعمود ملاحظات في شيت البيانات الأساسية وقم بالضغط على الزر لن تجد أي خطأ
×
×
  • اضف...

Important Information