- Katılım
- 5 Mart 2008
- Mesajlar
- 896
- Excel Vers. ve Dili
- EV:EXCEL 2010-TÜRKÇE
İŞ:EXCEL 2010-TÜRKÇE
arkadaşlar bu 4 adet word dosyasını tek word dosyasında tablo halinde nasıl yapabilirim?
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub KlasordekiWordDosyalariniTekSayfadaBirlestir()
Dim dlg As FileDialog
Dim klasorYolu As String
Dim dosyaAdı As String
Dim anaDoc As Document
Dim eklenecekDoc As Document
Dim docRange As Range
Set anaDoc = Documents.Add
Set dlg = Application.FileDialog(msoFileDialogFolderPicker)
With dlg
.Title = "Word dosyalarının bulunduğu klasörü seçin"
If .Show <> -1 Then
MsgBox "İşlem iptal edildi.", vbExclamation
Exit Sub
End If
klasorYolu = .SelectedItems(1)
If Right(klasorYolu, 1) <> "\" Then
klasorYolu = klasorYolu & "\"
End If
End With
dosyaAdı = Dir(klasorYolu & "*.docx")
Do While dosyaAdı <> ""
Dim tamYol As String
tamYol = klasorYolu & dosyaAdı
Set eklenecekDoc = Documents.Open(FileName:=tamYol, ReadOnly:=True)
Set docRange = anaDoc.Content
docRange.Collapse Direction:=wdCollapseEnd
eklenecekDoc.Content.Copy
docRange.Paste
docRange.InsertAfter vbCrLf & vbCrLf
eklenecekDoc.Close SaveChanges:=False
dosyaAdı = Dir
Loop
MsgBox "Tüm dosyalar başarıyla birleştirildi.", vbInformation
End Sub
Sub word_birlestir()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set klasor = CreateObject("shell.application").BrowseForFolder(0, "Kaynak Dosyaları İçeren Klasörü Seçin", 50, &H0)
If Not klasor Is Nothing Then
Kaynak = klasor.self.Path
If InStr(1, Kaynak, "{") > 0 Then GoTo atla
Dim fL As Object
Set fL = CreateObject("Scripting.FileSystemObject")
i = 0
'On Error Resume Next
For Each Dosya In fL.getfolder(Kaynak).Files
If Left(Dosya.Name, 2) = "~$" Then GoTo atla1
If LCase(fL.GetExtensionName(Dosya)) = "doc" Or LCase(fL.GetExtensionName(Dosya)) = "docx" Then
i = i + 1
If i = 1 Then
Set wrdApp = CreateObject("Word.Application")
Set wrdDoc = wrdApp.Documents.Add
wrdApp.Visible = True
End If
yer = Dosya
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set docWord = objWord.Documents.Open(Filename:=yer, ReadOnly:=False)
objWord.ActiveDocument.Range.Copy
wrdApp.Selection.Paste
say3 = wrdDoc.Range.Paragraphs.Count
wrdDoc.Paragraphs(say3).Range.Select
For k = 1 To 30
If i + 1 = wrdDoc.Range.Information(1) Then GoTo atla2
wrdApp.Selection.TypeParagraph
Next k
atla2:
docWord.Close
objWord.Quit SaveChanges:=wdSaveChanges
Set objWord = Nothing
Set docWord = Nothing
End If
atla1:
Next
say = wrdDoc.Range.Paragraphs.Count
If Len(wrdDoc.Paragraphs(say).Range) <= 1 Then
wrdDoc.Paragraphs(say).Range.Delete
End If
Application.DisplayAlerts = False
sat1 = CreateObject("Scripting.FileSystemObject").getfolder(ThisWorkbook.Path).Files.Count + 1
dosya_adi = ThisWorkbook.Path & "\word dosya" & " " & sat1 & ".doc"
wrdApp.ActiveDocument.SaveAs dosya_adi
wrdDoc.Close
wrdApp.Quit SaveChanges:=wdSaveChanges
Set klasor = Nothing
MsgBox "işlem tamam"
Else
atla:
MsgBox "Lütfen Kaynak Klasör Seçimini Yapınız !", vbInformation, "DİKKAT"
End If
End Sub