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

الردود الموصى بها

قام بنشر

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

لدي طلب مستعجل ..

انا مبتدئ في استخدام فيجوال بيسك

مشكلتي اني اريد نقل اكثل من قائمة من فيجوال بيسك الى برنامج اكسل

علما اني وجدت الرابط التالي وفيه شرح نقل قائمة واحدة فقط

----

http://fr.scribd.com/doc/19578575/%D8%B1%D8%A8%D8%B7-%D8%A7%D9%84%D9%81%D9%8A%D8%AC%D9%88%D8%A7%D9%84-%D8%A8%D9%8A%D8%B3%D9%83-%D8%A8%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D8%AC-%D8%A7%D9%84%D8%A7%D9%83%D8%B3%D9%8A%D9%84

-----

أرجوا الإفادة من خبراء البرمجة قريبا ..

للتواصل السريع ..

www.facebook.com/drnaoui

 

قام بنشر

الأخ الكريم/ qcchallenger

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

طلب حضرتكم غير واضح - الرابط المرفق صاحبه يتحدث عن الأتمتة Excel Automation أي التعامل مع الإكسل من خلال الفيجوال بيسك

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

  • Like 1
قام بنشر (معدل)

شكرا لاهتمامك يا باشا

سأحاول الشرح بالصور التالية

1- واجهة البرنامج

01.gif

2-نضع البيانات في السطر الأول

02.gif

3-علما ان السطر العلوي هو مربع نص في حين السطر الثاني يمثل مربع القوائم ونجد الصورة التالية بعد النقر 

على "copy to listes" 

03.gif

4-المشكل: 

بالنقر على زر "save to Excel" ينقل بيانات العمود الأول "work order" فقط إلى الاكسل

بينما أبحث عن طريقة تتيح نقل جميع العمدة إلى اعمدة تقابلها في اكسل

04.gif

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

05.gif

*******************************************************************************************

هل من طريقة تتيح نقل البيانات من اعمدة الفيجوال الى اعمدة الاكسل .. قرأت عن الأمر "Range"

لكن لم أعرف طريقة استخدامه..

أرجو أن يكون الشرح واضحا.. ولكم جزيل الشكر سلفا

******

مع تحــــــ Qc ـــــــــيات

تم تعديل بواسطه qcchallenger
قام بنشر

الأخ الكريم/ qcchallenger

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

نعم تسطيع نقل الأعمدة وبنفس الكود المستخدم علي النحو التالي :

ملء العمود الأول بالقائمة الأولي

For i = 1 To List1.ListCount
    xlw.Application.Cells(i, 1).Value = List1.List(i - 1)
Next i

ملء العمود الثاني بالقائمة الثانية

For i = 1 To List2.ListCount
    xlw.Application.Cells(i, 2).Value = List2.List(i - 1)
Next i

وهكذا حتي الإنتهاء من جميع القوائم

أرجو أن أكون أفدتك - تقبل تحياتي

قام بنشر (معدل)

مشكور وما قصرت..

سيتم التجريب لاحقا واعلامكم بالنتائج..

--------------------------------

تقبل تحياتــــــــــــــــــــــــــــQcـــي

تم تعديل بواسطه qcchallenger
قام بنشر

السلام عليكم

بعد اذن اخي حمادة

يمكن استعمال الكود التالي

Private Sub Command1_Click()
Dim xl As New Excel.Application
Dim xlw As Excel.Workbook
Dim i As Integer, Lr As Long
Set xlw = xl.Workbooks.Open(App.Path & "\my.xls")
xlw.sheets("bob").Select
Lr = xlw.Application.sheets("bob").cells(Rows.Count, "A").End(xlUp).Row

For i = 1 To List1.ListCount
xlw.Application.cells(Lr + i, 1).Value = List1.List(i - 1)
xlw.Application.cells(Lr + i, 2).Value = List2.List(i - 1)
xlw.Application.cells(Lr + i, 3).Value = List3.List(i - 1)

Next
xlw.Save
With xl
.Visible = False
.Application.Quit
End With
Set xlw = Nothing
Set xl = Nothing
End Sub

قام بنشر

شكرا للمتفاعلين معي..

تم تجريب الكود الأول يا باشا وقد نجح الأمر

جزاك الله كل خير..

في انتظار تجريب الكود الثاني لأبو حنين

مع خالص تحياتـــــ Qc ـــــي

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • اضف...

Important Information