نجوم المشاركات
Popular Content
Showing content with the highest reputation on 11/02/15 in مشاركات
-
السلام عليكم ورحمة الله تعالى وبركاته مقدمة : لكى ننتقل من الخلية A1 مثلا الى آخر خلية بها بيانات فى نفس الصف الاول يكون بالطريقة الاتية : Cells(1, Cells(1, Columns.Count).End(xlToLeft).Column).Select لكى ننتقل من الخلية A1 مثلا الى آخر خلية بها بيانات فى نفس العمود الاول يكون بالطريقة الاتية : Range("A" & Cells.Rows.Count).End(xlUp).Select ماذا لو كنا لا ندرى فى أى خلية نحن ...... اذن الانتقال سيكون من الخلية النشطة الى آخر خلية بها بيانات فى صفها أو عمود ها كيف نستخدم الخلية النشطة فى الوصول الى آخر خلية بها بيانات فى صفها أو عمود ها ؟ قبل الاجابة على السؤال نحاول نفهم الآتى : طبعا احنا عارفين أن اى خلية ليها صف وليها عمود ماشى لو عندنا الخلية النشطة هى $A$1 كيف نحصل على رقم الصف وكيف نحصل على اسم العمود من التركيبة $A$1 علامتى الدولار والحرف والرقم سنعتمد على الدالة MID وبنيتها كالتالى ( النص الذى سنستخرج منه + نقطة البداية + عدد الاحرف المطلوبة ) ( MID( text ; start position ; Number of characters وظيفتها استخلاص جزء من نص بداية من نقطة محددة فيه وعدد محدد من الحروف ضع النص $A$1 فى خلية ولتكن A1 نحصل على رقم الصف بالمعادلة =MID(A1; 4; 1048576) نحصل على اسم العمود بالمعادلة =MID(A1; 2; 1) المعادلة دى ستعطيك اسم العمود وهو A كيف نستفيد من ذلك فى الانتقال من الخلية النشطة الى آخر خلية بها بيانات فى صف أو عمود الخلية النشطة ؟ بسيطة : بص على سطر الكود الأول فيه الرقم 1 ومكرر مرتين ويمثل رقم الصف تعالى نشيل رقم الصف ونضع ما يساويه بالمعادلات Cells(Mid(ActiveCell.Address, 4, 1048576), Cells(Mid(ActiveCell.Address, 4, 1048576), Columns.Count).End(xlToLeft).Column).Select هذا السطر يستخدم فى الانتقال من الخلية النشطة الى آخر خلية بها بيانات فى نفس صف الخلية النشطة بص كمان على سطر الكود الثانى ستجد فيه "A" اسم العمود شيل اسم العمود وضع المعادلة التى هتطلع لنا اسم العمود Range(Mid(ActiveCell.Address, 2, 1) & Cells.Rows.Count).End(xlUp).Select هذا السطر يستخدم فى الانتقال من الخلية النشطة الى آخر خلية بها بيانات فى نفس عمود الخلية النشطة ناس هتقول ايه فائدة ده كله ؟ هقوله جرب المرفق التالى وأنت تعرف ممكن يعملوا ايه ! ملحوظة 1 : ده مش معناه أن السطرين دول وبس ممكن يعملوا ما فى المرفق ملحوظة 2 : فى المرفق تم اضافة الخاصية Offset على السطرين . find last entry in Rows and columns by mokhtar .rar والسلام عليكم ورحمة الله تعالى وبركاته5 points
-
انا قبلت التحدي و اليك المعادلة اللازمة لهذا الشيء انسخها الى الخلية F2 واسحب نزولاً =SUBSTITUTE(TRIM(SUBSTITUTE(D2,CHAR(32),"")),"٫",".")*1+(SUBSTITUTE(TRIM(SUBSTITUTE(D2,CHAR(32),"")),"٫",".")*E2)4 points
-
يا حبيبى كدا انت بقيت خبير معتمد طيب الناس زعلانه ليه من ترقيتك اللى جت بسرعه الصاروخ قالو يمكن لك واسطه او شئ ما انت تستاهل اهو طبعا انت عرفت مين دلوقتى ارفع روح التحدى كمان وكمان هى دي اوفيسنا طاقه ايجابيه تكاد تنفجر من الابداع تقبل تحياتى يا كبير4 points
-
الأخ الكريم اسكندراني قمت بشرح الكود بشكل سريع عله يفيدك في التعديل كما قمت بتغيير الأرقام بأسماء الأعمدة المشار إليها لتسهيل عملية التعديل عليك حتى تستطيع أن تعدل على ملفك بنفسك Sub Ali_Tr() 'تعريف المتغيرات Dim Shr As Worksheet Dim Wsh As Worksheet Dim Rng As Range Dim LR, II, Rww%, IM, RW Dim MOf, Amel, AGra Dim MOf1, Amel1, AGra1 'تعيين قيمة للمتغير ليساوي ورقة العمل الأولى المطلوب العمل عليها Set Wsh = Sheet1 With Wsh 'تعيين آخر صف به بيانات في ورقة العمل الأولى LR = .Cells(.Rows.Count, 1).End(xlUp).Row 'إلى آخر خلية بها بيانات في العمود الخامس [D3] مسح النطاق بدايةً من الخلية .Range(.Cells(3, "D"), .Cells(LR, "E")).ClearContents End With 'حلقة تكرارية لكل أوراق العمل بالمصنف For Each Shr In ThisWorkbook.Worksheets 'إذا لم يكن اسم ورقة العمل يساوي اسم ورقة العمل الأولى يتم تنفيذ الأسطر التالية 'أي أنه يتم استثناء ورقة العمل الأولى من تلك الأسطر بينما تنفذ الأسطر على بقية الأوراق If Not Shr.Name = Wsh.Name Then 'بدء التعامل مع ورقة العمل التي انطبق عليها الشرط بأنها ليست الورقة الأولى With Shr 'حلقة تكرارية من الصف الثالث إلى آخر صف به بيانات For II = 3 To .Cells(.Rows.Count, 1).End(xlUp).Row 'إذا لم تكن الخلية في العمود الرابع في الصف المحدد في الحلقة التكرارية فارغة 'فإذا لم تكن فارغة يتم تنفيذ الأسطر التالية [D] أي أنه يتم اختبار الخلية في العمود 'أما إذا كانت فارغة يتم الانتقال للصف التالي لاختبار الخلية التالية في العمود الرابع If .Cells(II, "D") <> "" Then 'تعيين قيمة للمتغير ليساوي رقم الصف Rww = .Cells(II, "B").Row 'حلقة تكرارية من الصف الثالث إلى آخر صف به بيانات في الورقة الأولى For IM = 3 To Wsh.Cells(Wsh.Rows.Count, 1).End(xlUp).Row 'إذا كانت الخلية في العمود الثاني في أوراق الموظفين تساوي الخلية في العمود الثاني 'أي أنه يتم المقارنة بين اسم العميل في ورقة الموظف والورقة الأولى فإذا تطابق الاسم 'ينفذ التالي If .Cells(Rww, "B") = Wsh.Cells(IM, "B") Then 'إذا كانت الخلية في العمود الرابع في الورقة الأولى ليست فارغة يتم تنفيذ التالي If Wsh.Cells(IM, "D") = "" Then 'تعيين قيمة للمتغير ليساوي رقم الصف الذي يحوي اسم العميل من الورقة الأولى RW = Wsh.Cells(IM, "B").Row 'الخلية في العمود الرابع في الصف الذي يحوي اسم العميل في الورقة الأولى يساوي الخلية في العمود الرابع في الصف المحدد في الحلقة التكرارية Wsh.Cells(RW, "D") = .Cells(IM, "D") 'الخلية في العمود الخامس في الصف الذي يحوي اسم العميل في الورقة الأولى يساوي اسم ورقة عمل الموظف Wsh.Cells(RW, "E") = .Name 'أما إذا كانت الخلية في العمود الرابع في الأولى تساوي قيمة الخلية في العمود الرابع في ورقة الموظف ElseIf Wsh.Cells(IM, "D") = .Cells(Rww, "D") Then 'تعيين قيمة للمتغير ليساوي قيمة الخلية في العمود الخامس ليحمل اسم الموظف 'تعيين قيمة للمتغير ليساوي قيمة الخلية في العمود الثاني ليحمل اسم العميل MOf1 = .Cells(IM, "E"): Amel1 = .Cells(IM, "B") 'تعيين قيمة للمتغير ليساوي قيمة الخلية في العمود الرابع ليحمل الإجراء 'تعيين قيمة للمتغير ليساوي قيمة الخلية في العمود الخامس في الورقة الأولى ليحمل اسم الموظف AGra1 = .Cells(IM, "D"): MOf = Wsh.Cells(IM, "E") 'تعيين قيمة للمتغير ليساوي قيمة الخلية في العمود الثاني في الورقة الأولى ليحمل اسم العميل 'تعيين قيمة للمتغير ليساوي قيمة الخلية في العمود الرابع في الورقة الأولى ليحمل الإجراء Amel = Wsh.Cells(IM, "B"): AGra = Wsh.Cells(IM, "D") 'إظهار رسالة في حالة التضارب في إدخال البيانات 'أي أنه عند اتخاذ إجراء لعميل عند أكثر من موظف تظهر رسالة تفيد بذلك MsgBox "البند المسمى :" & " " & Amel & " موجود مسبقاً في ورقة : " & " " & MOf & vbCrLf & " بالاجراء :" & " " & AGra & vbNewLine & " " & " وكرر في ورقة :" & " " & .Name & " " & " للعميل : " & Amel1 'التخطي للانتقال لصف جديد GoTo Skipper End If End If Skipper: 'الانتقال للصف التالي في الورقة الأولى Next IM End If 'الانتقال للصف التالي في ورقة الموظف المعنية Next II End With End If 'الانتقال لورقة الموظف التالية Next Shr End Sub أرجو أن ينفعك الأمر تقبل تحياتي3 points
-
السلام عليكم جرب هات الطريقه '******************************** ' رابط الدوماين الذي تريد التحقق منه Private Const Ur As String = "https://www.colomos.com" Sub Check_Url() MsgBox IIf(Check_Domin(Ur), "غير شاغر", "شاغر") End Sub Function Check_Domin(Url As String) As Boolean Dim Win_Htp As Object Dim R_a As Variant On Error GoTo Nex Set Win_Htp = CreateObject("WinHttp.WinHttpRequest.5.1") With Win_Htp DoEvents .Open "GET", Url, False .Send R_a = .StatusText End With Set Win_Htp = Nothing If R_a = "OK" Then Check_Domin = True Exit Function Nex: End Function3 points
-
بسم الله الرحمن الرحيم كثيرا ما نصمم برامج بطريقة جميلة ونعتمد علي البرنامج في العمل ولكن يأتى ما لم يكن في الحسبان وهو بطئ الملف من كثرة البيانات المدخلة به وينصح بايقاف الحساب التلقائي وتشغيلة عند الحاجه وهو اسلوب لتجنب البطئ ولكن ليس عمليا ويعرض الاخوة بعض الاكواد للاستغناء عن بعض الحسابات داخل الاوراق والتنسيقات وغيرها ويأتى في النهاية الحل الافضل بالنسبة لي وهو الغاء جميع المعادلات داخل اوراق العمل ووضعها على هيئة اكواد تفعل بضغطة زر او تنشيط شيت او اي حدث تريده ومرفق مثال للدالة SUMIF علي طريقة الاكواد وتفعيلها بضغطة زر يتبع طريقة للاستغناء عن المعادلات داخل الشيت.rar2 points
-
فنون وأساليب التنبؤ باستخدام الاكسيل السلام عليكم ورحمة الله وبركاته موضوع اليوم استخدام الدوال ذات الدالة الأسية ( الاتجاهات الغير خطية الأسية ) فى التوقع او التنبؤ واتناول فيه الدالة Growth بالطريقة الرياضية والبيانية استخدام طريقة التمهيد الأسى Exponential Smoothing فى التوقع باستخدام الطريقة الرياضية وادوات تحليل البيانات solver ___________________ارجو ان يفيد الجميع ________________________ تناولت فى الموضوع السابق استخدام الاتجاهات الخطية فى التنبؤ واستخدمت الدوال forecast و trend و slope و intercept وتناولنا الطرق الرياضية والبيانية رابط الموضوع السابق http://www.officena.net/ib/topic/64412-فنون-وأساليب-التنبؤ-باستخدام-الاكسيل/ الجزء الثانى .rar2 points
-
السلام عليكم تم التعديل السبب تفعيل حمايه للورقه تم التعديل جرب المرفق مصروفات-111.rar عذرا اخي وائل لم ارى ردك الا بعد المشاركه2 points
-
2 points
-
عملتلك برنامج تحويل الارقام كمان دا الواحد بقي خبير خبرة مستخبرتشي علي حد اه نسيت اقول ياريت تغيرر اسم الظهور بالمنتدى للغة العربية لسهولة التعامل الحل هنا وانسخ براحتك من اي برنامج.rar2 points
-
انا بحب التحدى ياعم صقر انا احط ايدي علي المشكلة تلاقيني فريره بس احط ايدي علي المشكلة بس انا كسبت التحدي test.rar هاااااااا انا قد التحدي المشكلة الفاصلة بس تعمل بحث واستبدال وتحط علاة ال فاصلة وتنزل مكانها . بوينت دي2 points
-
تابع المواضيع في هذا المنتدى وردود الاعضاء واي كود تصادفه حاول تفهمه سطر سطر وان صعب عليك جزء معين في الكود اطلب شرح الجزئيه ومع الوقت سيتحسن مستواك مع القراءه والتتبع وبعدها اطرح فكره برنامج او اليه بسيطه في حدود ادوات البرمجه التي عرفت عملها كمعادله او ماشابه وابداء نفذها ومعك معك ستصبح من اساتذة هذا الصرح اتنمى ان اكون افدتك تقبل تحياتي2 points
-
جزاكم الله خيراً أنفقت ما في جعبتي من إعجاب بالكلام الطيب والمشاعر الفياضة .. لكن الله أعلم بالحال ...فالحال لا يكاد يتصوره المرء في الخيال... إنما هي محنة وابتلاء ...وكل محنة تليها منحة من الله ونحن نتمسك بالتفاؤل والرجاء.. والسلام عليكم..2 points
-
اخواني الكرام اضع بين ايديكم الجزء الاول من شرح الترحيل وبإنتظار تعليقاتكم واستفسارتكم ابواحمد الجزء الاول من الشرح ملف شرح الجزء الاول الترحيل.rar الجزء الثاني من الشرح ملف شرح الجزء الثانى الترحيل2.rar الجزء الثالث من الشرح (ترحيل القيم - ترحيل محدوود) ملف شرح الجزء الثالث الترحيل3.rar الجزء الرابع من شروحات الترحيل ملف شرح الجزء الرابع ترحيل حسب اسم الشيت.rar لا تنسوني أخوتي من الدعاء لي بظهر الغيب1 point
-
السلام عليكم ورحمة الله وبركاته إخوانى وأحبائى الأعزاء أستاذتى وأعضاء هذا المنتدى العظيم تحية طيبة ووبعد يوجد لدى تقرير مبيعات تفصيلى يوجد به داتا معينه صممت بجواره Rank يقوم بتقييم المندوبين حسب مبيعاته مالى وعدد عملاء وعدد أصناف وعدد عملاء مكررة أى عدد زيارت ناجحة الرجاء من سيادتكم النظر إلى الرابط التالى وبه المرفق وعزرا لعدم إرفاقه بالمنتدى لكبر حجمه أريد من سيادتكم كود برمجى ينفذ المطلوب بالمرفق ولسيادتكم خالص الشكر والتقدير http://www.4shared.com/rar/iABxXqB0ce/Report.html1 point
-
أخي الحبيب مختار موضوع رائع ومتميز بارك الله فيك وجزاك الله كل خير تقبل وافر تقديري واحترامي1 point
-
1 point
-
1 point
-
1 point
-
الله عليك يا أ / سليم ما شاء الله تبارك الله زادك الله من العلم الكثير والكثير جزاك الله خير1 point
-
مشكور استاذي الغالي العيدروس علي الاضافة الجميلة اخي عبد العزيز البسكري انت ونعم المتابع الجيد الاحظ نشاطك في المشاركات وتفاعلك اما بحل او بشكر او اعجاب لك كل الشكر والتقدير علي مساهماتك الطيبة داخل المنتدى العظيم1 point
-
اخ ياسر العربي حل جميل وهذا لتغير الفاصله في مدى الارقام Sub A() Dim R As Range For Each R In Range("B2:D" & Cells(Rows.Count, 2).End(xlUp).Row) R.Replace [i1], "." Next End Sub1 point
-
1 point
-
السلام عليكم الكود الذي في ملفك استبدله بالتالي بعد التعديل عليه Sub Macro1() Dim WB As Workbook, myRng As Range, Cell As Range Dim myRow As Long, lCol As Long Dim shMain As Worksheet Dim Sh As Worksheet Application.ScreenUpdating = False Application.EnableEvents = True Application.DisplayAlerts = False Set shMain = ThisWorkbook.ActiveSheet On Error Resume Next Range(Cells(2, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 91)).ClearContents Path = "d:\data.xlsx" Set WB = Workbooks.Open(Path) '===================================================================== On Error Resume Next Set Sh = WB.Sheets("Data") With Sh .Activate R = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row C = Range(Split(Sh.UsedRange.Address, "$")(3) & 1).Column Set myRng = WB.Sheets("Data").Range(.Cells(2, 1), .Cells(R, C)) myRng.Copy shMain.Cells(2, 1).PasteSpecial xlPasteValues End With WB.Close True '===================================================================== On Error GoTo 0 Application.CutCopyMode = False Application.ScreenUpdating = True Application.EnableEvents = False Application.DisplayAlerts = True MsgBox "Task Completed" Application.Goto Reference:="Macro1" Range("D2").Select End Sub1 point
-
1 point
-
مثال : ضع الكود التالى فى حدث الشيت Private Sub Worksheet_Change(ByVal Target As Range) If Not Range("A1").Find("اخضر") Is Nothing Then Range("A1").Offset(0, 1).Interior.ColorIndex = 4 Else Range("A1").Offset(0, 1).Interior.Pattern = xlNone End If End Sub اكتب كلمة اخضر فى A1 ستجد أن الخلية B1 صارت خضراء ثم اخذف الكلمة ستجد الخلية استعادت لونها العادى والا أرفق ملفا ضع فيه تصورك والنتائج المرجوة تحياتى1 point
-
1 point
-
1 point
-
1 point
-
اخي الغالي يرجى تغيير اسم الظهور للغة العربية اولا لسهولة التعامل ثانيا لا تتعجل اخي الغالي فمن الاعضاء والمشرفين وخبراء المنتدى عليهم قسم من المسئولية تجاه اشياء اخرى خارج المنتدى فارجوا التماس العذر لهم لا تقلق ستجد من يفيدك باذن الله في هذا الصرح العظيم والموضوع مكنشي مستاهل موضوع داخل اقتراحات الاعضاء مجرد رفع مرة كمان او مرتين وباذن الله تجد الحل انا مليش قد كدا في الاكسيس بس هبحث ليك في موضوعك يمكن اجد لك حل تقبل مروري المتواضع ياسر العربي1 point
-
بسبب الخلايا المدمجه استخدم هذا الكود او انسخ على خليه خليه Sub Ali_Tr() Set S = Sheets("sheet1"): Set SS = Sheets("sheet2") With S For r = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row SS.Cells(SS.Cells(Rows.Count, 2).End(xlUp).Row + IIf(r = 1, 2, 5), 2) = .Cells(r, 1) Next End With End Sub1 point
-
تفضل اخي الغالي المطلوب عند ادخال اسم عميل موجود مسبقا تأتي رسالة تفيد انه موجود او رقم البطاقة ايضا ولكن قمت بحجز خليتين فوق رؤوس الاعمدة باللون الاصفر ان كنت تحتاج النطاق دا لعمل اي شئ فلتخبرنا وقبل ما انسى يرجى تغيير اسم الظهور في المنتدى للغة العربية لسهولة التعامل Drive Edit3.rar1 point
-
أحسنت يا أبا الحسن والحسين أخي سعد الفقير : الكلام ما قاله أبو الحسن والحسين لا بد من وجود المعادلات حتى تعطي النتيجة المطلوبة وأما في حالة رغبتك في مشاهدة الأسماء مرة أخرى فحل الأخ الكريم أعلاه يفي بالغرض رضي الله عن صحابة رسول الله أجمعين أمين1 point
-
1 point
-
ملاحظة الى ااخ الكريم ياسر فتحي البنا المعادلة التي وضعتها تملأ العامود كله في حال تكرر احد الاسماء الرجاء محاولة تلافي هذا الشيء1 point
-
1 point
-
1 point
-
ما شاء الله سيمفونية عزف وكل فنان يضع لمسة جمالية تزيد من قيمة الشيىء وتجعلة تحفة فنية بارك الله فيكم1 point
-
1 point
-
السلام عليكم إخوتي الكرام جزاكم الله خيراً...قصيدتك أخي ياسر تعنينا ...فكم من أسرة كان لها البحر بالمرصاد ... والله المستعان على ما تصفون... اللهم اغفر لي ذنوبي كلها دقها وجلها...اللهم اغفر لي ما قدمت وما أخّرت وما أعلنت وما أسررت وما أنت أعلم به مني أنت المقدّم وأنت المؤخر وأنت على كل شيء قدير...اللهم اغفر لنا الذنوب التي تهتك العصم واغفر لنا الذنوب التي تجلب النقم لا تستهن بصغائرالذنوب فالجبال من الحصى والبحار من قطرات الماء ....لا كبيرة مع الاستغفار ولا صغيرة مع الإصرار... أستغفر الله العظيم وأتوب إليه....1 point
-
السلام عليكم اخى الكريم يمكنك استخدام المعادلة التالية =SUMPRODUCT(((D5:D20="محمد")+(D5:D20="سامي")+(D5:D20="عبد الله")+(D5:D20="وليد"))*E5:E20)1 point
-
يا أيها البحر لا تبكي وتبكينا .. وابلع دموعك ان الدمع يؤذينا .. متى ستعرف ان الموج موطننا .. فليس من بلد في البر يأوينا ... يا أيها البحر لا تبكي على شعب .. ابكى الصخور ولم يبكي السلاطينا ... كل البلاد بوجه الضيف مقفلة .. الا السماء أراها رحبت فينا1 point
-
رائع اخي ياسر زيادة في اثراء الموضوع معادلة اخرى (بدون IFERROR) . و تستطيع وضعها في اي مكان من الصفحة و لبس من الضروري الصف الثاني Find Salim + Yasser.zip1 point
-
1 point
-
السلام عليكم لم نرى لك رد على العموم شاهد المرفق اذا هذا ماتريد ارفق ملفك لنطبق عليه الفكره لاتنسى اولاً تضغط ملف الاكسل ومن ثم ترفعه في ردك تحياتي Ali_On.rar1 point
-
اخى الكريم اطلع على الملف التالى للاستاذ / عمر الحسينى ... جزاه الله خيراً تغيير اللغة.rar1 point
-
1 point
-
1 point
-
السلام عليكم و رحمة الله و بركاته الاخوة الاحباب بالمنتدى عن طريق ملف الاكسل المرفق يمكنك عمل بحث فى جهازك عن اي ملف عن طريق الاكسل و قمت بعمل واجهتين عربية و انجليزية و اضافة Hyperlink ( ارتباط تشعبي ) لسهولة الوصول للملفات التي تم البحث عنها كما يمكنك اختيار او كتابة الدرايف او المسار الذي سيتم البحث فيه و اختيار الامتداد او اسم الملف الذي سيتم البحث عنه و أسأل الله العلى العظيم أن ينفعكم بهذا العمل و الله و الموفق و المستعان و السلام عليكم و رحمة الله و بركاته SEARCH HaNcOcK.rar1 point