الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أريد المساعدة فيin Vb Excel

بدأه boshkash في 11 يناير 2009 · 2 رد · 1,238 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

أريد أن أفتح ملف EXCEL من علي VB ووضع شيت علي الفورم وحفظ البيانات داخل ملف Excel آخر

قل لن يصيبنا إلا ما كتب الله لنا

#2

ضع هذا الكود في Form جديد فارغ


Private Declare Function SetParent Lib "User32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function MoveWindow Lib "User32" (ByVal hWnd As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long

Dim oExcel As Excel.Application
Dim oWB As Excel.Workbook
Dim oWS As Excel.Worksheet

Private Sub Form_Load()
Set oExcel = New Excel.Application


Dim oRng1 As Excel.Range
Dim oRng2 As Excel.Range

Set oWB = oExcel.Workbooks.Add
Set oWS = oWB.Worksheets("Sheet1")

Set oRng1 = oWS.Range("A1")
Set oRng2 = oWS.Range("B2:E5")

oRng1.Value = "Hello World"
Call oRng1.Copy(Destination:=oRng2)

hExcel = oExcel.hWnd

SetParent hExcel, Me.hWnd

oExcel.Visible = True
End Sub
Private Sub Form_Resize()
If hExcel > 0 Then MoveWindow hExcel, 0, 0, ScaleWidth / 15, ScaleHeight / 15, 1
End Sub
Private Sub Form_Unload(Cancel As Integer)
Me.Hide
oExcel.Visible = False

SetParent hExcel, 0

Set oWS = Nothing
If Not oWB Is Nothing Then oWB.Close
Set oWB = Nothing
oExcel.Quit
Set oExcel = Nothing
End Sub
Private hExcel As Long

ولا تنسى تحميل Reference الـ Excel التي تسمى بـ Microsoft Excel 10.0 Object Library

أو إي إصدار مختلف .. 11 مثلا إذا كنت تستخدم Excel 2003

وللأمانة العلمية هذا رابط الموضوع الأصلي

http://www.xtremevbtalk.com/t135815.html

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

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#3

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

يمكن ان تاحذ منة ما يكفيك

أولاّ: تصميم هذا البرنامج يحتاج إلى :

1. Form نجعل الخاصية Name هي frm_main

2. زرين أمر Command Button نجعل الخاصية Name للأول Cmd_Open وللثاني cmd_exit

3. أداة الـ Common Dialog نجعل الخاصية Name هي Dlg_Open

ثانياً : نحتاج إلى تعريف بعض المكتبات لتمكننا من التحكم التام بهذه التطبيقات وهي كالتالي:

من قائمة Project نختار References ثم نختار المكتبات التالية:

Microsoft Access Object Library
Microsoft Excel Object Library
Microsoft PowerPoint Object Library
Microsoft Word Library

ثالثاً: ندخل إلى خصائص الـ Common Dialog ثم نكتب في الحقل Flags مايلي:

Access (*.mdb)|*.mdb|Excel (*.xls)|*.xls|PowerPoint (*.ppt)|*.ppt|Word (*.Doc)|*.Doc|

وذلك لتحديد لواحق البرامج التي ستقوم الأداة بفتحها.

رابعاً : نعرف المتحولات التالية:

Dim wrd As Word.Application
Dim exl As Excel.Application
Dim acc As Access.Application
Dim ppt As PowerPoint.Application

ملاحظة يمكننا تعريف المتحولات السابقة من النوع Object ولكن لسهولة البرمجة عرفنا لكل متحول ما سيناسب غرض البرمجة.

خامساً: نكتب الكود التالي في زر الأمر Cmd_Open

Private Sub cmd_open_Click()
Dim file As String
dlg_open.ShowOpen
file = dlg_open.FileName

If (Right(file, 3) = "Doc") Then
Set wrd = CreateObject("word.application")
wrd.Visible = True
wrd.Documents.Open (file)
Set wrd = Nothing
ElseIf (Right(file, 3) = "Xls") Then
Set exl = CreateObject("Excel.application")
exl.Visible = True
exl.Workbooks.Open (file)
Set exl = Nothing
ElseIf (Right(file, 3) = "ppt") Then
Set ppt = CreateObject("powerpoint.application")
ppt.Visible = msoTrue
ppt.Presentations.Open (file)
Set ppt = Nothing
ElseIf (Right(file, 3) = "mdb") Then
Set acc = CreateObject("access.application")
acc.Visible = True
acc.Application.OpenAccessProject (file)
Set acc = Nothing
End If
End Sub

شرح الكود:

أولاً عرفنا متحول من النوع String ليحمل اسم ومسار التطبيق المراد فتحه وسيفيدنا باستخدامه بدلاً من استخدام مسار

التطبيق في الـ Common Dialog أي dlg_open.FileName

استخدمنا If Right لقراءة آخر ثلاث حروف من يمين مسار التطبيق أي لقراءة اللاحقة وتحديد نوع التطبيق سواء كان Word أو Excel .....

1. فإذا كان التطبيق Microsoft Word جعلنا الخاصية Visible هي True لإظهار التطبيق وبدون استخدامها سيفتح التطبيق في الذاكرة ولن يظهر أمامنا. ثم استخدمنا أمر فتح التطبيق كما هو موضح ضمن الكائن Documents . ثم حررنا المتحول من الذاكرة.

2.أما إذا كان التطبيق Microsoft Excel جعلنا الخاصية Visible هي True لنفس السبب السابق ثم استخدما أمر فتح التطبيق كما هو موضح ضمن الكائن الموجود ضمن الكائن WorkBooks . ثم حررنا المتحول من الذاكرة.

3.وإذا كان التطبيق Microsoft PowerPoint نجعل الخاصية Visible هي msoTrue أيضاً لنفس السبب السابق. ثم استخدمنا

أمر فتح الموجود ضمن الكائن Presenations . ثم حررنا الكائن من الذاكرة.

4.أما إذا كان التطبيق Microsoft Access نجعل الخاصية Visible هي True لنفس السبب السابق. ثم استخدمنا أمر فتح التطبيق ضمن الكائن Application.ثم نحرر المتحول من الذاكرة.

ملاحظة : إن التعليمات السابقة لا تحدث كلها بآن واحد وإنما تبعاً لنوع التطبيق تنفذ الأوامر الخاصة به.

وايضا للامانة الموضوع منقول

http://vb4arab.com/vb/showthread.php?t=41

تم تعديل هذه المشاركة بواسطة amr soft في 11 يناير 2009 في 22:04

مواضيع مشابهة