نجوم المشاركات
Popular Content
Showing content with the highest reputation on 02/26/22 in all areas
-
السلام عليكم تحتاج للمعادلة ادناه =IF((B4<>0)*AND(A4=0),0.3,B4/A4) فضلا انظر للمرفق واي استفسار اخبرني مع الشكر ملف.xlsx4 points
-
وعليكم السلام اتفضل تم تعديل الكود الى Private Sub p1_Click() [Forms]![tb_bill]![tb_Billdetails]![codeitmes] = Me.[codeitmes] [Forms]![tb_bill].SetFocus [Forms]![tb_bill]![tb_Billdetails].SetFocus DoCmd.GoToRecord , , acNewRec End Sub بالتوفيق شاشة الاصناف.accdb3 points
-
وعليكم السلام استاذ وائل 🙂 يا ريت توضح ما الذي تريده بالضبط ، حتى يستطيع الاعضاء مساعدتك 🙂 جعفر2 points
-
2 points
-
إخواني إليكم هذا الملف المرفق وأتمنى لكم الفائدة مع خالص تحياتي أخوكم رضا عقيل p4.rar1 point
-
السلام عليكم 🙂 هذا المنتدى للتبادل العلمي ، حتى يستفيد منه الجميع ، وليس صاحب الموضوع / السؤال فقط 🙂 فيا ريت ان نضع الاجابة بالتفصيل في الرد (سواء الخطوات او الكود او صور من شاشة البرنامج) ، ولا نتوقف عند ارفاق المرفق الذي به الرد / الجواب ، والسبب هو ، حتى يستطيع الجميع رؤية الرد ومعرفته مباشرة ، دون اللجوء الى انزال المرفق وفهمه 🙂 نعم ، هذا عبء إضافي ، ولكن نتائجه ستكون مثمرة ان شاء الله 🙂 وتذكروا ، هذا مجرد طلب ورجاء ، وليس اجباري 🙂 شكرا جزيلا 🙂 جعفر1 point
-
اخيرا نعم اخي عبدالفتاح في بي اكسيل ضبط الف شكر لكم جميعاً ما قصرتوا انت والاخ محمد يوسف ابو يوسف1 point
-
@محمد بن صالح اعتقد انك محق بخصوص الخطا جرب هذا سيعمل معك قم بتغيير من ActiveWorkbook.SaveAs Filename:="E:\التقرير لتاريخ" & "\العمل " & Format(Date - 1, "DD-MM-YYYY") & ".xlsm", _ FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False الى ActiveWorkbook.SaveAs Filename:="E:\التقرير لتاريخ" & "\العمل " & Format(Date - 1, "DD-MM-YYYY") , _ FileFormat:=51, CreateBackup:=False1 point
-
اخي انت تخطأ اسناء نسخك للكود فمن فضلك قم بتحميل الملف المرفق ثم اضغط علي الزر ثم انظر مذا يحدث لن تجد هذا الخلل1 point
-
وعليكم السلام 🙂 حيا الله اخوي محمد 🙂 في الواقع عمل هذا النوع من المجاميع في الجدول او الاستعلام ، يبطئ عمل الجدول والاستعلام ، ولا ارى فائدة منه ، إلا اذا تسمح للمستخدم ان يرى البيانات في الجدول ، وهذه كارثة 😱 جعفر1 point
-
1 point
-
Here's a file with 3000 rows File.xlsm1 point
-
Try the code with large amount of data and tell us the final result and the time that will the code take1 point
-
شكرا جزيلا جاري التجربه موفق اخي الكربم.... هل ممكن ان يعمل هذا الكود مع حجم البيانات الكبير مقدر تعبك و مجهودك و حسن تعاونك1 point
-
Just change the range in this line to suit your needs Range("A2", Range("A" & Rows.Count).End(xlUp))1 point
-
الان فهمت قصدك..بارك الله فيك اي ان الجدول firstd يحمل قيمة واحدة فقط ...كودك يعمل بشكل جيد حسب فهمي اخي العزيز انه طالما الاستعلام يفي بغرضك فلا تلجا الى الوحدة النمطية ..والله اعلم1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
أخي محمد بن صالح هل انت تستخدم الملف المرفك ام تقوم بنسخ الكود ما اصدار الاوفيس لديك اخي محمد بن صالح اذا كنت لا تريد شئ اخر 1:يجب عليك انهاء الموضوع بالضغط علي افضل اجابه : لمن قدم اليك طلبك جزاك الله خيراً1 point
-
اخي محمد بن صالح تفضل Sub export_specificsheet() Application.ScreenUpdating = False Application.DisplayAlerts = False Cells.Select Application.CutCopyMode = False Selection.Copy Workbooks.Add Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False ActiveWorkbook.SaveAs Filename:="E:\العمل\" & "التقرير لتاريخ " & Format(Date - 1, "DD-MM-YYYY") & ".xlsm", _ FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False ActiveWindow.Close Range("a1").Select Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub الملف نسخ من ورقة لمصنف جديد بشروط.xlsm اخي الملف يعمل بكفائة لدي اخبرني بالنتيجة1 point
-
لا تكثر من اضافة طلب جديد في كل مرة سيجعل الاعضاء غير متحمسين لتقديم المساعدة انظر الى هذه السطر وغير xlsm . الى xlsx . ActiveWorkbook.SaveAs Filename:="E:\العمل\" & "التقرير لتاريخ " & Format(Date - 1, "DD-MM-YYYY") & ".xlsm", FileFormat:= _1 point
-
1 point
-
مجرد اقتراح ضع هذا السطر Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False بعد Workbooks.Add1 point
-
ربما Sub test() With Sheets("B") a = Join(Application.Transpose(.Range(.Cells(2, 1), .Cells(2, 1).End(xlDown)))) b = Join(Application.Transpose(.Range(.Cells(2, 2), .Cells(2, 2).End(xlDown)))) End With With Sheets("C") a1 = Join(Application.Transpose(.Range(.Cells(2, 1), .Cells(2, 1).End(xlDown)))) b1 = Join(Application.Transpose(.Range(.Cells(2, 2), .Cells(2, 2).End(xlDown)))) End With a = Split(a & " " & a1): b = Split(b & " " & b1) With CreateObject("scripting.dictionary") For i = 0 To UBound(a) If Not .exists(a(i)) Then .Add a(i), b(i) Next a = Application.Transpose(Array(.keys, .items)) End With Sheets("A").Cells(2, 1).Resize(UBound(a), 2) = a With Worksheets("A").Sort Worksheets("A").Sort.SortFields.Clear Worksheets("A").Sort.SortFields.Add2 Key:=Range("A2:A" & UBound(a) + 1), _ SortOn:=xlSortOnValues, Order:=xlAscending .SetRange Range("A2:b" & UBound(a) + 1) .Header = xlGuess .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub1 point
-
بعد اذن اخي مهند اخي matrex 300 تفضل طلبك الملف طباعة نسخة بي دي اف ونسخة علي طباعيه.xlsm1 point
-
To implement .. With your workbook active press Alt+F11 to bring up the vba window. In the Visual Basic window use the menu to Insert|Module Copy and Paste the code below into the main right hand pane that opens at step 2. Close the Visual Basic window. Press Alt+F8 to bring up the Macro dialog Select the macro & click ‘Run’ Your workbook will need to be saved as a macro-enabled workbook (*.xlsm) Don't forget to remove the conditional formatting from the worksheet1 point
-
اخي محمد بن صالح السلام عليم تفضل نسخ من ورقة لمصنف جديد بشروط (1).xlsm1 point
-
وتكملة لكود اخي المهندس قاسم ، في حال لم يكن هناك صورة في المسار: Private Sub Form_Current() on error goto err_Form_Current Dim Path As String Path = Application.CurrentProject.Path & "\img\" Me![صورة0].Picture = Path & "1.jpg" Exit_Form_Current: exit sub err_Form_Current: if err.number=2220 then 'No image in path Me![صورة0].Picture = "" resume next else msgbox err.number & vbcrlf & err.description resume Exit_Form_Current end if End Sub جعفر1 point
-
وعليكم السلام هناك العديد من الطرق لكن فكرت بطريقة سهلة..ويمكنك ان تستخدم الكود على ازرار التنقل عملته لك على زر الحفظ document1.rar1 point
-
وعليكم السلام 🙂 علشان تختار اكثر من اسم ، عندك اختيارين: 1. السجل تعمل فيه حقل iSelect من نوع نعم/لا ، ثم تعمل نموذج مستمر ، ويمكنك ان تختار اكثر من سجل/اسم. 2. تعمل مربع خيار ListBox ، ثم تجعل خيارات . فتستطيع بالنقر مرة على الاسم ان تختاره او تلغي الاختيار . وتضع احد الاختيارين في نموذج رئيسي ، وتعمل بقية الحقول المطلوبة ، والتي لا تكون مرتبطة بجدول ، وبعد اختيار الاسماء وتعبئة الحقول ، يكون عندك زر لتفريغ هذه البيانات في الجدول لهذه الاسماء ، سواء ان تُلحق سجل جديد ، او تعمل تحديث لسجل موجود ، كود الزر يعمل حلقة دوران للاسماء ، ويُدخل بيانات الحقول 🙂 جعفر1 point
-
Sub Test() Dim w, d As Object, r As Range Set d = CreateObject("Scripting.Dictionary") d.CompareMode = 1 With Range("A2", Range("A" & Rows.Count).End(xlUp)) .Interior.colorIndex = xlNone For Each r In .Cells If Not d.Exists(r.Value) Then ReDim w(1 To 2) Set w(1) = r With Application.WorksheetFunction w(2) = Array(.RandBetween(0, 255), .RandBetween(0, 255), .RandBetween(0, 255)) End With d(r.Value) = w Else w = d(r.Value) r.Interior.Color = RGB(w(2)(0), w(2)(1), w(2)(2)) If Not IsEmpty(d(r.Value)(1)) Then d(r.Value)(1).Interior.Color = RGB(w(2)(0), w(2)(1), w(2)(2)) w(1) = Empty d(r.Value) = w End If Next r End With End Sub1 point
-
السلام عليكم ورحمة الله وبركاته أخي الكريم أجريت التعديل التالي على الملف المرفق لتكون الطباعة لديك ديناميكية لتحصل من خلالها مدى الطباعة كاملاً قل أو كثر كما تم تغيير الطباعة من أفقيه إلى عمودية ملاحظة: يرجى الانتباه إلى أنك إذا غيرت بإعدادات الطباعة سيتحول نطاق الطباعة إلى نطاق محدد وقد يكون أكبر مما هو محدد في تحرير الاسم في الصورة أدناه... فإن تغير ووجدت أن النطاق المراد طباعته أصبح أكبر فعليك بنسخ الكود أدناه ووضعه في مربع تحرير الاسم Print_Area Print_Area =OFFSET(الوصل!$C$1;;;COUNT(الوصل!$C$8:$C$200)+8;8) أما في الكود فقد تم وضع Print_Area كمدىً بدلاً من تحديده من خلية إلى أخرى على الشكل التالي: Private Sub CommandButton1_Click() Dim I As Long For I = Range("N8").Value To Range("O8").Value Sheets("البودرة").Range("A1:S8044").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("N1:P2"), CopyToRange:=Range("C6:J6"), Unique:=False Range("N7").Value = I Range("Print_Area").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1 Next I End Sub والله ولي التوفيق والسلام عليكم ورحمة الله وبركاته أخوكم أبو يوسف طبع الوصولات جملة واحدة حسب الارقام المختارة.xlsm1 point
-
بعد مراجعة الموضوع من أوله تبين أن هذه الدالة تفي بالغرض سواء في الأعمدة أو الصفوف لأن المستخدم يقدم لها نطاقا يمكن أن يكون صفا أو عمودا أو أكثر مثال لاستخدامها لجمع الأعمدة نكتب في الخلية i15 =CountShapes(I4:I14) مثال لاستخدامها لجمع الصفوف نكتب في الخلية v5 =CountShapes(A5:U5) بالتوفيق1 point
-
اعتقد ان هذا الماكرو يفي بمتطلباتك اكتبي رقم العمود الذي تريدينه ان يقوم بترحيل بياناته Sub parse_data() Dim lr As Long Dim ws As Worksheet Dim vcol, i As Integer Dim icol As Long Dim myarr As Variant Dim title As String Dim titlerow As Integer Application.ScreenUpdating = False vcol = Application.InputBox(Prompt:=" اي العمود الذي تريد فرزه", title:="فلترة عمود", Default:="3", Type:=1) Set ws = ActiveSheet lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row title = "A1" titlerow = ws.Range(title).Cells(1).Row icol = ws.Columns.Count ws.Cells(1, icol) = "Unique" For i = 2 To lr On Error Resume Next If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then ws.Cells(ws.Rows.Count, icol).End(xlUp).Offset(1) = ws.Cells(i, vcol) End If Next myarr = Application.WorksheetFunction.Transpose(ws.Columns(icol).SpecialCells(xlCellTypeConstants)) ws.Columns(icol).Clear For i = 2 To UBound(myarr) ws.Range(title).AutoFilter field:=vcol, Criteria1:=myarr(i) & "" If Not Evaluate("=ISREF('" & myarr(i) & "'!A1)") Then Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & "" Else Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count) End If ws.Range("A" & titlerow & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A1") 'Sheets(myarr(i) & "").Columns.AutoFit Next ws.AutoFilterMode = False ws.Activate Application.ScreenUpdating = True End Sub1 point
-
السلام عليكم ورحمة الله استخدمى هذا الكود Sub CrNewSheets() Dim dic As Object, arr As Variant, Itm Dim i As Long, ws As Worksheet Set ws = Sheets("مخازن رقم 1") Set dic = CreateObject("scripting.dictionary") arr = ws.Range("J2:J" & ws.Range("J" & Rows.Count).End(3).Row).Value For i = 1 To UBound(arr) dic(arr(i, 1) & "") = "" Next On Error Resume Next ws.Range("A1:K1").Copy For Each Itm In dic.keys If Len(Trim(Itm)) > 0 Then If Len(Worksheets(Itm).Name) = 0 Then Sheets.Add(after:=Sheets(Sheets.Count)).Name = Itm Sheets(Itm).Range("A1").PasteSpecial xlPasteAll End If End If Next Application.CutCopyMode = False End Sub1 point
-
هذا ملفك بعد تنفيذ المطلوب التصفية بشرطين الفصل والنوع بالتوفيق قائمة فصل بنون وبنات.xlsx1 point
-
Sub Test() Dim x, ws As Worksheet, sh As Worksheet, s As String, m As Long Application.ScreenUpdating = False Set ws = Worksheets(1) Set sh = Worksheets(2) sh.Range("B7:B" & Rows.Count).ClearContents s = sh.Range("AI3").Value If s = "" Then MsgBox "Select Grade First", vbExclamation: Exit Sub x = Application.Match(s, ws.Rows(1), 0) If IsError(x) Then MsgBox "No Data For This Grade", vbExclamation: Exit Sub m = ws.Cells(Rows.Count, x).End(xlUp).Row If m < 4 Then MsgBox "No Data", vbExclamation: Exit Sub sh.Range("B7").Resize(m - 3).Value = ws.Cells(4, x).Resize(m - 3).Value Application.ScreenUpdating = True End Sub1 point
-
لا أعتقد وجود معادلة تقوم بهذا الدور لذلك يمكنك استعمال اكواد vba مع ملاحظة ان اختيار الاسم في شيت A يجب ان يكون من قائمة الاسماء في شيت B لضمان المطابقة تم وضع معادلات للعد وكود لجلب أيام العياب مجمعة بالتوفيق دمج أيام الغياب في خلية واحدة.xlsb1 point
-
1 point
-
هذه معادلة ضفيف ويمكنك تعديل المدي في المعادلة وطبعا الاقواس ستنحذف يمكنك ارجاع الاقواس بالضغظ على ctrl+shift+enter تحياتي1 point
-
السلام عليكم ورحمة الله أخي الكريم، أحاول أن أشرح بعض الأمور في الملف: - بالنسبة للقائمة المنسدلة في الخلية m1 فقد تم تبديل مكانها إلى الخلية R2 وقد تم تغيير مرجعها إلى النطاق IH4:IP4 من شيت "الغياب" والتغيير تم في التسمية "الشهور"... - بالنسبة لـ "وجدت أن العنوان لكلمة اخطار غياب تلميذ تغير ليضع اليوم بعد الشهر" : هذه لم أفهمها غير أنه إذا ظهرت في هذا العنوان العبارة (مثلا لشهر سبتمبر 2017 م): "إخطار غياب تلميذ عن شهر سبتمبر aaaa م" فقم بتغيير الجزئية aaaa في المعادلات بالجزئية yyyy... - بالنسبة للعمود IS فقد تم حذفه في المرفق باعتبار أن هذا العمود المساعد أضيف لأجل شيت "المتجاوزون" الذي تم الاستغناء عنه وبالتالي لا ضرورة لهذا العمود... - وبالنسبة للعمود IR المساعد، فقد وُضع لرصد (بالترقيم التسلسلي) للطلاب الذين تجاوز عدد غياباتهم 3 أيام في عمود الغياب (من IH إلى IP من شيت "الغياب") والذي تحدده الدالة OFFSET (في معادلات العمود IR) حسب الشهر الذي تم اختياره في الخلية R2 من شيت "اخطار غياب" (القائمة المنسدلة). أرجو أني وفقت في توضيح الأمور... بن علية حاجي إخطار2.rar1 point
-
وعليكم و رحمة الله و بركاته للاغلاق نموذج الاول اولاً ثم فتح النموذج الثاني عليك تعريف المتغير برقم ID في نموذج الاول و ثم وضع اسم المتغير في الشرط بدل ID لاحظ الكود On Error Resume Next Dim IDv As Integer IDv = id DoCmd.Close DoCmd.OpenForm "form2", , , "[ID]=" & IDv1 point
-
رائع استاذنا الكبير/ استاذ عبد الله كود خيف ومميز بارك الله فيك1 point
-
السلام عليكم على افتراض ان النطاق المطلوب B4:B100 جرب الكود التالي: Sub kh_Replace() Dim ch With Range("B4:B100") For Each ch In Array("إ", "أ", "آ") .Replace CStr(ch), "ا" Next .Replace "ة", "ه" .Replace "ى", "ي" End With End Sub المرفق 2003 حذف الهمزة والتاء المربوطه.rar1 point
-
1 point