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

تحويل ورقة اكسل إلى وورد أو Export Excel to word document


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

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

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

 

باختصار مدارس المرحلة الابتدائية غدا فى مصر تجرى اختبار قرائية على مستوى الجمهورية

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

 

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

http://www.thespreadsheetguru.com/blog/2014/5/22/copy-paste-an-excel-table-into-microsoft-word-with-vba

 

وهذه صورة الكود :

Sub ExcelRangeToWord()

'PURPOSE: Copy/Paste An Excel Table Into a New Word Document
'NOTE: Must have Word Object Library Active in Order to Run _
  (VBE > Tools > References > Microsoft Word 12.0 Object Library)
'SOURCE: www.TheSpreadsheetGuru.com

Dim tbl As Excel.Range
Dim WordApp As Word.Application
Dim myDoc As Word.Document
Dim WordTable As Word.Table

'Optimize Code
  Application.ScreenUpdating = False
  Application.EnableEvents = False

'Copy Range from Excel
  Set tbl = ThisWorkbook.Worksheets(Sheet1.Name).ListObjects("Table1").Range

'Create an Instance of MS Word
  On Error Resume Next
    
    'Is MS Word already opened?
      Set WordApp = GetObject(class:="Word.Application")
    
    'Clear the error between errors
      Err.Clear

    'If MS Word is not already open then open MS Word
      If WordApp Is Nothing Then Set WordApp = CreateObject(class:="Word.Application")
    
    'Handle if the Word Application is not found
      If Err.Number = 429 Then
        MsgBox "Microsoft Word could not be found, aborting."
        GoTo EndRoutine
      End If

  On Error GoTo 0
  
'Make MS Word Visible and Active
  WordApp.Visible = True
  WordApp.Activate
    
'Create a New Document
  Set myDoc = WordApp.Documents.Add
  
'Copy Excel Table Range
  tbl.Copy

'Paste Table into MS Word
  myDoc.Paragraphs(1).Range.PasteExcelTable _
    LinkedToExcel:=False, _
    WordFormatting:=False, _
    RTF:=False

'Autofit Table so it fits inside Word Document
  Set WordTable = myDoc.Tables(1)
  WordTable.AutoFitBehavior (wdAutoFitWindow)
  
EndRoutine:
'Optimize Code
  Application.ScreenUpdating = True
  Application.EnableEvents = True

'Clear The Clipboard
  Application.CutCopyMode = False

End Sub

لم يعمل الكود حتى بعد اضافة المكتبة Microsoft Word 12.0 Object Library

 

وقمت بتطويره كما يلى :

Sub ExcelRangeToWord()


'PURPOSE: Copy/Paste An Excel Table Into a New Word Document
'NOTE: Must have Word Object Library Active in Order to Run (VBE > Tools > References > Microsoft Word 12.0 Object Library)
  
'SOURCE: http://www.thespreadsheetguru.com/blog/2014/5/22/copy-paste-an-excel-table-into-microsoft-word-with-vba

Dim tbl As Excel.Range
Dim WordApp As Word.Application
Dim myDoc As Word.Document
Dim WordTable As Word.Table

'Optimize Code
  Application.ScreenUpdating = False
  Application.EnableEvents = False

'Copy Range from Excel
   Set tbl = ThisWorkbook.Worksheets(Sheet1.Name).Range("Table1")

'Create an Instance of MS Word
  On Error Resume Next
    
    'Is MS Word already opened?
      Set WordApp = GetObject(class:="Word.Application")
    
    'Clear the error between errors
      Err.Clear

    'If MS Word is not already open then open MS Word
      If WordApp Is Nothing Then Set WordApp = CreateObject(class:="Word.Application")
    
    'Handle if the Word Application is not found
      If Err.Number = 429 Then
        MsgBox "Microsoft Word could not be found, aborting."
        GoTo EndRoutine
      End If

  On Error GoTo 0
  
'Make MS Word Visible and Active and WindowState Minimize
  WordApp.Visible = True
  WordApp.WindowState = wdWindowStateMinimize
      
'Create a New Document
  Set myDoc = WordApp.Documents.Add
  
  
 
   
'Copy Excel Table Range
  tbl.Copy

