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

طارق محمود

أوفيسنا
  • Posts

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

  • تاريخ اخر زياره

  • Days Won

    42

كل منشورات العضو طارق محمود

  1. في نفس السياف ، سالني صديق نفس السؤال تقريبا علي إميلي الخاص وأرسل لي أيضا ملف تيكست به أكثر من 90,000 رقم تليفون كلها بالسعودية مثل 966503011273 966505584504 966503932916 966500477498 وكان طلبه: 1. ترتيب الارقام في جهات اتصال vCard ، بحيث ترتب الارقام تصاعديا من الاصغر إلى الاكبر 2. ثم تأخذ كل جهة اتصال اسما تسلسليا يبدأ من J00001 الحقيقة أن كثرة الأسماء ، جعلتني أفكر في وسيلة أخري والحمد لله باستخدام كود صغير يمكن إنشاء عدد كبييير من ملفات الـ vcf التي يمكن قرائتها من الأوتلوك أو من المحمول وبعد إذن صديقي ، سأستعير بعض أرقام التليفونات في الملف المرفق وبه الشرح فقط تضع في ملف الإكسل الإسم بالعمود الأول ثم الرقم بالعمود الثاني وتشغل الكود فينشيء لك عدد الكروت الـ vcf المطلوب في المجلد xxx علي القرص D الكود هو Sub write_VCF() LR = [A999999].End(xlUp).Row For i = 1 To LR a = Cells(i, 1): b = "TEL;CELL" & Cells(i, 2) Filename = "D:\xxx\" & a & ".vcf" Open Filename For Output As 1 Print #1, "BEGIN: VCARD" Print #1, "FN: " & a Print #1, b Print #1, "End: VCARD" Close #1 Next i End Sub والآن أترككم مع المرفق تحويل الأسماء.rar
  2. السلام عليكم تفضل أخي المرفق به شرح سريع الربح المركب.rar
  3. السلام عليكم أي المتكرر تريد حذفه العلوي أم السفلي بمعني إذا تكرر رقم فهذا يعني أن منه نسخة بالأعلي وأخري بالأسفل فأيهما تريد حذفها
  4. السلام عليكم أخي الكريم قد يكون المرفق هو ماتريد تنبيه للمتكرر.rar
  5. السلام عليكم أرجو أن يكون المرفق هو المطلوب TEST ESLAM2.rar
  6. أي إصدار للأوفيس تستخدم 2003 2007 2010
  7. السلام عليكم أخي الكريم هذه المعادلة يعيبها أنها تستخرج الأرقام من التسعة أحرف بيسار النص فقط ولاتستخرج من باقي النص ستجد شرح للمعادلة كما تريد وستجد أيضا ملف بها دالة مستحدثة (بالكود) لنفس الغرض (فصل الأرقام عن الحروف) ولكنها تتعامل مع النص بكامله تفضل المرفق شرح استخراج الارقام من الكلمات من خلية ما.rar
  8. إذا كان الجوال حديث (smart phone) يمكن تحويلها إلي ملفات vCardFile vcf علي الرابط التالي مشكلة مماثلة وقد أرشدت الأخ السائل إلي خطوات التحويل الي vcf بمشاركتي بالموضوع (مشاركة رقم 4) http://www.officena.net/ib/index.php?s=caa939d6080d1658ccc9ca4dd0fcd072&showtopic=39234&hl=
  9. السلام عليكم أخي العزيز صيغة CSV كما قال الغالي أبو أحمد إن لم يقبل جهازك هذه الصيغة فلتلجأ للصيغة الأخري VCF وهذه الاخيرة تحتاج خطوات أكثر ويلزم أن يكون عندك برنامج أوتلوك ستنقل محتويات الأسماء بالأوتلوك إلي مكان آخر مؤقت ثم تستورد إلي الأوتلوك من الملف الإكسل أو الـCSV ثم من الأوتلوك يمكنك إرسال جميع الأسماء إلي صيغة VCF إلغي الأسماء من الأوتلوك وإسترجع أسماء الأوتلوك الأصلية لمكانها مرة أخري في الخطوة 4 ،يلزمك كود صغير علي الأوتلوك وليس علي الإكسل ليمكن الأوتلوك من إرسال جميع الأسماء إلي صيغة VCF وليس إسما بإسم كما هو العادي هذا الكود هو Sub Save_all_Contacts_as_VCF_format() Dim ns As NameSpace Dim foldContact As Folder Dim itemContact As ContactItem Dim colItems As Outlook.Items Dim myProperty As Outlook.UserProperty Set ns = Application.GetNamespace("MAPI") Set foldContact = ns.GetDefaultFolder(olFolderContacts) Set colItems = foldContact.Items.Restrict("[MessageClass]='IPM.Contact'") For Each itemContact In colItems i = i + 1 itemContact.SaveAs "D:\AAA\" & i & ".vcf", olVCard Next End Sub ستلاحظ كما بالسطر قبل الأخير بالكود itemContact.SaveAs "D:\AAA\" & i & ".vcf", olVCard أنك لابد أن تكون مجهز قبل تشغيل الكود مجلد وليكن AAA علي الدرايف D إن أردت إرسل لي الملف مهما كان كبيرا وسأحوله لك بإذن الله
  10. السلام عليكم نعم أخي الكريم الافضل في هذه الحالة اعتبار كل فترة من هذه الفترات على انها شريك بذاتها ثم عند تصفية المشروع نجمع المستحق له في كل فترة على حدى من ارباح لتكون اجمالي المستحق له من الربح. والطريقة الاسهل هي نفس هذا المبدأ مع تجميعه آليا
  11. السلام عليكم كل علام وأنتم بخير بعد إذن أخي سعيد أخي الكريم تفضل المرفق توزيع.rar
  12. السلام عليكم جرب الحفظ بصيغة dbf III لابد من أن يكون الأوفيس 2003 جرب المرفق 1.rar
  13. السلام عليكم أخي الكريم يمكن ذلك بالأكواد وليس بالمعادلات ولكن يعيب ذلك أنه لارجعة فيه بمجرد تغيير محتوي الخلية C7 سينشط كود ويجري العملية مثلا لو الرقم المخصوم 200 ، أول مرة سيكون الناتج صحيحا ولكن إن عدلت هذا الرقم لي 250 مثلا سيخصم من النتيجة السابقة (أي أنه يعادل خصم 200+250 = 450) ولو هممت بتعديل الخلية C7 ثم لم تغير الرقم (200 كما ضربت لك المثال) سيخصم 200 أخري من النتيجة السابقة (أي أنه يعادل خصم 200+200 = 400) أنا عملت المطلوب مثل ما تريد ولكني أري أن نجعل ذلك ليس معتمدا علي مجرد تغيير محتوي الخلية C7 بل علي زر مثلا TEST 5_5.rar
  14. السلام عليكم سألني صديقي: وردا عليه أقول لفهم معادلة التنسيق الشرطي ظلل المساحة B5:O27 بشرط بداية التظليل من B5 ثم إفتح التنسيق الشرطي لتجد أن المعادلة كالتالي =AND(COLUMN()>2,B5="",B$4<=MONTH($C$2),DATE(YEAR($C$2),B$4,$C5)<$C$2-2) وكما تعلم فالدالة AND هي دالة شرطية تمنع تحقيق جواب الشرط إلا إذا تحقق كافة أجزاء الشرط ودالتنا هذه تحتوي علي أربع أجزاء تفصل بينهم الفاصلة , أي =AND(C1,C2,C3,C4) وجواب الشرط طبعا هو تلوين الخلية بالأحمر إذا فككت الشرط للأجزاء المكونة له (عند كل فاصلة) ستجد أن الأجزاء الأربع هي: COLUMN()>2 B5="" B$4<=MONTH($C$2) DATE(YEAR($C$2),B$4,$C5)<$C$2-2 الشرط الأول أن تكون الخلية فيما بعد العمود الثاني (ألا يراجع الخلايا بالعمود A,B) الشرط الثاني أن تكون الخلية فارغة (ليس بها تاريخ السداد) الشرط الثالث أن تكون الخلية التي تعلوها بالصف الرابع (رقم الشهر) أقل من أويساوي رقم الشهر في خلية تاريخ اليوم (لتجنب أن يلون مالم يأتي شهره بعد) الشرط الرابع أن يكون التاريخ المكون من (سنة خلية تاريخ اليوم ، والشهر اللي رقمه بالخلية التي تعلوها بالصف الرابع ، اليوم المساوي ليوم السداد المفروض بالعمود C) ..................أن يكون هذا التاريخ أقل من تاريخ اليوم مطروحا منه 2 .... أي يبدأ في التنبيه بعد مرور 3 أيام إن شاء الله تكون الفكرة وصلت
  15. إذن تفضل المرفق TEST 5_3.rar
  16. السلام عليكم أخي العزيز مرفق ماطلبت بالتنسيق الشرطي إذا تكرر الإختيار سيتلون بالأحمر منظومة قبول الطلبة4.zip
  17. السلام عليكم أخي الكريم لو المثال الثالث ، الرقم المخصوم 1600 وليس 600 وليس 800 إن كان هذا صحيحا فتفضل المرفق TEST 5_2.rar
  18. السلام عليكم أخي الكريم قبل أن أبدأ أنا أو غيري أعتقد أن عندك خطأ في المثال الثالث الرقم المخصوم 1600 وليس 600 إن كان هذا صحيحا سأتابع معك وإلا ففسر لي كيف ان الزائد 400
  19. السلام عليكم أخي الكريم ممكن تذهب إلي DN1 عن طريق Ctrl-G ثم منها تضغط Ctrl-Shift-Home سيظلل منها إلي A1
  20. السلام عليكم أخي العزيز إعتمدت علي أن الإكسل يعامل اليوم كرقم واحد صحيح وبالتالي الفارق بين كل خدمة والتي تليها 6 ساعات = 0.25 يوم بالنسبة للأجازات لابد من تحديدها مثلا كل حارس له 2يوم بالشهر أو 5 يوم تفضل المرفق بدون التعرض لموضوع الأجازات توزيع غفراء_1.rar
  21. السلام عليكم هذا الموضوع لصديق راسلني به علي الخاص ورأيت ان أنشره ليعم النفع به يقول السائل املك مراب للسيارات والمشكل الذي أعاني منه هو كثرة تهرب الزبائن من دفع مستحقات كل شهر وبذلك يختلط علي تحديد تاريخ كل زبون و موعد تسديده مع أنني أسجل في دفتر خاص . فارتأيت ان استعمل المجدول (Excel 2007) أريد أن اعرف تاريخ التسديد القادم في كل مرة يسدد فيها الزبون مستحق الشهر وان لم يفعل فالخلية التي تحمل اسمه تظهر بلون معين بعد 3 أيام من التاريخ المقرر التسديد فيه إلى أن أغيرها عند تسديده . وبالنسبة لتاريخ التسديد القديم عند تغييره بالجديد فأريد أن تكون الطريقة سهلة و سريعة. وكحل سريع للموضوع المرفق باستخدام التنسيق الشرطي ظهور لون معين بعد 3 أيام من تاريخ السداد.rar
  22. السلام عليكم أخي العزيز أضف سطر لتفادي الخطأ في أول الكود On Error Resume Next أضف بعده سطر لإلغاء الحماية ActiveSheet.Unprotect وسطر آخر لتفعيلها مرة أخري في آخر الكود ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False سيكون الكود هكذا Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub On Error Resume Next ActiveSheet.Unprotect If Not Intersect(Target, Range("b1:b60000")) Is Nothing Then VBA.Calendar = vbCalGreg If IsEmpty(Target) Then Target(1, 2).Offset(0, -2).ClearContents Else With Target(1, 2).Offset(0, -2) .Value = Date .EntireColumn.AutoFit End With End If End If ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False End Sub
  23. السلام عليكم أخي العزيز أنا فرضت 60 عمود (من 2 إلي 61) يلزمك كودين الكود الأول في حدث فتح الملف ليحسب عند فتح الملف (وهذه قد تستغرق بعض الوقت) كافة الموجود في العمود A من الشييت 1 مرة واحدة Private Sub Workbook_Open() Application.ScreenUpdating = False Sheet1.Activate For r = 2 To [A65536].End(xlUp).Row aa = Cells(r, 1).Value If IsEmpty(aa) Then GoTo 20 For c = 2 To 61 ' columns x = Cells(1, c).Value If IsEmpty(x) Then GoTo 10 y = 0 For i = 1 To Len(aa) If Mid(aa, i, 1) = x Then y = y + 1 Next Cells(r, c) = y 10 Next c 20 Next r Application.ScreenUpdating = True End Sub والكود الثاني في حدث التغيير في العمود A ليتحسس بعد تنفيذ الكود الأول أي تغير في العمود A ويعيد حساب هذا الصف فقط الذي حدث فيه تغيير في العمود A Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 1 Or Target.Row = 1 Then Exit Sub For c = 2 To 61 ' columns x = Cells(1, c).Value If IsEmpty(x) Then GoTo 10 y = 0 For i = 1 To Len(Target) If Mid(Target, i, 1) = x Then y = y + 1 Next Cells(Target.Row, c) = y 10 Next c End Sub ولو أردت تغيير عدد الأعمدة من 60 إلي 50 مثلا فلتغير الرقم 61 إلي 51 في الكودين For c = 2 To 61 ' columns تفضل المرفق عدد الكلمات والحروف والارقام فى الخلية2.rar
  24. السلام عليكم أخي العزيز إستخدم الكود التالي Function cntt(myRng As String, x As String) As Integer y = 0 For i = 1 To Len(myRng) If Mid(myRng, i, 1) = x Then y = y + 1 Next cntt = y End Function لإنشاء دالة معرفة جديدة cntt شاهد المرفق عدد الكلمات والحروف والارقام فى الخلية.rar
  25. السلام عليكم أخي الكريم جرب المرفق a3.rar
×
×
  • اضف...

Important Information