اذهب الي المحتوي
أوفيسنا

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    192

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

  1. تفضل هذا الملف بعد تعديل بسيط تم حذف عمود الكمية الكلية وتمت قراءة البيانات من شيت البيانات الثابتة Test3.xls
  2. بالنسبة لموضوع إنشاء أكثر من صفحة فلا يمكن مع استعمال العلامات المرجعية 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 ودمجهم بالتوفيق
  3. شكرا أخي @أبو إبراهيم الغامديهذا الذي أفعله في برمجة الويب كتابة التنسيق بلغة html ووضع البيانات القادمة من الاستعلامات في أماكنها لكن طريقة العلامات المرجعية bookmarks المقترحة من صاحب السؤال هي التي فرضت علينا التعامل معها لحل مشكلته وإذا سمحت لي فالمشكلة في الكود في المرفق في هذه المشاركة Open Me.Groupx & ".mht" For Output As #1 وتغييره إلى Open CurrentProject.Path & "\" & Me.Groupx & ".doc" For Output As #1 ما أجمل الربط بين مهارات البرمجة في كل مجال
  4. يمكن تغيير الأسماء بأسماء افتراضية مثل محمد1 مع السحب المهم مثال يعمل الناس على المطلوب فيه لتقريب وجهات النظر
  5. يوجد معادلتان في الشيت الأولى تقوم بجمع المبالغ الموجودة في العمود D والثانية تقوم بعد هذه المبالغ وتعملان حتى الصف 1000 ويمكنك زيادة نهاية الصفوف في المعادلة إذا تجاوزت 1000 صف من المبالغ
  6. أخي الكريم يمكنك استعمال الدوال المستعملة في هذه النتائج وتنسيقها لتناسب رغباتك Showing results for 'تفقيط مساحة'. - أوفيسنا (officena.net) أو تعديل ملفك ليتناسب مع الأكواد فكلاهما صواب
  7. يمكنك استعمال هذه الحلقات التكرارية للتأكد من تساوي قيمة العمود a في شهر3 مع العمود a في استعلام ثم تلوين النطاق من a إلى r lr = Sheets("شهر3").Cells(Rows.Count, 1).End(xlUp).Row Debug.Print lr For n = 2 To lr lr2 = Sheets("استعلام").Cells(Rows.Count, 1).End(xlUp).Row Debug.Print lr2 For m = 9 To lr2 If Sheets("شهر3").Range("A" & n) = Sheets("استعلام").Range("A" & m) Then Sheets("شهر3").Range("A" & n & ":R" & n).Interior.Color = 10213316 End If Next m Next n يمكنك وضعها بعد أمر الطباعة بالتوفيق
  8. فكرة السؤال هي نفس فكرة هذا الموضوع والحل بإذن الله تعديل كود الزر 11 إلى: 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 X.Quit Set X = Nothing MsgBox "done" End Sub لاحظ أمر حفظ الملف باسم جديد هو رقم القرار وتاريخ ووقت التصدير وتفريغ المتغيرات التي تحتوي على سجلا النموذج الفرعي شرط اختبار المجموعة في السجل الحالي وأنصح بوضع كلمة الأولى مثلا كقيمة افتراضية default value للقائمة الخاصة بالمجموعات بالتوفيق
  9. ربما يكون هذا هو السبب في عدم عمل كود الطباعة كود الطباعة يعتمد على أنه بمجرد تغيير قيمة الخلية v7 يتم جلب البيانات الخاصة بالشهادة وبعدها يعطي أمر طباعة الحالية وللدمج بين الكودين يمكنك اتباع الآتي: * جعل الخلية المرتبطة في spinner1 هي الخلية v7 وليست v1 * تغيير v1 إلى v7 في هذين السطرين في كود الإجراء Shehada x = (Ws.Range("V7") - 1) * 2 + 1 y = Ws.Range("V7") * 2 تغيير كود إجراء طباعة الكل إلى ما يلي: Sub printall() ActiveSheet.Select Range("w7") = Range("w7") / 2 For i = Range("v7") To Range("w7") Range("v7") = i Shehada If i <= Range("v7") Then ActiveWindow.SelectedSheets.PrintOut , Copies:=1, preview:=False, Collate:=True End If Next i ActiveSheet.Select End Sub لطباعة الشهادات من 1 إلى 8 نكتب بصورة طبيعية 1 في الخلية v7 ونكتب 8 في الخلية w7 سيحولها الكود من 1 الى 4 لأن في كل صفحة شهادتين بالتوفيق
  10. يسأل عنها صاحب الكود ولكن ربما تكون هذه الطريقة Unviewable+ Best Way for VBA Code Protection — TheSpreadsheetGuru
  11. لماذا لا يمكن وضع كل الجداول في شيت واحد؟ هل يزيد عدد الصفوف فيها جميعا عن 1048576 (مليون و48 ألف و 576) وهو عدد الصفوف المسموح به في اكسل؟ عموما أخي الكريم الترحيل الذي يتبعه التحديث عند التعديل الأفضل فيه أن يكون معادلات
  12. لا أجد ملفا مرفقا من حضرتك حتى يمكن توضيح وجهة نظري فيه ولا أجد وقتا لعمل ملف يناسب احتياجات حضرتك
  13. شكرا لكلماتك الطيبة أنا شخصيا في مثل هذه الأمور اجعل جميع العمليات في شيت واحد وأيضا استعمل دالة الجمع المشروط sumif او sumifs بالتوفيق
  14. ثمانية مطلوبات !!!!!! ....... وكل واحد منهم يحتاج الكثير من العمل !!!!! الهدف الأساسي للمنتدى هو تبادل الخبرات ومساعدة كل منا للآخر فيما لا يستطيع عمله وليس في أن يصمم أحدنا للآخر برنامجا كاملا (فما مقابل الوقت والجهد المبذول في تصميم وبرمجة الملف؟؟!!) فالأفضل هو قراءة الموضوعات التي يتعلم منها الإنسان تصميم برنامجه بنفسه وإذا عجز عن نقطة أو اثنين على الأكثر يعرضها ساعتها سيجد الجميع يساعده
  15. هذه ليست مشكلة إنما هي رسالة تخبر أن مشروع الأكواد vba في الملف لا يمكن عرضه (إخدى وسائل حماية صاحب الكود لأكواده)
  16. بالتوفيق لا تنس اختيار أفضل إجابة والإعجاب بالمشاركات المفيدة لك
  17. السؤال نظري فبالتالي الإجابة نظرية ولو كان في السؤال كود لعدلته لك
  18. هذا بالضبط الذي يقوم الكود الموجود في الطباعة printall حلقة تكرارية من v7 إلى w7 ثم يكتب في v7 رقم الصفحة ثم يقوم بطباعة الحالية وهكذا حتى تنتهي الصفحات
  19. هل المقصود أنك إذا كتبت مثلا في الخلية V1 الرقم 1 يطبع شهادة واحدة فقط ولا تظهر الثانية بالأسفل وإذا كتبت 2 تظهر الشهادتان ؟؟
  20. إذا كان الحل هو دمج المراسلات والمشكلة هي عرض أكثر من صف في نفس الصفحة فبإذن الله يفيدك هذا الموضوع
  21. ما دام الترحيل تلقائيا والتعديل تلقائيا فيمكنك استعمال المعادلات فهي يتم تحديثها حسب المصدر وأبسط طريقة لجلب بيانات من شيت إلى آخر هو استعمال المعادلة التالية ='sheet name'!a1 وتعني إحضار قيمة الخلية a1 من الشيت المسمى sheet name وهكذا
×
×
  • اضف...

Important Information