'Paste Table into MS Word
  myDoc.Paragraphs(1).Range.PasteExcelTable LinkedToExcel:=False, WordFormatting:=False, RTF:=False
  
  
  'PageSetup into MS Word
   
  With ActiveDocument.PageSetup
        .LineNumbering.Active = False
        .Orientation = wdOrientLandscape
        .TopMargin = CentimetersToPoints(1)
        .BottomMargin = CentimetersToPoints(1)
        .LeftMargin = CentimetersToPoints(1)
        .RightMargin = CentimetersToPoints(1)
       
   End With
 
   

'Autofit Table so it fits inside Word Document
  Set WordTable = myDoc.Tables(1)
  WordTable.AutoFitBehavior (wdAutoFitWindow)
  
 'save Word Document as
  With ActiveDocument
   ChangeFileOpenDirectory (ThisWorkbook.Path)    '  or use this line :   ChangeFileOpenDirectory "H:\ "     * change path
    
   ActiveDocument.SaveAs2 Filename:="document from excel by mohtar.doc"         'change Filename
 End With
 
 'CLOSE Word Application
   With WordApp
     .ActiveDocument.Close
     .Quit
     End With
     Set WordApp = Nothing

EndRoutine:

'Optimize Code
  Application.ScreenUpdating = True
  Application.EnableEvents = True
  
  'Clear The Clipboard
  Application.CutCopyMode = False
  
  
  MsgBox (" congratulation your excel File  saved as to Word Document  ")

End Sub

ملحوظتان فى غاية الأهمية :

الأولى : اضافة المرجع ده   Microsoft Word 12.0 Object Library  لمنع توقف الكود وذلك طبقاً للخطوات الاتية :

VBE > Tools > References > Microsoft Word 12.0 Object Library

 

الثانية تسمية المدى الذى تريد تحويله الى الوورد Table1 

 

والمرفق التالى يوضح ذلك طريقة تحويل الاكسل الى الوورد أقدمه هدية لزملائى ليستفيدوا به فى امتحان القرائية

 

تحياتى للجميع

 

Export Excel to word document.rar

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

أخي الحبيب مختار

جزاكم الله خير الجزاء على هذا الملف الرائع إن شاء الله

بقول إن شاء الله عشان لسه مشتغلش معايا كويس

أنا دلوقتي الحمد لله انتقلت لأوفيس 2013 .. والمكتبة اللي أشرت إليها Microsoft Word 12.0 Object Library

اللي عندي 15.0 مفيش مشكلة متفعلة ..!

وجيت أنفذ الكود خد وقت طويـــــــل - المهم صبرت - وصبرت - وفي الآخر جالي رسالة بتقول : الهاتف الذي طلبته غير موجود بالخدمه !!

Microsoft Excel is waiting for another program to complete an OLE action

 

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

وصبرت وصبرت وصبرت ... إنما للصبر حدود أخي مختار على رأي الست

وفي الآخر لسه الكود شغااااااااااال .. حاسس إنه بيخترع الذرة وأخيرا

جاتلي رسالة بتقولي : مبروك جالك ولد (قلت له كنت عايز بنت ) قالي لا جالك ولد ..

الحمد لله تم العمل على خير بس استغرق وقت طويل جداً ..فهل من حل؟

قبل تحياتي

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

أخى الدكتور ياسر     أعمل ايـــــــــه  والولادة كانت عسرة ؟!

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

كان هيموت.منى ونشف دماغه وحلف ما هو نازل  عند السطر  ده :

Set tbl = ThisWorkbook.Worksheets(Sheet1.Name).ListObjects("Table1").Range

مع أنى عامل اسم المدى  Table1 ومفعل المكتبة !!! بس ربنا ستر وأقدرت أطلعه  داهيه تطلع عينه زى ما طلع عينيه

تفتكر ليـــــــــــــــــــــــه يا دكتور ياسر؟!

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

كدا إنت حليتها يا أخ مختار

إن المدى يكون جدول بالفعل .. يعني مش تسمي المدى Table1 لا .. تحدد المدى ومن خلال التبويب Insert تختار كلمة Table ليتحول المدى إلى جدول

جرب وشوف

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

تمام أوى اشتغل الكود الأصلى ولكن البيانات طلعت بشكل  يحتاج  تنسيق وتعديل فى الكود  تحياتى

 

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

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