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

gamalin

03 عضو مميز
  • Posts

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

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

مشاركات المكتوبه بواسطه gamalin

  1. السلام عليكم

    أخي الحبيب

    ليس مهما أن تتعب نفسك لمعرفة ذلك

    فقط يمكنك طلب تكرار عملية الإستبدال في الكود 10 مرات مثلا فلن يكون هناك أكثر من ذلك لو دائما الملف الصيغة التي أرسلتها

    لاحظ أن 10 تعني أنها ستغطي حتي إحتمال أن يكون هناك 512 مسافة فاضية في مكان واحد

    1 1

    2 2

    3 4

    4 8

    5 16

    6 32

    7 64

    8 128

    9 256

    10 512

    ولن يعطي الماكرو رسائل خطا إذا لم يجد مايستبدله

    فقط سيقوم بالبحث عنها ولن يجد فلن يغير

    الكود

    
    Sub Macro1()
    
    
    	Selection.Replace What:=" ", Replacement:="#", LookAt:=xlPart
    
    	For i = 1 To 10
    
     	Selection.Replace What:="##", Replacement:="#", LookAt:=xlPart
    
    	Next i
    
    End Sub
    
    

    اشكرك اخي الكريم يااااااااااااااااااه قد ايه العملية سهلة وبسيطة على من علمه الله زادك الله علما

    تحياتي

  2. السلام عليكم

    سأحل لك الجزء الأول من سؤالك

    حاولت ان اجد طريقة للتصدير من التكست للاكسل باستخدام text to columns لم اجد محدد ينفع لاستخدام delimited وايضا المسافات غير متساوية لاستخدام fixed width

    وعند استخدام المسافة يتم تقسيم العبارات وايضا تظهر بعض الكلمات العربية مقلوبة

    فهل من حل لذلك مرفق ملف تكست واخر اكسل تم تصديره

    وهل يمكن اجراء تقسيم بس بمسافتين بدل من مشافة واحدة مثلا

    تستطيع عمل ذلك علي خطوتين

    أولا إستبدال كل ماهو مسافتين إلي رمز غريب غير مستخدم في الورقة وليكن #

    ثانيا إستبدال كل ## بــ # واحدة

    وتكرار ذلك إلي ألا يكون بالورقة ## جنب بعض

    ثم إستخدم delimited علي الرمز #

    أنظر الفيديو المرفق

    اخي الكريم طارق جزاك الله خيرا

    قمت بتطبيق الفكرة الخاصة بك ولكن من داخل الاكسل بمعنى اخذ كوبي من التكست وباست في الاكسل وتطبيق عملية الاستبدال وذلك لاتمكن من عمل ماكرو لهذه العملية والحمد لله نجحت

    لكن

    1-- هل يمكن عد ## الموجودة او عد # الناتجة عن الاستبدال اول مرة اي بعد استبدال المسافات بالرمز لمعرفة عدد مرات التكرارلعمل حلقة بالكود

    يتم تكرار عملية الاستبدال بناء على ضغط مني على زر استبدال فهل يمكن عمل حلقة لذلك ؟

    وتتكررالى ان لا يجد ## فيعطي الاكسل رسالة ويتوقف فهل يمكن وضع امر بالكود يفيد انه اذا بحثت عن شي لاستبداله ولم تجده تخرج من الكود وتتوقف الحلقة جزاك الله خيرا

  3. السادة الافاضل نرجوا التكرم بشرح المزيد عن كيفية التعامل مع هذا البرنامج الرائع حيث انه اضافة قوية للتكامل بين برامج اوفيس وخاصة لتصدير صفحات الانترنت والاحتفاظ بها بنفس شكلها دونما قلب للنصوص العربية

    نرجوا التكرم بالقاء مزيدا من الضؤ على هذه الاداة الرائعة

    • Like 18
  4. السلام عليكم

    سأحل لك الجزء الأول من سؤالك

    حاولت ان اجد طريقة للتصدير من التكست للاكسل باستخدام text to columns لم اجد محدد ينفع لاستخدام delimited وايضا المسافات غير متساوية لاستخدام fixed width

    وعند استخدام المسافة يتم تقسيم العبارات وايضا تظهر بعض الكلمات العربية مقلوبة

    فهل من حل لذلك مرفق ملف تكست واخر اكسل تم تصديره

    وهل يمكن اجراء تقسيم بس بمسافتين بدل من مشافة واحدة مثلا

    تستطيع عمل ذلك علي خطوتين

    أولا إستبدال كل ماهو مسافتين إلي رمز غريب غير مستخدم في الورقة وليكن #

    ثانيا إستبدال كل ## بــ # واحدة

    وتكرار ذلك إلي ألا يكون بالورقة ## جنب بعض

    ثم إستخدم delimited علي الرمز #

    أنظر الفيديو المرفق

    اشكرك كثيرا استاذنا بارك الله فيك

    هل يمكن عمل تبديل في الخطوات بحيث يمكن عمل لصق للبيانات في الاكسل الاول لامكانية عمل ماكرو يقوم هو بعملية الاستبدال الى ان تظهر سالة تفيد بعدم وجود ## عندها يقوم الماكرو بعمل text to columns y delimited

  5. اولا وقبل اي شي تحية واجبة وشكر بالغ لاخوي الخالدي وطارق جزاكما الله خيرا للرد والبحث عن الحلول للمشكلات التي تقابلنا

    ثانيا

    جاري تجربة ا/ طارق واشكره كثيرا على الحل

    اخي الكريم الخالدي هل لي ان اطمع في تفسير استخدام الدالة code مع الرقم 63 تحديدا

    ومن اين جاءت المسافات الاضافية التي تضاف بين الاحرف العربي والتي تقوم انت بحذفها

    واسمح لي ان ابدي اعجابي واندهاشي فعند التحرك بالسهم على الكلمة في سطر المعادلة اجدها حقا مقلوبة وليس بها مسافات اضافية

    فهلا هذا صحيح هل اطمع في توضيح اكثر من مجرد الحل واشكرك كثيرا

    وتحياتي وشكري الكثير لاخي أ/ طارق بارك الله فيكما وزادكما علما ونفعكما بما تعلما وانتهزها فرصة بالدعاء لكل القائمين ويقتطعون من وقتهم وجهدهم لهذا المنتدى الكبير واتمنى ان يعاود الاخوة الافاضل الذين تغيبوا عنه او لم يعودوا كسابق العهد بهم متواجدين دوما الى مواقعهم

  6. اخانا الكريم بارك الله فيك وعمل اكثر من رائع ولكن هل يمكن ان تتفضل علي بشرح هذا الجزء من الكود للتعلم ليس الا زادك اللع علما ونفعك بما تعلم

    Private Function NewCodeWord()

    Dim MaxLong As Integer, Ulimit As Integer, Oline As Integer, lng As Integer, Word As String, i As Integer

    MaxLong = 9

    Oline = 255

    Ulimit = 32

    lng = Int(MaxLong * Rnd + 1)

    Word = ""

    For i = 1 To lng - 1

    Word = Word + Chr(Int((34 - 33 + 1) * Rnd + 33))

    Next i

    Word = Word + Chr(Int((Oline - Ulimit + 1) * Rnd + Ulimit))

    NewCodeWord = Word

    End Function

    • Like 1
  7. الاخوة الافاضل اكرمكم الله

    لدي مشكلة صغيرة تتلخص في لدي برنامج محاسبة لايقوم بالتصدير للاكسل مباشرة واحتاج عملية التصدير الى الاكسل لضرورة اعداد بعض التقارير الاضافية والتحليلات ولكنه يقوم بالتصدير الى ملفات نصية txt

    وحاولت ان اجد طريقة للتصدير من التكست للاكسل باستخدام text to columns لم اجد محدد ينفع لاستخدام delimited وايضا المسافات غير متساوية لاستخدام fixed width

    وعند استخدام المسافة يتم تقسيم العبارات وايضا تظهر بعض الكلمات العربية مقلوبة

    فهل من حل لذلك مرفق ملف تكست واخر اكسل تم تصديره

    وهل يمكن اجراء تقسيم بس بمسافتين بدل من مشافة واحدة مثلا

    او

    سؤال اخر هل يمكن عمل كد يمكن للاكسل معرفة اذا كان النص في الخلية بحروف عربية ام انجليزية

    واذا كان بحروف عربية يجري عليه دالة mirror لقلب النص واذا كان بحروف اجنبية يتركه

    مش عارف هل من حل لهذه المعضلة ؟ اعتقد دائما هناك حل باذن الله

    test.rar

  8. الاخوة الافاضل

    الحمد لله عمل الكود بكفاءة

    يتبقى فقط مشكلة صغيرة وهي ان

    ملف قاعدة البيانات محمي بباسوورد كيف يمكن وضع الباسوورد في الكود ليفتح قاعدة البيانات وتم ادراج البيانات الجديدة بها

    Dim db As Database, rs As Recordset, r As Long

    Set db = OpenDatabase("d:\SalesSystem.mdb")

    ' open the database

    ياريت الاخوة الافاضل يفيدوني في هذه المشكلة كيف يمكن ان اضع الباس وورد بعد اسم قاعدة البيانات ليتمكن من فتحها

    gللرفع

    الاخوة الخبراء بالاكواد

    ارجوا ان يتقدم احدكم وحل هذه المشكلة حيث ان الكود يعمل معي جيدا بملفات جديدة ليس بها باس وورد ولكن عند استهداف ملف له باسوورد يتوقف العمل فكيف اضيف الباسوورد في الكود السابق ليفتح الملف ويجري عليه العمليات ثم يخرج

    • Like 2
  9. الاخوة الافاضل

    الحمد لله عمل الكود بكفاءة

    يتبقى فقط مشكلة صغيرة وهي ان

    ملف قاعدة البيانات محمي بباسوورد كيف يمكن وضع الباسوورد في الكود ليفتح قاعدة البيانات وتم ادراج البيانات الجديدة بها

    Dim db As Database, rs As Recordset, r As Long

    Set db = OpenDatabase("d:\SalesSystem.mdb")

    ' open the database

    ياريت الاخوة الافاضل يفيدوني في هذه المشكلة كيف يمكن ان اضع الباس وورد بعد اسم قاعدة البيانات ليتمكن من فتحها

    • Like 1
  10. اشكركم للاهتمام والرد

    ثانيا

    بالنسبة للادراج والتصدير من والى الاكسس عن طريق inport كما تفضل الاخ ربما تكون سهلة لكنها تطلب ان تفتح database لليوزر وتسمح له بالنفاذ اليها والتعديل فيها وهذا يشكل خطر على البيانات لذا كنت افكر في طريقة باستخدام كود يتم تحديد جدول معي لتلحق به البيانات في كل مرة يطلب تنفيذ الكود دون الحاجة الى فتح الداتابيز

    ايضا هناك طريقة القص واللصق وهي مجربة ايضا ولكنها ايضا تحتاج الى فتح الداتابيز والكود جيد لكن به مشكلة في تعريف المتغيرات

    اشكركم جميعا وفي انتظار ان تستهوي الفكرة احد الماهرين في الاكواد

    • Like 1
  11. السلام عليكم

    أخي العزيز

    يوجد بالفعل قسم للمحاسبة

    أوفيسنا > الأوفيس Msoffice Up To 2007 > منتدى الإكسيل Excel > دروس و خلاصة مشاركات الإكسيل > قسم المحاسبة

    الرابط

    http://www.officena.net/ib/index.php?showforum=125

    عذرا اخي ان لم اعرفه قبلا واشكرك كثيرا

  12. ننظرا لان اكثر او من اكثر المتعاملين بالاكسل هم فئة المحاسبين تقريبا

    اقترح عمل قسم يضم المشروعات المشتركة في التطبيقات المحاسبية

    او الاعمال والبرامج المحاسبية بالاكسل

    مما قد يسهل البحث وايضا قد يتيح عمل مشاركات ومداخلات مفيدة للتطوير عليها ويفضل ان يتم تنقية هذه الموضوعات لتبقى دوما على اخر وضع لسهولة

    مثلا تم طرح موضوع او برنامج وتوالت الردود والتعديلات والتطوير الى ان وصل الى شكل يليق ومجتبر وجيد يتم ترك الوضع النهائي فقط وحذف ان امكن باقي المراحل السابقة او دمجها ليسهل الوصول الى الخلاصة والنتيجة النهائية

    فانا مثلا محاسب ولي تجارب كثيرة ومحاولات بالاستعانة بخبرات الاخوة الافاضل وايضا بدأت عدة مشروعات بعضها اكتمل والبعض الاخر توقف بعد قطع شوطا كبيرا به كبرنامج محاسبة لحسابات المقاولات يتابع المستخلصات وبيانات الحصر وخلافة ....

    ارجوا ان يدرس الاقتراح من الاخوة المشرفين واعتقد انه سيكون اضافة للمنتدى الرائع الكبير برجالة وكنوزه بارك الله فيكم جميعا وفي وقتكم وجهدكم

  13. غريبة ان الموضوع رغم اهميته واضافته لم يستهوي احد عموما لازلت في انتظار تشريف الاخوة المبدعين وخبراء الاكسل والبارعين في الاكواد علما بان رسالة الخطأالتي تظهر تتعلق بتعريف المتغير database

    فس السطر

    Dim db As Databaseوحاولت اتباع السطر الاخير واضافة dao في vba من tools >>>>>

    الا اني لم اوفق لان التأشير عليها يزول بمجرد قفل محرر الاكواد واعادة فتحة من جديد

    • Like 1
  14. الاخوة الافاضل جزاكم الله خيرا

    في بحثي عن حل لمشكلة تصدير البيانات الى الاكسس

    وجدت هذا الكود الرائع

    ولكني عند تجربته صادفت مشاكل في التطبيق

    لذا ارجوا من الاخوة مراجعته

    وفادتي لاهمية هذا الكود بالنسبة لي لان لدي برنامج قاعدة بياناته اكسس واحتاج كثيرا الى تصدير البيانات منه الى الكسل واجراء بعض المعالجات عليها واعادة لصقها في الاكسس مرة اخرى

    وفيمما يلي الكود

    'If you want to export data to an Access table from an Excel worksheet, the macro example below shows how this can be done:

    Sub DAOFromExcelToAccess()

    ' exports data from the active worksheet to a table in an Access database

    ' this procedure must be edited before use

    Dim db As Database, rs As Recordset, r As Long

    Set db = OpenDatabase("d:\SalesSystem.mdb")

    ' open the database

    Set rs = db.OpenRecordset("Transactions", dbOpenTable)

    ' get all records in a table

    r = 2 ' the start row in the worksheet

    Do While Len(Range("A" & r).Formula) > 0

    ' repeat until first empty cell in column A

    With rs

    .AddNew ' create a new record

    ' add values to each field in the record

    .Fields("FieldName1") = Range("A" & r).Value

    .Fields("FieldName2") = Range("B" & r).Value

    .Fields("FieldNameN") = Range("C" & r).Value

    ' add more fields if necessary...

    .Update ' stores the new record

    End With

    r = r + 1 ' next row

    Loop

    rs.Close

    Set rs = Nothing

    db.Close

    Set db = Nothing

    End Sub

    'The macro example assumes that your VBA project has added a reference to the DAO object library.

    'You can do this from within the VBE by selecting the menu Tools, References and selecting Microsoft DAO x.xx Object Library.

    'Use ADO if you can choose between ADO and DAO for data import or export.

    • Like 2
  15. استاذنا خبور جزاك الله خيرا

    كده اتحلت اول مشكلة وهي الحفظ في مسار الملف وهو امر جيد ورائع

    يتبقى ان يكون الحفظ للمساحة المظلله من الشيت وليس مشاحة محددة في الكود لصعوبة التعديل بداخل الكود وايضا ليمكن الاستفادة من الميزة دونما فتح الكود للاخرين لتعديل المدى

    نشكرك على التواصل وفي انتظار هذا التعديل

  16. في البداية كود مفيد وجميل نشكر الاخ

    ولكن يمكن من الاخوة خبراء الفيجوال تعديله ليصبح المدي بدلا من مدى ثابت يعدل برمجيا الى seletion range

    وايضا جعل مسار الحفظ بدلا من مسار ثابت الى مسار متغير يكتب في خليه محدده واذا وجدها خالية يستخدم مسار افتراضي

    عندها اعتقد ان الكود سيكون اجمل وافيد وايسر للاستخدام

    حاولت جرب التعديل عليه لكني فشلت

    Range("A1").Select

    Range(Selection, Selection.End(xlDown)).Select

    Range(Selection, Selection.End(xlToRight)).Select

    Set oRange = Selection.Range

  17. السلام عليكم

    اخي الكريم جملة الخروج من حلقة اللوب for id

    exit for

    ويتم وضعها بعد أخر سطر من تحقيق الشرط

    For i = 2 To addrows
    
    If Sheets(2).Cells(2, 5).Value = Sheets(1).Cells(i, 5).Value Then
    
    If Quantity - Sheets("add").Cells(i, 7).Value >= 0 Then
    
    Value = Value + Sheets("add").Cells(i, 7).Value * Sheets("add").Cells(i, 8).Value
    
    Quantity = Quantity - Sheets(1).Cells(i, 7).Value
    
    Sheets("add").Cells(i, 7).ClearContents ' هذا هو أخر سطر في تحقيق الشرط
    
    Exit For '  هنا يتم الخروج من حلقة اللوب
    
    Value = Value + Quantity * Sheets("add").Cells(i, 8).Value
    
    Sheets("add").Cells(i, 7).Value = Sheets("add").Cells(i, 7).Value - Quantity
    
    End If
    
    End If
    
    Sheets(2).Cells(2, 10).Value = Value
    
    Next i

    اخي الكريم جزاك الله خيرا وبارك فيك ونفعك بما تعلم وعلمك مما يعلم سبحانة عز وجل

  18. Sub mohd()

    Dim addrows As Integer

    Sheets("add").Activate

    addrows = Range("A65000").End(xlUp).Row

    Dim Value As Double

    Dim Quantity As Double

    Quantity = Sheets("sale").Cells(2, 9).Value

    For i = 2 To addrows

    If Sheets(2).Cells(2, 5).Value = Sheets(1).Cells(i, 5).Value Then

    If Quantity - Sheets("add").Cells(i, 7).Value >= 0 Then

    Value = Value + Sheets("add").Cells(i, 7).Value * Sheets("add").Cells(i, 8).Value

    Quantity = Quantity - Sheets(1).Cells(i, 7).Value

    Sheets("add").Cells(i, 7).ClearContents

    Else

    Value = Value + Quantity * Sheets("add").Cells(i, 8).Value

    Sheets("add").Cells(i, 7).Value = Sheets("add").Cells(i, 7).Value - Quantity

    End If

    End If

    Sheets(2).Cells(2, 10).Value = Value

    Next i

    End Sub

    في الكود السابق اريد الخروج من حلقة for اذا تحقق الشرط الثاني باللون الاحمر بعد تنفيذ الاجراء ولا يستمر وينفذ باقي الحلقة ويمكن الخروج من الاجراء ككل

    mohd.rar

  19. ايضاح للسؤال..

    السؤال... كيف لى أن أجعل قيم الصفحة الثانية (الهيكل).. مشابهة لقيم الصفحة الأولى (استيراد) حال زيادة أو نقصان القيم النصية فى الصفحة الأولى بحيث لا تتحرك من خلية لأخرى. بحيث عند النقصان تكون الخية الأولى ثابتة ويترحل ما بعدها لأعلى .. وعند الزيادة تدرج الزيادة فى الخلايا لأسفل.

    هو في حل متواضع ممكن يعالج المشكلة دي

    وهو انك ماتخليش معالة = الخاصة بالارتباط اصيلة بالشيت ودائمة بمعنى انك تعمل ماكرو بالشيت الهيكل لتحديث البيانات يحذف المعادلات منه ويكتبها من جديد وتنفذه على مدى اكبر يشمل عدد الاسطر المتوقعة واكثر قليلا

    وطريقة التنفيذ سهلة تبدأ بتسجيل ماكرو وتقوم بحذف المعادلات وكتابتها مرة اخرى اثناء التسجيل وسحبها ( نسخ ) على باقي المدى المراد وتوقف التسجيل وتخصص زر لتشغيل الماكرو

    واعتقد ان هذا سيفي بالغرض باذن الله

  20. أخي العزيز

    الماكرو الذي ذكرته يعمل عندي بدون مشاكل ومع ذلك استبدله بالآتي :

    Sub mg2()

    On Error Resume Next

    ActiveSheet.ShowAllData

    End Sub

    وجرب وأخبرني بالنتيجة

    تحياتي

    اخي الكريم بارك الله فيك وجزاك كل الخير ونفعك بما تعلم وزادك علما ونفعك ونفع بك

    كود هايل وحل المشكلة تمام التمام ياريس وبدون اي كلكعه حل بسيط وسهل ومفسر نفسه اشكرك وتحياتي

×
×
  • اضف...

Important Information