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

طلب لعمل شيت جدبد باسم جديد برمجيا ثم النقل


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

1241128194956.gif

اخواني الاعزاء وانا ابحث عن حل لمشكلتي صادفت هذا المنتدى المميز فقمت بالتسجيل فيه .

نسال الله ان يوفقنا لما يحب ويرضى

بحثت في المنتدي لكني لم اجد الاجابة الشافية لطلبي لذا طرحت هذا الموضوع آملا من الاخوة الأكارم النظر فيه

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

عموما انا عندي برنامج صممته ب فيجوال بيزك 6 وفيه وظيفة حفظ بعض البيانات ( فواتير) كل واحدة في شيت جديد

داخل ملف الاكسل موجود في دليل البرنامج اسمه MyDB - عند تحميل الفورم الرئيسئ تلقائيا يتم فتح الملف بالامر التالي :

حدث لود للفورم الرئيسي

set MyDB = Exl.workbooks.open(App.path & "\myDB.xls") 
فاريد ان اعمل لاي فاتورة شيت جديد باسم جديد اسم الشيت يتم أخذه من تكست بوكس موجود في الفورم اسمه Text1 الحدث كليك في زر اضافة فاتورة جديدة: يتم استدعاء الدالة NweSheeetCustomeName من موديول موجود بالبرنامج الاكواد الموجودة في الموديول ( طبعا اظن هذا الكود من ابداعات الاستاذ خبور خير ) :

Dim Exl As Excel.Application

Dim MyDB As Excel.Workbook


Sub NweSheeetCustomeName()

Dim SheetName As String

workbooks("MyDB").Select

SheetName=Text1.Text

If SheetName = "" Or Len(SheetName) > 31 Then

MsgBox ("You did not insert a name OR sheet name lenth is greater than 31 Characther")

Exit Sub

End If


Sheets.Add.Name = SheetName


End Sub


_____________________________

ماهو الخطأ الذي ارتكبته وانا لا ادري ؟

ثانيا هذا الخطأ ايضا يحدث في حالة الترحيل من الفورم الي شيت او من الشيت الي شيت اخر

فاذا تبين الخطأ تمكنا من حل مشكلة النقل والنسخ

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

_____________________

بارك الله فيكم .. وفي انتظار ابداعاتكم أخوكم ( الفدائي )

تم تعديل بواسطه Alfidai
رابط هذا التعليق
شارك

السلام عليكم

الاخ الفاضل الفدائي

فتح ملف اكسل جديد

عن طريق VB6 فيجول

يختلف من فتح ملف اكسل جديد من ملف اكسل

لاادري هل يزبط معاك بهذا الشكل


Dim Exl As Excel.Application

Dim MyDB As Excel.Workbook

Sub NweSheeetCustomeName()

Dim SheetName As String

Workbooks("MyDB").Select

SheetName = Text1.Text

If SheetName = "" Or Len(SheetName) > 31 Then

MsgBox ("You did not insert a name OR sheet name lenth is greater than 31 Characther")

Exit Sub

Else

With ActiveWorkbook.Sheets

.Add after:=Worksheets(Worksheets.Count)

End With

ActiveSheet.Name = SheetName

End If

End Sub

تم تعديل بواسطه alidroos
رابط هذا التعليق
شارك

بارك الله فيك اخي العيدروس على الرد السريع

الكود لم ينجح في عمل شيت جديد بل اعطى كود الخطأ الاتي :



Run-time error '9' :


Subscript out of range

هل يوجد موضوع خاص بالتعامل مع اكسل من داخل فيجول بيزك ؟

دون النظر الي الماكرو وملفات الاكسل المباشرة ؟

تم تعديل بواسطه Alfidai
رابط هذا التعليق
شارك

الحمد لله تم التوصل للحل بهذا الكود


Public Exl As Excel.Application

Public MyDB As Excel.Workbook

Public xlSheet As Excel.Worksheet


Private Sub Command1_Click()

Set MyDB = Excel.Workbooks.Open(App.Path & "\MyDB.xls")


Set xlSheet = MyDB.Worksheets.Add

xlSheet.Name = "sheet_name"
" عندي اسم الشيت متغير في تكس بوكس لذا السطر الاخير عندي هو : xlSheet.Name = text1.text مع ملاحظة ان الكود السابق المتغير فيه هو اسم الشيت وفي هذا الكود المتغير هو الشيت نفسه في الكود الاول لم يتم استدعاء وفتح ملف الاكسل اما هنا فتم ذلك كذلك ما دام ياخذ الاسم من تكست بوكس تم تجاهل شروط طول الاسم ووضع رسالة التحذير للتكست بوكس وليس لزر الاضافة وان شاء الله اسعى لاكمال البرنامج ووضع اي كود اراه مهم للاخوة هنا لتعم الفائدة ملحوظة مهمة : هذه الأكواد للتعامل مع Vb 6 لعمل برنامج مستقل وليس VBA الشائعة في المنتدى هنا لذا الأخوة الذين يطلعون عليه أخذ الحذر في التعامل معه لان في هذه الفكرة انت لا ترى اي ملف اكسل ولا ورقة الا اذا قمت بادراج امر :
 xlApp.Visible = True


__________________________ كود لانشاء ملف اكسل غير موجود اصلا والتعامل معه اولاً يجب إضافة مكتبة اكسل من قائمة Project > References Microsoft Excel 11.0 Object Library ( الرقم 11 تعني اوفيس اكس بي 2003) كود إنشاء ملف اكسل وتسمية ورقة العمل الاولى بــ Sheet وحفظ الملف على C



Public xlApp As Excel.Application

Public xlBook As Excel.Workbook


Sub CreateNewWorkBooks()


Set xlApp = CreateObject("Excel.Application")


Set xlBook = xlApp.Workbooks.Add

xlApp.Windows(1).ActiveSheet.Name = "sheet"


xlBook.SaveAs FileName:="C:\file_name.xls"


xlApp.Quit


Set xlBook = Nothing

Set xlApp = Nothing


End Sub



: اما اذا اردت حفظه في دليل البرنامج دون التقيد باي درايف استخدم هذا الكود
("App.Path & \MyDB.xls")

______________________

تم تعديل بواسطه Alfidai
رابط هذا التعليق
شارك

الحمد لله انك توصلت لطلبك

كلام فعلا مزبوط

بالنسبة لاكواد VB6 واكواد VBA Excel

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

هذا والله اعلم

رابط هذا التعليق
شارك

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.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information