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

الزباري

الخبراء
  • Posts

    462
  • تاريخ الانضمام

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

  • Days Won

    11

كل منشورات العضو الزباري

  1. بعيداً عن تعقيدات الكود.. سطر واحد يقوم بالمهام.. إليكم المرفق hide-unhide.rar
  2. أحيانا نقوم بإدخال رقم طويل جداً ولا نعلم مدى صحته ولا نتأكد من عدد خاناته مث الرقم القومي أو رقم الهوية، هنا طريقة لتنسيق خانة الإدخال وتحديد عدد الخانات المطلوب عدم تجاوزها بحيث لو تم تجاوزها تتوقف الكتابة، إليكم المثال مع الشرح تنسيق الإدخال.rar
  3. أتمنى أن يكون قصدك الاستعلام عن النتيجة كما في المرفق Choose.rar
  4. ولو أردنا الكتابة في سطرين نكرر كتابة الكود التالي: Print #1, "اسمي هو: " Print #1, "الزباري" لتكون النتيجة كالتالي: أما إذا أردنا الكتابة في نفس السطر (العمود التالي) فإننا نضيف فاصلة كالتالي: Print #1, "اسمي هو: ", Print #1, "الزباري" لتكون النتيجة كالتالي:
  5. Print #1, "مرحبا.. هنا منتدى أوفيسنا" ومن الممكن استبدال كلمة "print" ب "write" وكلهم يؤدون نفس الغرض كالتالي: write #1, "مرحبا.. هنا منتدى أوفيسنا"
  6. شكراً على تفاعلك البناء معنا يا أباحمزة ، في الحقيقة لقد احترت في الموضوع وقتلتها بحثاً ، ووجدت معظم الشكاوى على أمر الدوز ، حيث أنني جربت أمثلة جاهزة إلا أن بعضها لم يتوافق معي، وبعضها يعمل مرة واحدة فقط ولا يعمل مرة أخرى إلا بعد إعادة نشغيل الملف. على العموم تم حل الموضوع بكود بديل، أرجو تجربة الملف وموافاتنا بالنتائج. وتقبلوا نحياتي ابراهيم2.rar
  7. بالفعل هناك مشكلة مع البعض، وأعتقد الأمر يرجع إلى نوع الويندوز المستخدم، لأن الكود يشمل على إحدى أوامر الدوز والذي لم يتوافق مع البعض، إلى أن نجد الحل ، تابعونا.
  8. أخي العزيز أبويوسف وأخي العزيز أبوحمزة لعلكما بدأتما من حيث انتهينا وهذه هي المشكلة هناك مجلد اسمه info نقلناه إلى سطح المكتب في بداية الدرس .. حاولا نقله إلى سطح المكتب وسيعمل معكما حتماً . وتقبلوا تحياتي
  9. يبدو أنك لم تنقل الملف إلى سطح المكتب الملف مرتبط بالمجلد info جرب أن تنقل الملف إلى المكان الذي تم فيه تخزين ملف ابراهيم والمندوبين
  10. نعود لأخونا ابراهيم، وكما قلنا بأن أخونا ابراهيم أراد أن يجمع الملفات في شيت واحد طالما أن المندوبين لديهم نفس النموذج. ولعمل هذه التجميعة فلا بد أن نتبع إحدى الطريقتين: إما أن يتم استدعاء جميع الملفات النصية من المجلد إلى الإكسيل بشكل مباشر. أو أن يتم تجميع الملفات النصية إلى ملف نصي جديد ، ومن ثم يتم الإستدعاء من الملف النصي الجديد إلى الإكسيل بشكل مباشر. اعتمدت أنا على الطريقة الثانية كالتالي: ابراهيم2.rar لا تنسى نقل الملف إلى مكانه الصحيح حيث يوجد المجلد info لو لاحظت أننا لم نغير في الكود سوى هذا السطر Shell Environ$("COMSPEC") & " /c Copy" & ThisWorkbook.Path & "\info\*.txt" & ThisWorkbook.Path & "\info\CombinedFile.txt " والذي يعني لأن يجمع الملفات النصية داخل المجلد info إلى ملف نصي جديد اسمه combinedfile تأكد من الملف النصي الجديد داخل المجلد تابعــــــــــــــــــــــــونا
  11. LOF: ترمز إلى long file open بمعنى حجم محتوى الملف من حروف وفراغات والذي يقرأه بشكل تلقائي جرب بأن تستبدل (1) LOF بالرقم 10مثلاً ستشاهد بأنه قلل شاشة العرض حيث تحتوي على 10 خانات.
  12. ثانياً: القراءة (read): وهي نفس مبدأ الكتابة ولكنها تختلف في أمرين وهما: - استخدام كلمة input بدلاً من output - تخزين البيانات لعرضها بدلاً من نقلها مثال: Sub read() Dim FilePath As String Dim FileContent As String ' تحديد مسار الملف المطلوب قراءته FilePath = "C:\testfolder\create.txt" 'فتح الملف النصي Open FilePath For Input As #1 'تخزين البيانات FileContent = Input(LOF(1), #1) 'عرض البيانات المخزنة MsgBox FileContent 'إغلاق الملف النصي Close #1 End Sub جرب الكود بعد تغيير مسار الملف المطلوب قراءته. لاحظ بأنه لا يمكن قراءة الملف إذا لم يكن موجود.
  13. الأرقام هي عملية تنظيمية لدخول الملف .. يُمنع دخول شخص آخر في نفس الملف إلا إذا كان يحمل رقم مختلف .. وهذا يساعدنا في فتح الملف لأكثر من مستخدم في نفس اللحظة طالما أن كل شخص يحمل رقم مختلف.
  14. ماذا يعني as#1: يعني أن تفتح الملف رقم (1) بحيث لا يمكن لأحد غيري التعامل معه إلا إذا أغلقته (close#1).. وإذا أردت أن أفتح ملف آخر في نفس الوقت أعطيه رقم آخر وليكن 2 فيكون الكود كالتالي: open file for output as #2 . . . close #2 جرب أن تحذف كلمة close #1 وفعّل الكود، في المرة الأولى سيعمل معك بلا مشاكل، حاول أن تشغل الكود مرة أخرى فسيعطيك رسالة بأن الملف لا يزال مفتوح، أرجع كلمة close #1 إلى مكانها فسيعطيك أيضاً رسالة بأن الملف لا يزال مفتوح، لمااااااذا؟ ومالحل؟ بانتظار إجاباتكم.
  15. أولاً: الكتابة (write): الكتابة تعتبر نوع من أنواع المخرجات ولذلك نعبر عن الملف ب output فلو أردنا الكتابة في ملف نصي فيجب أن نفتح ملف نوعه output قبل كتابة الكود كالمثال التالي: Sub VBA_Print_to_a_text_file() Dim strFile_Path As String strFile_Path = "C:\temp\test.txt" 'غيّر مسار الملف من هنا Open strFile_Path For Output As #1 'هنا قمنا بفتح الملف Print #1, "مرحبا.. هنا منتدى أوفيسنا" Close #1 'هنا غلقنا الملف الذي فتحناه End Sub جرب الكود ولا تنسى بأن تغير مسار الملف ثم ابحث عن ملف test الذي تم تكوينه بشكل تلقائي. حاول أن تغير العبارة "مرحبا.. هنا منتدى أوفيسنا" إلى عبارة أخرى، ستلاحظ بأنه تم طباعته على الكلام السابق في الملف test. بمعنى أن الكود يبحث عن الملف test فإن لم يجده فإنه سوف ينشؤه دون أن يؤثر ذلك في عمل الكود.
  16. بناءاً على رغبة المتابعين شرح الكود الخاص بالتعامل مع النصوص سيتم إدراج الأمثلة الخاصة بها مع الشرح في هذه الصفحة. التعامل مع الملفات النصية ينقسم إلى ثلاثة أقسام وهي: 1- الكتابة (write). 2- القراءة (read). 3- الإضافة (append).
  17. وحتى لا نشتت الموضوع اسمحولي بأن أدرجها في موضوع جديد، لأن شرحها يحتاج على الأقل إلى أربعة أمثلة لاستيعابها. تابعونا في هذا الرابط
  18. ولهذا السبب جعلنا نفكر بالتعامل مع ملفات النصوص text files.. سنعرف ذلك عندما سنشرح طريقة عمل الكود.. تابعنا
  19. أخي أبوحمزة.. بل يجب أن يكون في عدة أعمدة.. لا أدري مالمشكلة لديك، فقد جربتها في أكثر من جهاز ولا مشكلة لدي في العرض.
  20. اممم .. فكرة جيدة، لكنه لا تخدمنا في حال تغير المندوبين أو إلغاء أو دمج أحدهم، فالتسلسل حاجة مجهولة، بمعنى أنه لو أردنا بيانات مندوب مخصص فمن الصعوبة تعريفه في البرمجة، بالإضافة إلى صعوبة تبادل البيانات بين المندوبين في حال تطوير البرنامج، محاولة تُشكر عليها، وتقبل تحياتي.
×
×
  • اضف...

Important Information