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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    185

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

  1. هل معنى هذا الرد أن طريقة دبل كلك ثم انتر لم تعمل معك؟ رغم أني ضد السؤال الذي لا يكتب السائل فيه الظروف التي أوصلته لهذه الحالة فربما معلومة يذكرها تكون السبب في الوصول للحل بدلا من التخمين من قبل الإخوة المشاركين في حل المشكلة على العموم إذا لم تنفع معك كل الحلول السابقة جرب هذه المعادلة =--CLEAN(TRIM(SUBSTITUTE(T5, CHAR(160), CHAR(32)))) رغم أني مؤمن تمام الإيمان أن شركة ميكروسوفت تجعل معظم الميزات متساوية بين أوفيس الويندوز وأوفيس الماك يعني ما ينجح في ويندوز ينجح في ماك بالتوفيق
  2. للأسف لا أملك جهاز ماك لذلك جرب أن تضغط دبل كلك في الخلية ثم انتر بدون تغيير في قيمة الخلية
  3. الأرقام منسوخة من ملف نصي وتحتفظ بتنسيقها كنص حتى وإن غيرت تنسيق الخلايا إلى رقم ولي حيلة في مثل هذه الأمور ضغ في الخلية S5 هذه المعادلة =T5*1 وهي لضرب الرقم الموجود في T5 في 1 أي الاحتفاظ بنفس قيمته أو استعمال الدالة value =VALUE(T5) ثم اسحب المعادلة لأسفل ثم استبدل القيم القديمة بالقيم الجديدة من خلال التحديد والسحب والافلات بالتوفيق
  4. جميعا بإذن الله يوجد في المنتدى الكثير من الكتب والدورات لتعليم vba بل حتى الموضوعات العادية هي كنز لمن يريد أن يتعلم
  5. الذي فهمته من مشاركتك الأولى أن المعادلة التي تظهر الأسماء صحيحة والخطأ في معادلات الرقم والفرع والمديونية فقمت بإصلاحها لكن طالما يقتضي الأمر تغيير معادلة الأسماء فما المطلوب فيها؟ المعادلة الحالية تقوم بجلب الأسماء بشرط أن يكون الرصيد أكبر من صفر وأيضا أكبر من أو يساوي قيمة الخلية E1 (فارغة تساوي صفر)
  6. لا أعتقد إمكانية وضع 2 قاعدة للتحقق من الصحة ولكن يمكن التحايل على ذلك بالكود التالي في حدث عند تغيير محتويات الشيت sheet1 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 5 Then If Target.Offset(0, 1) = "" Then Target.Value = Null End If If Target.Column = 6 Then Target.Offset(0, -1).Select With Selection.Validation .Delete .Add Type:=xlValidateList, Formula1:="=$A$1:$A$3" End With End If End Sub مع تغيير امتداد الملف لصيغة تدعم الماكرو مثل xlsb بالتوفيق
  7. الحل في إلغاء تثبيت الخلية F7 ضع هذه المعادلة في الخلية G7 =IF($F7="","",VLOOKUP($F7,$B$4:$C$28,2,0)) ثم اسحب لأسفل كما تشاء
  8. متى يظهر الخطأ؟ عند الضغط على أي زر؟ وفي أي شيت؟
  9. يمكنك استعمال هذا الإجراء وربطه مع أي زر ThisWorkbook.Close 1 بالتوفيق
  10. تم استعمال دوال أخرى في البحث أدق وهي index & match تفضل ملفك بعد التعديل عميل2.xlsx
  11. شكرا لكلماتك الطيبة تم تعديل سطر المعادلة وإضافة شرط أن تكون درجة المعدل أقل من 5 أو يساوي "ن.م.ر" في المشاركة السابقة لي بالتوفيق
  12. المشكلة في هذه الملفات هو اختلاف عدد الأعمدة في الشيتات 10 و11 و12 ولكن تم التغلب عليها بإذن الله يمكنك استعمال هذا الكود لتنفيذ المطلوب Sub insertformula() Application.ScreenUpdating = 0 Dim strfile As String, objBook As Workbook, lr As Long, c As Integer strfile = Dir(ThisWorkbook.Path & "\*.xlsx", vbNormal) While strfile <> "" Set objBook = Workbooks.Open(ThisWorkbook.Path & "\" & strfile) c = objBook.Sheets("data").Range("b10").CurrentRegion.Columns.Count lr = objBook.Sheets("data").Range(IIf(c = 10, "j", "l") & Rows.Count).End(xlUp).Row objBook.Sheets("data").Range(IIf(c = 10, "k", "m") & "12").Formula = "=IF(Or(" & IIf(c = 10, "j", "l") & "12<5," & IIf(c = 10, "j", "l") & "12=""ن.م.ر""),""يكرر"",""ينتقل"")" objBook.Sheets("data").Range(IIf(c = 10, "k", "m") & "12").AutoFill Destination:=objBook.Sheets("data").Range(IIf(c = 10, "k", "m") & "12:" & IIf(c = 10, "k", "m") & lr) objBook.Sheets("data").Range("b12").Select objBook.Close 1 strfile = Dir() Wend Application.ScreenUpdating = 1 MsgBox "Done" End Sub وهو لفتح جميع ملفات الاكسل بامتداد xlsx في مجلد البرنامج ثم عد الأعمدة ووضع المعادلة ثم حفظ المصنف وإغلاقه بالتوفيق
  13. لمنع تعديل الصور في نافذة حماية الشيت protect sheet قم بإلغاء تنشيط edit objects
  14. هذا الخطأ له احتمالات كثيرة لذا يفضل عرض الكود كاملا والسطر موضع الخطأ حتى يمكننا مساعدتك بإذن الله
  15. المقصود واضح جدا وزيادة في التوضيح إضغط على الرابط في المشاركة السابقة لي سيفتح معك نتائج البحث في المنتدى زر جميع نتائج البحث تفهم الأكواد المستعملة طبق هذه الأكواد على ملفك هذا طريق من يريد التعلم الذاتي المستمر بالتوفيق
  16. ربما تقصد تثبيت الصفوف * يمكنك نقل هذه الخلايا جنب بعضها في الصف الأول * ثم من تبويب view / عرض اختر freeze panes / تجميد الألواح ثم اختر freeze top row تجميد صف المقدمة أرجو أن يكون هو المطلوب
  17. تفضل هذا الملف بعد تعديل بسيط تم حذف عمود الكمية الكلية وتمت قراءة البيانات من شيت البيانات الثابتة Test3.xls
  18. بالنسبة لموضوع إنشاء أكثر من صفحة فلا يمكن مع استعمال العلامات المرجعية bookmarks ولكن يمكننا التحايل على الأمر بدمج الملفات التي يتم إنشاؤها بالكود في ملف واحد باسم المجموعة ويتم تخزينه في مجلد باسم (المجموعات) يجب إنشاؤه في نفس مجلد البرنامج وهذا هو الكود بعد التعديل Private Sub أمر11_Click() Dim X As Object Dim objWord As Object Set X = CreateObject("Word.Application") While Me.CurrentRecord < Me.Recordset.RecordCount If Me.Groupx = Me.grooup Then X.Documents.Open CurrentProject.Path & "\asdf.docx" X.Visible = True X.ActiveDocument.Bookmarks("asx").Select X.Selection.InsertAfter NewNamee Dim rs As DAO.Recordset, NewName As String, noobBB As String, NewNamex As String Set rs = CurrentDb.OpenRecordset("SELECT WAdecisA.NewNamee, WBRation.NewName FROM WAdecisA INNER JOIN WBRation ON WAdecisA.noa = WBRation.noob WHERE WAdecisA.noa= " & noa & ";", dbOpenSnapshot) With rs .MoveLast .MoveFirst For i = 1 To .RecordCount NewName = NewName & IIf(NewName = "", "", vbCrLf) & Nz(rs.Fields(1).Value, "") .MoveNext Next i End With X.ActiveDocument.Bookmarks("bc").Select X.Selection.InsertAfter NewName NewName = "" Set rs = CurrentDb.OpenRecordset("SELECT WAdecisA.NewNamee, WCdecisQ.noobBB , WCdecisQ.NewNamex FROM WAdecisA INNER JOIN WCdecisQ ON WAdecisA.noa = WCdecisQ.nooc WHERE WAdecisA.noa= " & noa & ";", dbOpenSnapshot) With rs .MoveLast .MoveFirst For i = 1 To .RecordCount noobBB = noobBB & IIf(noobBB = "", "", vbCrLf) & Nz(rs.Fields(1).Value, "") NewNamex = NewNamex & IIf(NewNamex = "", "", vbCrLf) & Nz(rs.Fields(2).Value, "") .MoveNext Next i End With X.ActiveDocument.Bookmarks("bzd").Select X.Selection.InsertAfter NewNamex NewNamex = "" X.ActiveDocument.saveas2 CurrentProject.Path & "\" & noa & "_" & Format(Now(), "dd_mm_yyyy_hh_mm_AM/PM") & ".docx" X.ActiveDocument.Close SaveChanges:=0 End If DoCmd.GoToRecord Record:=acNext Wend DoCmd.GoToRecord Record:=acFirst strFile = Dir(CurrentProject.Path & "\*.docx", vbNormal) Set objNewDoc = X.Documents.Add While strFile <> "" And strFile <> "asdf.docx" Set objDoc = X.Documents.Open(FileName:=CurrentProject.Path & "\" & strFile) objDoc.Range.Copy objNewDoc.Activate X.Selection.Paste objDoc.Close SaveChanges:=0 Kill CurrentProject.Path & "\" & strFile strFile = Dir() If strFile <> "" And strFile <> "asdf.docx" Then X.Selection.InsertBreak Type:=1 End If Wend X.ActiveDocument.saveas2 CurrentProject.Path & "\المجموعات\" & grooup & "_" & Format(Now(), "dd_mm_yyyy_hh_mm_AM/PM") & ".docx" X.Quit Set X = Nothing MsgBox "done" End Sub فكرة الكود هي البحث عن جميع الملفات بامتداد docx في نفس المجلد غير asdf.docx ودمجهم بالتوفيق
  19. شكرا أخي @أبو إبراهيم الغامديهذا الذي أفعله في برمجة الويب كتابة التنسيق بلغة html ووضع البيانات القادمة من الاستعلامات في أماكنها لكن طريقة العلامات المرجعية bookmarks المقترحة من صاحب السؤال هي التي فرضت علينا التعامل معها لحل مشكلته وإذا سمحت لي فالمشكلة في الكود في المرفق في هذه المشاركة Open Me.Groupx & ".mht" For Output As #1 وتغييره إلى Open CurrentProject.Path & "\" & Me.Groupx & ".doc" For Output As #1 ما أجمل الربط بين مهارات البرمجة في كل مجال
  20. يمكن تغيير الأسماء بأسماء افتراضية مثل محمد1 مع السحب المهم مثال يعمل الناس على المطلوب فيه لتقريب وجهات النظر
  21. يوجد معادلتان في الشيت الأولى تقوم بجمع المبالغ الموجودة في العمود D والثانية تقوم بعد هذه المبالغ وتعملان حتى الصف 1000 ويمكنك زيادة نهاية الصفوف في المعادلة إذا تجاوزت 1000 صف من المبالغ
  22. أخي الكريم يمكنك استعمال الدوال المستعملة في هذه النتائج وتنسيقها لتناسب رغباتك Showing results for 'تفقيط مساحة'. - أوفيسنا (officena.net) أو تعديل ملفك ليتناسب مع الأكواد فكلاهما صواب
×
×
  • اضف...

Important Information