منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
كيفية فتح الاكسيل وتنفيذ أمر في الاكسيل ثم غلق الاكسيل - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : كيفية فتح الاكسيل وتنفيذ أمر في الاكسيل ثم غلق الاكسيل (/showthread.php?tid=20582)



كيفية فتح الاكسيل وتنفيذ أمر في الاكسيل ثم غلق الاكسيل - khaled12345 - 31-05-17

السلام عليكم الاخوة الاحباب
 
يارب تكونوا بكل الخير ان شاء الله

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

في المرفق الاكسيل شيت وفيه button  مكتوب عليها  Send

المطلوب فتح الاكسيل ثم الضغط علي هذا ال button في الاكسيل ثم اغلاق الاكسيل

الاكسيل في المرفقات


RE: كيفية فتح الاكسيل وتنفيذ أمر في الاكسيل ثم غلق الاكسيل - alma2 - 31-05-17

http://www.siddharthrout.com/2012/03/20/calling-excel-macros-programmatically-in-vb-net


RE: كيفية فتح الاكسيل وتنفيذ أمر في الاكسيل ثم غلق الاكسيل - khaled12345 - 31-05-17

(31-05-17, 08:03 PM)alma2 كتب : http://www.siddharthrout.com/2012/03/20/calling-excel-macros-programmatically-in-vb-net

السلام عليكم اخي الحبيب

نفذت الكود التالي ولكن ظهرت رسالة خطأ كالتالي

Imports Excel = Microsoft.Office.Interop.Excel

 

Public Class Form1

Sub RunMe()

MsgBox("Called from VB.net Client", vbInformation, "Demo to run Excel macros from VB.net")

End Sub

Sub ShowMsg(ByVal msg As String, ByVal title As String)

MsgBox(msg, vbInformation, title)

End Sub

 

 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

 

 

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

'~~> Define your Excel Objects

Dim xlApp As New Excel.Application

Dim xlWorkBook As Excel.Workbook

'~~> Start Excel and open the workbook.

xlWorkBook = xlApp.Workbooks.Open("C:\book1.xlsm")

'~~> Run the macros.

xlApp.Run("RunMe")

'~~> Clean-up: Close the workbook and quit Excel.

xlWorkBook.Close(False)

'~~> Quit the Excel Application

xlApp.Quit()

'~~> Clean Up

releaseObject(xlApp)

releaseObject(xlWorkBook)

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

'~~> Define your Excel Objects

Dim xlApp As New Excel.Application

Dim xlWorkBook As Excel.Workbook

'~~> Start Excel and open the workbook.

xlWorkBook = xlApp.Workbooks.Open("C:\book1.xlsm")

'~~> Run the macros.

xlApp.Run("ShowMsg", "Hello from VB .NET Client", "Demo 2nd Button")

'~~> Clean-up: Close the workbook and quit Excel.

xlWorkBook.Close(False)

'~~> Quit the Excel Application

xlApp.Quit()

'~~> Clean Up

releaseObject(xlApp)

releaseObject(xlWorkBook)

End Sub

Private Sub releaseObject(ByVal obj As Object)

Try

System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)

obj = Nothing

Catch ex As Exception

obj = Nothing

Finally

GC.Collect()

End Try

End Sub

 

End Class




RE: كيفية فتح الاكسيل وتنفيذ أمر في الاكسيل ثم غلق الاكسيل - alma2 - 31-05-17

غريب ان تنسخ الكود كما هو دون تغيير ما يناسب برنامجك،
هل ملف الاكسل لديك اسمه book1.xlsm وموجود في \:C كما أراه في الصورة؟
هل الزر مرتبط بماكرو اسمه RunMe كما أراه في الصورة؟

أخي تحتاج للتركيز في الأكواد ولا تنسخها على عماها

ملف book1.xlsm الخاص بك موجود في مجلد المشروع أي Application.StartupPath وليس \:C
كود :
xlWorkBook = xlApp.Workbooks.Open(Application.StartupPath & "\book1.xlsm")

الماكرو الموجود في ملفك اسمه Mail_Selection_Range_Outlook_Body وليس RunMe
كود :
xlApp.Run("Mail_Selection_Range_Outlook_Body")

اتمنى أن تستفيد من أخطائك في المرات القادمة


RE: كيفية فتح الاكسيل وتنفيذ أمر في الاكسيل ثم غلق الاكسيل - khaled12345 - 31-05-17

