نجوم المشاركات
Popular Content
Showing content with the highest reputation since 24 ماي, 2023 in all areas
-
وعليكم السلام -يمكنك استخدام هذه المعادلة =IFERROR(INDEX(ورقة1!B2:B270,MATCH(0,COUNTIF($A$1:A1,ورقة1!B2:B270),0)),"") تلخيص1.xlsx4 points
-
اليك حل اخر Sub CopyData() Dim x, y(), i&, lr&, ws_rng2&, ws_rng3& Set ws_rng = Sheet1 lr = ws_rng.Range("A" & Rows.Count).End(xlUp).Row x = ws_rng.Range("A2:B" & lr) For i = 1 To UBound(x, 1) If x(i, 2) <> 0 Then ws_rng3 = ws_rng3 + 1: ReDim Preserve y(1 To UBound(x, 2), 1 To ws_rng3) For ws_rng2 = 1 To UBound(x, 2) y(ws_rng2, ws_rng3) = x(i, ws_rng2) Next End If Next ws_rng.Range("k2").Resize(ws_rng3, UBound(y, 1)) = Application.Transpose(y) End Sub آسف لم انتبه لمسألة تعدد أوراق العمل لعدم وجودها على الملف المرفق سوف أقوم باظافتها لاحقا. فقط لاثراء الموضوع لا أكثر.فحل الأستاذ @محي الدين ابو البشر يوفي بالغرض ورقة عمل جديد.xlsm4 points
-
موعدنا اليوم مع تطبيق ضمن سلسلة ما خف وزنه وغلا ثمنه لأحبابي أعضاء وزوار منتدى أوفيسنا تطبيق يساعدك في إنشاء رسائل msgbox بصورة احترافية فقط اختر الأزرار والعنوان ونص الرسالة والأيقونة وباقي الخيارات ثم اضغط على زر تجربة لمشاهدة كود الرسالة ثم قم بنسخ الكود لبرنامجك ويمكنك استخدام الثوابت والقيم في كتابة الكود وفي الأخير لا ينقصني سوى دعاؤكم msgboxbuilder.rar4 points
-
حسب الصورة عسى Sub Test() Dim i& For i = 2 To Range("A" & Rows.Count).End(xlUp).Row If Cells(i, 1).Interior.Color = vbYellow Then Cells(Range("B" & Rows.Count).End(xlUp).Row + 1, 2).Value = Cells(i, 1).Value Next End Sub Book1.xlsm4 points
-
4 points
-
وعليكم السلام-ياريت تقوم بتغيير عنوان المشاركة ليصبح ( معادلة IF متعددة الشروط) وهذه المعادلة تفى بالغرض وشكراً =IF(AND($C4<>"غ",$B4="ذكر"),"ناجح",IF(AND($C4<>"غ",$B4="أنثي"),"ناجحة",IF(AND($C4="غ",$B4="ذكر"),"ناجح بحكم القانون",IF(AND($C4="غ",$B4="أنثي"),"ناجحة بحكم القانون","")))) معادلة IF.xlsx4 points
-
عليكم السلام ورحمة الله وبركاته ما رأيك بكود Sub test() Dim a Dim i&, ii& Dim sh As Worksheet For Each sh In Worksheets ii = 1 a = sh.Cells(1).CurrentRegion ReDim b(1 To UBound(a), 1 To UBound(a, 2)) For i = 2 To UBound(a) If a(i, 2) <> "" Then b(ii, 1) = a(i, 1): b(ii, 2) = a(i, 2) ii = ii + 1 End If Next sh.Cells(2, 11).Resize(ii, 2) = b Next End Sub ورقة عمل Microsoft Excel جديد (2).xlsm3 points
-
تفضل جرب Private Sub TextBox26_Change() Dim CelF As Range, LigF As Long Set ws = ActiveWorkbook.Sheets("Data") With ws Set lst = ws.ListObjects("الجدول1") If lst.ShowAutoFilter Then lst.ShowAutoFilter = False End If Set CelF = ws.Range("Find").Find(What:=Me.TextBox26, LookIn:=xlValues, LookAt:=xlWhole, _ SearchDirection:=xlNext, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False) If Not CelF Is Nothing Then LigF = CelF.Row Label1.Caption = ws.Range("B" & LigF) Label2.Caption = ws.Range("C" & LigF) Label3.Caption = ws.Range("E" & LigF) Label4.Caption = ws.Range("D" & LigF) Else For S = 1 To 3 Me("Label" & S) = Empty Next S End If End With Label2 = Format(Label2, "dd/mm/yyyy") Label2.BackColor = &H8000000F End Sub TEST V1.xlsb3 points
-
السلام عليكم و رحمة الله شاهد هذا المرفق ربما يكون هو طلبك يمكنك التعديل عليه بما يتوافق مع رغباتك ViewPicts.rar3 points
-
Insert Module1 and paste the following code Option Explicit Private Sub ColorBySubject() Const STARTROW As Long = 8, STARTCOL As Long = 5, COLSNUM As Long = 4 Dim x, aCols, wsMarks As Worksheet, wsColors As Worksheet, rng As Range, sMarks As String, sQuote As String, sCell As String, n As Long, m As Long, ii As Long Application.ScreenUpdating = False With ThisWorkbook Set wsMarks = .Worksheets(1) Set wsColors = .Worksheets(2) End With Set rng = wsColors.Range("S8:S15") x = Application.Match(wsColors.Range("E3").Value, rng, 0) If Not IsError(x) Then sMarks = wsMarks.Name sQuote = WorksheetFunction.Rept(Chr(34), 2) n = wsMarks.Cells(Rows.Count, "C").End(xlUp).Row - 3 aCols = Array(5, 8, 11, 14, 17, 20, 23, 26) For m = 1 To 3 sCell = ColumnToLetter(aCols(x - 1) + m - 1) & "4" With wsColors If m <> 3 Then For ii = 4 To 1 Step -1 With .Cells(STARTROW, m * COLSNUM - ii + STARTCOL).Resize(n) .Formula = "=IF(" & sMarks & "!" & sCell & "=" & sQuote & "," & sQuote & ",IF(" & sMarks & "!" & sCell & "=" & ii & ",""0""," & sQuote & "))" End With Next ii Else With .Cells(STARTROW, 13).Resize(n) .Formula = "=IF(" & sMarks & "!" & sCell & "=" & sQuote & "," & sQuote & ",IF(" & sMarks & "!" & sCell & ">=3.5,""0""," & sQuote & "))" .Offset(, 1).Formula = "=IF(" & sMarks & "!" & sCell & "=" & sQuote & "," & sQuote & ",IF(AND(" & sMarks & "!" & sCell & ">=2.5," & sMarks & "!" & sCell & "<3.5),""0""," & sQuote & "))" .Offset(, 2).Formula = "=IF(" & sMarks & "!" & sCell & "=" & sQuote & "," & sQuote & ",IF(AND(" & sMarks & "!" & sCell & ">1," & sMarks & "!" & sCell & "<2.5),""0""," & sQuote & "))" .Offset(, 3).Formula = "=IF(" & sMarks & "!" & sCell & "=" & sQuote & "," & sQuote & ",IF(" & sMarks & "!" & sCell & "=1,""0""," & sQuote & "))" End With End If End With Next m End If Application.ScreenUpdating = True End Sub Function ColumnToLetter(ByVal columnNumber As Long) As String If columnNumber < 1 Then Exit Function ColumnToLetter = UCase(ColumnToLetter(Int((columnNumber - 1) / 26)) & Chr(((columnNumber - 1) Mod 26) + Asc("A"))) End Function Then in worksheet module (Colors) [The worksheet that has the data validation list], paste the following code Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.CountLarge > 1 Then Exit Sub If Target.Address = "$E$3" Then Application.Run "Module1.ColorBySubject" End If End Sub3 points
-
تفضل جرب اخي ووافينا بالنتيجة Sub RefreshData() ' تعديل Dim i As Long, k As Long Dim last_Dest As Long, lastrow As Long Dim ws_data As Worksheet: Set ws_data = Worksheets("data") For Each ws_dest In ThisWorkbook.Worksheets lastrow = ws_data.Cells(ws_data.Rows.Count, 1).End(xlUp).row last_Dest = ws_dest.Cells(ws_dest.Rows.Count, 1).End(xlUp).row Application.ScreenUpdating = False For i = 2 To lastrow For k = 2 To last_Dest 'في حالة وجود اوراق اخرى على المصنف قم باظافتها هنا If ws_dest.Name <> ws_data.Name And ws_dest.Name <> "اليومية" And ws_dest.Name <> "ورقة6" Then ' شرط تطابق عمود التسلسل وعمود التوجيه If ws_dest.Cells(k, 1).Value = ws_data.Cells(i, 1).Value And _ ws_dest.Cells(k, 2).Value = ws_data.Cells(i, 2).Value Then _ 'في حالة تحقق الشرط ws_dest.Cells(k, 3).Value = ws_data.Cells(i, 3).Value 'التاريخ ws_dest.Cells(k, 4).Value = ws_data.Cells(i, 4).Value ' البيان ws_dest.Cells(k, 5).Value = ws_data.Cells(i, 5).Value 'مدين ws_dest.Cells(k, 6).Value = ws_data.Cells(i, 6).Value 'دائن ws_dest.Activate 'تسطير تلقائي للبيانات DL = ws_dest.Range("A65500").End(xlUp).row DC = ws_dest.Cells(1, Columns.Count).End(xlToLeft).Column ws_dest.Columns("A:F").Borders.LineStyle = xlNone ws_dest.Range(Cells(2, 6), Cells(DL, DC)).Borders.Weight = xlThin End If End If Next Next Next ws_dest ws_data.Activate MsgBox "تم التعديل بنجاح", 64 Application.ScreenUpdating = True End Sub Sub transfer_data() ' ترحيل Dim Sh As Worksheet Dim ws_data As Worksheet: Set ws_data = Worksheets("data") For Each Sh In ThisWorkbook.Worksheets For R = 2 To [B20000].End(xlUp).row If Cells(R, 2).Value = Sh.Name And Cells(R, 2).Value <> Empty Then Application.ScreenUpdating = False Cells(R, 2).Resize(1, 5).Copy Sh.Range("B" & Sh.[B20000].End(xlUp).row + 1) End If Next Next For Each Sh In Worksheets 'في حالة وجود اوراق اخرى على المصنف قم باظافتها هنا If Sh.Name <> "اليومية" And Sh.Name <> "data" And Sh.Name <> "ورقة6" Then Sh.Activate Sh.Range("A3:A1000").ClearContents Sh.Range("A3") = 1 Sh.Range("A3:A" & Range("B" & Rows.Count).End(xlUp).row).DataSeries , xlDataSeriesLinear DL = Sh.Range("A20000").End(xlUp).row DC = Sh.Cells(1, Columns.Count).End(xlToLeft).Column Sh.Columns("A:F").Borders.LineStyle = xlNone Sh.Range(Cells(2, 6), Cells(DL, DC)).Borders.Weight = xlThin End If Next MsgBox ("تم بحمد الله ترحيل القيود لا تنسى أن تشكر الله علي هذه النعم "), vbOKOnly + vbInformation, "لاتنسونا من صالح الدعاء لنا ولولدينا وللمسلمين" ws_data.Activate Application.ScreenUpdating = True End Sub استدعاء من عدة شيتات- V3.xlsm3 points
-
وعليكم السلام -تفضل لك ما طلبت .. وكان لابد من رفع الملف بدون ضغط , طالما حجم الملف صغير وذلك تجنباً لإهدار الوقت وشكراً Aziz1.xlsx3 points
-
3 points
-
Very weird I have commented this line as I didn't want to print Rem sh.PrintOut Rem is used to make the line as a comment. Just remove the Rem and the sheet will be printed Another point I have put this line just for wait, you can remove this line Application.Wait Now + TimeValue("00:00:01") Try to understand the code. Don't wait others to do the whole work for you2 points
-
Try Sub Test() Dim a, e, ws As Worksheet, sh As Worksheet, i As Long Set ws = ThisWorkbook.Worksheets(1): Set sh = ThisWorkbook.Worksheets(2) a = ws.Range("B11:J" & ws.Cells(Rows.Count, "B").End(xlUp).Row).Value e = sh.Range("Q3").Value For i = LBound(a) To UBound(a) If a(i, 8) = e Then sh.Range("F9").Value = a(i, 2) sh.Range("M9").Value = a(i, 9) Application.Wait Now + TimeValue("00:00:01") Rem sh.PrintOut End If Next i End Sub2 points
-
العفو اخي احمد تفضل مع اظافة أكواد تحديد أو استثناء أوراق معينة Sub Copy_Data() Dim ws As Worksheet Dim i&, j&, lr As Long For Each ws In Sheets lr = ws.Range("k" & Rows.Count).End(xlUp).Row + 1 ws.Range("k2:L" & lr).ClearContents j = 2 For i = 2 To ws.Range("A" & Rows.Count).End(3).Row If ws.Range("B" & i).Value <> "" Then ws.Range("K" & j & ":L" & j).Value = ws.Range("A" & i & ":B" & i).Value j = j + 1 End If Next Next End Sub بالتوفيق ورقة عمل V2.xlsm2 points
-
مثال : احمد محمد محمود حامد > يمكنك البحث عن ( محمد محمود ) لكن لا يمكن البحث عن ( احمد حامد ) السلام عليكم اعتقد استاذي @محمد ايمن يمكن البحث عن احمد حامد بكتابة ( احمد*حامد) فانها تظهر عند الفلترة2 points
-
تفضل هذا التعديل تفعيل وايقاف اضافة سجل للمكرر.mdb2 points
-
بالنسبة لي سأساهم في هذا الجزء بدالة تقوم بتوحيد الحروف المتشابهة إلى حرف واحد وذلك لتلافي موضوع أخطاء الطباعة : 🙂 Function ReplaceArabicLetters(strText As String) As String ' استبدال الحروف العربية المتشابهة إلى حرف واحد وذلك لاستخدامها في عملية البحث وتلافي أخطاء الكتابة ' أ،إ،ا =(تحول إلى)=> ا ' ي،ى =(تحول إلى)=> ي ' ـه،ـة =(تحول إلى)=> ـه ' Moosak strText = Replace(strText, "أ", "ا") strText = Replace(strText, "إ", "ا") strText = Replace(strText, "ى", "ي") strText = Replace(strText, "ة", "ه") ReplaceArabicLetters = strText End Function مثال : ReplaceArabicLetters("أجمل إنسان في الحياة من ينسى الأحزان ويعيش الأمل") النتيجة : اجمل انسان في الحياه من ينسي الاحزان ويعيش الامل2 points
-
2 points
-
In worksheet module paste the following code Private Sub Worksheet_Change(ByVal Target As Range) Dim x If Target.Row > 4 And Target.Column = 1 Then x = Application.Match(Target.Value, Sheets(2).Columns(1), 0) If Not IsError(x) Then Target.Offset(, 1).Value = Sheets(2).Cells(x, 2).Value End If End If End Sub2 points
-
2 points
-
2,1/ هذا جزء أساسى بالمعادلة لإستخراج أخر عملية ولا تصلح المعادلة بدون هذه الجزئية وهذا الكود لطلبك الأخر ورجاءاً لابد من غلق المشاركة فلا يمكن ان يكون هناك أكثر من طلب بالمشاركة الواحدة ..فإنت أردت طلبات أخرى لابد من عمل مشاركة جديدة بالطلبات الجديدة ولكم جزيل الشكر Sub RowDeleter() On Error Resume Next Application.ScreenUpdating = False Range("E1:E" & Range("E" & Rows.Count).End(3)(1).Row).AutoFilter 1, 0 Range("E4:E" & Range("E" & Rows.Count).End(3)(1).Row).SpecialCells(12).EntireRow.Delete ActiveSheet.AutoFilterMode = False Application.ScreenUpdating = True End Sub Aziz3.xlsb2 points
-
تفضل علما ان حقول القيمة لديك نصية ، والمقارنة باكبر من او اصغر يجب ان تكون الحقول رقمية تم عمل متغير رقمي يمثل القيمة النصية Dim i, ii As Integer i = Nz(DLookup("[estelak]", "[OLD_BASIC_DATE]", "[crn] ='" & [Forms]![BASIC_DATE]![address] & "'"), 0) ii = Me.ADD_NO If ii < i Then Beep If MsgBox("الإستهلاك الذى تريد تسجيله حالياً أقل من الإستهلاك السابق هل تريد إضافة القيمة؟", _ vbQuestion + vbYesNo, _ "تننبيه") = vbYes Then Exit Sub Else Undo Exit Sub End If End If New Microsoft Access Database2.accdb2 points
-
2 points
-
تفضل لك ما طلبت ان يكون التقرير بصفحة منفصلة .. لكن لما كل هذا التأخير عند الرد ؟!!! افرض كنت مشغول !!!! وأعتقد ان المعادلة سهلة ولا تحتاج شرح =LOOKUP(2,1/(ورقة1!$A$3:$A$440=$B4),ورقة1!$D$3:$D$440) فالجزء الأول من المعادلة ورقة1!$A$3:$A$440=$B4 يقصد به العمود A الموجود بصفحة ورقة1 والذى يخص أسماء أولياء الأمور ثم =الخلية B4 ,والتى بها اسم ولى الأمر الموجود بصفحة التقرير المراد البحث به ثم بعد ذلك النطاق ورقة1!$D$3:$D$440 وهذا هو النطاق الموجود به نتائج البحث وهو عمود رقم السند الموجود بصفحة ورقة1 ..ومعادلة تاريخ السند مثل رقم السند بالضبط مع اختلاف عمود النتيجة بدلاً من العمود D سيكون العمود E ولكم جزيل الشكر أتمنى ان يكون الأمر سهل لك Aziz2.xlsx2 points
-
السبب عدم تحديد مصدر لبياباتها في الجدول أو الاستعلام ..... اجعل لها حقل لتسجيل بياناتها ....2 points
-
للأسف يا صاحب الموضوع و عت نفسك في زاوية ضيقة و حصرت طلب المساعدة على عضو واحد و قد نفذت منه جميع الحلول نصيحة : اجعل طلباتك دائما للعموم لكي تأخذ اكثر من شكل للمساعدة و المشورة حين تكثر الحلول يسزداد استيعابك و فهمك لبيئة التطبيق الذي تريد انشائه نصيحة اخرى : لا تستعمل اي كود لا تعريف كيف يعمل و لا تفهم اقسامه خذا الأكواد و حاول ان تفهمها لكي تستطيع معالجة المشكلات التي من المحتمل ان تواجهك اثناء التطبيق2 points
-
تفضل أستاذ @iyad mohamad طلبك كامل لكل مستخدم لابد يكون عنده نموذجان . النموذج (frm_MessageAllUsers) للكل للتنبيه فقط أو ماسج لكل المستخدمين .........أما النماذج frm_MessageUsers1) 1,2,3,4,5) لكل مستخدم نموذجه فقط لتنبيه المستخدم فقط أو ماسج . جرب ووافني بالرد . attention-1.rar2 points
-
تفضل Sub Copying_yellow_cells() Dim i As Long, j As Long For i = 5 To Range("f" & Rows.Count).End(xlUp).Row For j = 1 To Columns("H").Column If Cells(i, j).DisplayFormat.Interior.Color = vbYellow Then Cells(i, "H").Value = Cells(i, j).Value Exit For End If Next Next End Sub نسخ الخلايا الملونة في العمود B.xlsm2 points
-
2 points
-
2 points
-
تفضل جاهز إن شاء الله جمع الكشوفات1 - ماكرو.xlsm2 points
-
وعليمن السلام بالإذن خيار آخر Sub test() Dim a, b: Dim lr& a = ActiveSheet.Range("D6:D14").Resize(, 4) ReDim b(1 To 5) b = Array(1, 3, 5, 7, 9) Workbooks.Open ("C:\Users\Ehab Elhady\Desktop\1.xlsx") With Sheets("sheet1").Cells(1, 1).Resize(, 5) lr = .Cells(Rows.Count, 1).End(xlUp).Row .Offset(lr).Value = Application.Index(a, b, 1) .Offset(lr, 5).Value = Application.Index(a, b, 4) End With Workbooks("1.xlsx").Close True End Sub2 points
-
تم اكمال المثال حسب الأمر بالتسلسل واكتفيت بالصور والمستندات فقط آمل من اخواني التجربة وارسال مرفق لأكثر من شخص ، والافادة بالنتيجة لتفادي المشكلات ان وجدت واعتماده كما اطلب من اخوتي الخبراء فحص الزمن ( sleep) وضبطه ان لزم حتى تظهر عملية الارسال انسيابية محكمة .. لانه حاليا ومن مشاهدتي يوجد تفاوت في السرعة والبطء خلال تنقل الأمر sendwatsWeb2.mdb2 points
-
اشكرك أستاذى الغالى هو المطلوب بالفعل1 point
-
1 point
-
1 point
-
آخر مشاركة لي في هذا الموضوع قمت بالتعديل على تركيبة جدول العطل وبياناته: تم إضافة حقل نهاية العطلة (آخر يوم في العطلة) وتم تعديل بيانات عام 2023 إلى عام 2022 لتناسب جدول Siebel لزوم التجارب. استخدمت الاستعلامات لتسريع النتائج ولن تعرف الفرق إلا مع عدد سجلات كبير. النتائج في الاستعلام qryResults موفق أخي. WM2000_03.mdb1 point
-
هناك اخي فكرة اخرى لا اعلم هل تناسيك ام لا هي ان تقوم باظافة عمود لتسلسل البيانات في عمود A بحيث يتم ترقيم البيانات في جميع اوراق العمل عند الترحيل وبهدا ستحصل على معيار غير مكرر نعتمد عليه بجانب اسم ورقة العمل لتعديل البيانات مثال على ملفك بعد استدعاء البيانات لاحظ معي عهدة متنوعة مثلا لها نفس البيانات في جميع الاعمدة ما عدا الترقيم وبه يمكنك تحديد العنصر المراد تعديله بحيث البيانات في الاوراق الاخرى سيتم ترقيمها كدالك بالشكل التالي واخيرا سنقوم بوضع شرط داخل الاكواد ان يتم تعديل الصف اعتمادا على رقم التسلسل واسم ورقة العمل الموجود مسبقا على عمود التوجيه لكي لا تتداخل بيانات الصفوف في ما بعضها طبعا هدا يلزمنا بتعديل جميع الاكواد سواءا الاستدعاء او الترحيل في حالة هدا الحل يناسبك ممكن نشتغل عليه اخي الفاضل .1 point
-
1 point
-
مشاركة مع استاذي @Moosak تفضل أخي مرفق جاهز . DD143.Accdb1 point
-
السلام عليكم و رحمة الله هذه الجزئية فى الكود السابق من شأنها مسح البيانات السابقة قبل ترحيل الفصل المطلوب ws.Range("C9:H100")="" اعد نسخ الكود مرة اخرى و سوف تراها1 point
-
بداية اتفق مع الاستاذ @عبدالجيد في امكانية عمل البرنامج بشكل يتوافق مع تصميم قواعد البيانات مشاركة مع الاستاذ @Moosak طريقة بسيطة باستخدام عد الحقول الفارغة الملف مرفق واعتذر مقدما لعدم مراجعة العمل لانشغالي Database13.accdb1 point
-
1 point
-
جزاك الله خيرا ذكرتنى ببرنامج لى قديم استخدمت فيه هذه الملفات أو مثلها Holy_Quran.rar1 point
-
اسف للخطأ هذا الملف المقصود الارقام معكوسة salim.rar1 point
-
1 point
-
أخى ابراهيم بارك الله فيك ولكن HIDE تعمل على اخفاء الفورم فقط من على الشاشة ولكنة يظل فى الذاكرة كما هو أما UNLOAD تقوم باغلاق الفورم نهائيا من على الشاشة والذاكرة أيضا1 point