(31-05-17, 09:25 PM)alma2 كتب : غريب ان تنسخ الكود كما هو دون تغيير ما يناسب برنامجك،
هل ملف الاكسل لديك اسمه book1.xlsm وموجود في \:C كما أراه في الصورة؟
هل الزر مرتبط بماكرو اسمه RunMe كما أراه في الصورة؟

أخي تحتاج للتركيز في الأكواد ولا تنسخها على عماها

ملف book1.xlsm الخاص بك موجود في مجلد المشروع أي Application.StartupPath وليس \:C
كود :
xlWorkBook = xlApp.Workbooks.Open(Application.StartupPath & "\book1.xlsm")

الماكرو الموجود في ملفك اسمه Mail_Selection_Range_Outlook_Body وليس RunMe
كود :
xlApp.Run("Mail_Selection_Range_Outlook_Body")

اتمنى أن تستفيد من أخطائك في المرات القادمة


شكرا استاذي علي النصيحة

هل ملف الاكسل لديك اسمه book1.xlsm وموجود في \:C كما أراه في الصورة؟

نعم عملت دي


هل الزر مرتبط بماكرو اسمه RunMe كما أراه في الصورة؟


الصراحة لا Smile  بس هاعملها الحين

ان شاء الله استفيد من الاخطاء



RE: كيفية فتح الاكسيل وتنفيذ أمر في الاكسيل ثم غلق الاكسيل - alma2 - 31-05-17

هل ملف الاكسل لديك اسمه book1.xlsm وموجود في \:C كما أراه في الصورة؟
نعم عملت دي

اسمحلي
لو عملتها صحيح لم تظهر هذه الرسالة التي تفيد
.C:\book1.xlsm' could not be found'
ومعناها انه لم يجد الملف


RE: كيفية فتح الاكسيل وتنفيذ أمر في الاكسيل ثم غلق الاكسيل - khaled12345 - 31-05-17

(31-05-17, 09:44 PM)khaled12345 كتب :
(31-05-17, 09:25 PM)alma2 كتب : غريب ان تنسخ الكود كما هو دون تغيير ما يناسب برنامجك،
هل ملف الاكسل لديك اسمه book1.xlsm وموجود في \:C كما أراه في الصورة؟
هل الزر مرتبط بماكرو اسمه RunMe كما أراه في الصورة؟

أخي تحتاج للتركيز في الأكواد ولا تنسخها على عماها

ملف book1.xlsm الخاص بك موجود في مجلد المشروع أي Application.StartupPath وليس \:C
كود :
xlWorkBook = xlApp.Workbooks.Open(Application.StartupPath & "\book1.xlsm")

الماكرو الموجود في ملفك اسمه Mail_Selection_Range_Outlook_Body وليس RunMe
كود :
xlApp.Run("Mail_Selection_Range_Outlook_Body")

اتمنى أن تستفيد من أخطائك في المرات القادمة


شكرا استاذي علي النصيحة

هل ملف الاكسل لديك اسمه book1.xlsm وموجود في \:C كما أراه في الصورة؟

نعم عملت دي


هل الزر مرتبط بماكرو اسمه RunMe كما أراه في الصورة؟


الصراحة لا Smile  بس هاعملها الحين

ان شاء الله استفيد من الاخطاء


==================================================================================

السلا عليكم استاذي الفاضل alam 2

عملت ملف اكسيل جديد ووضعته علي ال desktop

وعملت بداخله ماكرو اسمه RunMe

واسم الشيت الاول workbook

 و الزر مرتبط بماكرو اسمه RunMe

ولكن يرضه لسه مش تمام معايا Huh



RE: كيفية فتح الاكسيل وتنفيذ أمر في الاكسيل ثم غلق الاكسيل - alma2 - 31-05-17

[attachment=14411]

بالنسبة للمرفق الأخير منك book1.rar ، كيف سترى النتيجة وانت تقوم بتنفيذ الماكرو من الفجوال بيسيك والتي هي عبارة عن تلوين خلايا ورقة الاكسل نفسه؟
هل فكرت في هذا؟


RE: كيفية فتح الاكسيل وتنفيذ أمر في الاكسيل ثم غلق الاكسيل - khaled12345 - 31-05-17

(31-05-17, 10:24 PM)alma2 كتب :
بالنسبة للمرفق الأخير منك book1.rar ، كيف سترى النتيجة  وانت تقوم بتنفيذ الماكرو من الفجوال بيسيك؟
هل فكرت في هذا؟

سلمت يداك يا هندسة و بارك الله فيك

الف الف مليوووووون شكر لحضرتك