Help! Mailmerge not active

  1. 6 tahun lalu

    Para master semua met pagi, saya membuat mailmerge excel+word dan berhasil, kemudian saya coba memanggil file word tersebut dengan code vba sbb:

    Private Sub CmdMerge_Click()
        
        Dim WordApp As Object
        Dim wrdDoc As Object
        Dim tmpDoc As Object
        Dim WDoc As String
        Dim myDoc As String
         
        myDoc = "TestDoc"
        WDoc = ThisWorkbook.path & "\" & myDoc & ".docx"
         
        On Error Resume Next
        Set WordApp = GetObject(, "Word.Application")
        If WordApp Is Nothing Then
    
            Set WordApp = CreateObject("Word.application")
            Set wrdDoc = WordApp.Documents.Open(WDoc)
            WordApp.Visible = True
        Else
    
            For Each tmpDoc In WordApp.Documents
                If StrComp(tmpDoc.FullName, WDoc, vbTextCompare) = 0 Then
    
                    Set wrdDoc = tmpDoc
                    Exit For
                End If
            Next
            If wrdDoc Is Nothing Then
    
                Set wrdDoc = WordApp.Documents.Open(WDoc)
            End If
        End If
    WordApp.Activate
    End Sub


    file tersebut berhasil dibuka, hanya saja "mailings" di dokumen tidak aktif. Pertanyaannya:

    1. Bisakah mailings aktif ketika ms word dipanggil dan terbuka?
    2. Apakah code yg saya masukkan tersebut kurang sehingga mailings tidak aktif?

    thanks

  2. Caton

    28 Jan 2018 Terverifikasi Indonesia + 20.101 Poin

    ... Bisakah mailings aktif ketika ms word dipanggil dan terbuka? ...

    Sepertinya bisa... (^_^)/ Saya sih belum mencoba... :D

    ... Apakah code yg saya masukkan tersebut kurang sehingga mailings tidak aktif? ...

    Sepertinya iya. Script di atas baru sampai tahap membuka dokumen Word, namun belum ada referensi ke objek MailMerge. Objek MailMerge merupakan member dari objek Document. Kalau dihubungkan dengan script mas @Vei-Rid di atas, objek MailMerge merupakan member dari objek wrdDoc, sehingga bisa dipanggil dengan script wrdDoc.MailMerge. Bisa dilihat contoh scriptnya di sini ...

  3. @Caton thanks cluenya, saya pelajari dulu, saya coba ini itu malah error terus.
    btw untuk memanggil folder (membuka folder tertentu) punya conto scriptnya ngga mas? hehe...

  4. Caton

    28 Jan 2018 Terverifikasi Indonesia + 20.101 Poin

    ... btw untuk memanggil folder (membuka folder tertentu) punya conto scriptnya ngga mas ...

    Kalau hanya ingin menampilkan Folder Browser, sepertinya script pada diskusi Cara Menampilkan Gambar bisa digunakan.... :)

  5. Oh iya mas hahaha... lupa saya... saking pengen bisa ini itu hahaha... thanks :D

  6. Caton

    28 Jan 2018 Terverifikasi Indonesia + 20.101 Poin

    Atau, bisa juga dengan menggunakan script ini (lebih sederhana):

    Sub SelectFolder()
        Dim sFolder As String
    
        With Application.FileDialog(msoFileDialogFolderPicker)
            .Title = "Select a Folder"
            .ButtonName = "Select"
            .InitialFileName = ThisWorkbook.Path & "\"
    
            If .Show = -1 Then sFolder = .SelectedItems(1)
        End With
        
        If sFolder <> vbNullString Then
            '+--- Folder dipilih, susun proses selanjutnya.
        End If
    End Sub

    Demikian... ;)

  7. yeeeeee.... :D bang @caton memang mantaffff.... thanks hehehe...

  8. Di sunting 6 tahun lalu oleh Vei-Rid

    Btw

    Bisa dilihat contoh scriptnya di sini ...

    saya coba pake tanem ini:
    MailMergeObject.OpenDataSource Name:="C:\MyDB.mdb", SQLStatement:="SELECT * FROM [MyTable]", _ SubType:=wdMergeSubTypeWord2000
    masih belum bisa, tp file tetep terbuka... hmmm... lumayan hehehe (puciiing) :D

  9. Di sunting 6 tahun lalu oleh Vei-Rid

    untuk yang folder berhasil bang, tp pengen tau dong maksud dari:

    ...
            .Title = "Select a Folder"
            .ButtonName = "Select"
    ...


    soalnya ketika di select jendela menghilang. :D
    dan kenapa ketika folder dibuka filenya tidak tampil, apa harus didaftarkan juga???

  10. Caton

    28 Jan 2018 Terverifikasi Indonesia + 20.101 Poin
    Di sunting 6 tahun lalu oleh Caton

    ...masih belum bisa, tp file tetep terbuka...

    Saya tidak tahu masalahnya dimana. Mungkin sebagai langkah awal, siapkan dahulu dokumen Word yang sudah diatur Mail Merge-nya (termasuk link ke sumber datanya yang berupa file Excel). Lalu coba dibuka:

    ...
    sFile = "C:\Test\data.xlsx"
    With wrdDoc.MailMerge
        .OpenDataSource Name:= sFile, _
            ConfirmConversions:=False, _
            ReadOnly:=False, _
            LinkToSource:=True, _
            AddToRecentFiles:=False, _
            Revert:=False, _
            Format:=wdOpenFormatAuto, _
            Connection:="Data Source=" & sFile & ";Mode=Read", _
            SQLStatement:="SELECT * FROM `Sheet1$`"
    
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=False
    End With
    ...

    ... untuk yang folder berhasil bang, tp pengen tau dong maksud dari ...

    .Title = "Select a Folder"

    untuk mengatur judul jendela dialog,

    .ButtonName = "Select"

    untuk mengubah nama tombol default pada dialog tersebut (defaulnya adalah Open) menjadi Select.

    Demikian... ;)

  11. Di sunting 6 tahun lalu oleh Vei-Rid

    Mungkin sebagai langkah awal, siapkan dahulu dokumen Word yang sudah diatur Mail Merge-nya (termasuk link ke sumber datanya yang berupa file Excel).

    sudah ada bang, saya pake file yg kemaren disare di https://belajarexcel.org/1194-help-edit-data-di-dua-sheet
    saya coba ya

    ... untuk yang folder berhasil bang, tp pengen tau dong maksud dari ...

    .Title = "Select a Folder"
    untuk mengatur judul jendela dialog,

    .ButtonName = "Select"
    untuk mengubah nama tombol default pada dialog tersebut (defaulnya adalah Open) menjadi Select.

    iya bang, barusan buka buka lagi saya baru ngeh... :D
    tapi ko filenya tidak tampil ya bang...
    apa harus didftarkan dulu? kebetulan datanya ".docx"

  12. Caton

    29 Jan 2018 Terverifikasi Indonesia + 20.101 Poin
    Di sunting 6 tahun lalu oleh Caton

    ... tapi ko filenya tidak tampil ya bang ...

    Khan scriptnya hanya untuk memilih folder saja, makanya tidak ada daftar file yang ditampilkan. Kalau maunya adalah untuk memilih nama file (bukan hanya nama foldernya saja), maka scriptnya harus diubah menjadi:

    Sub SelectFile()
        Dim sFile As String
    
        With Application.FileDialog(msoFileDialogOpen)
            .InitialFileName = ThisWorkbook.Path & "\"
            .Title = "Pilih file data..."
    
            If .Show Then sFile = .SelectedItems(1)
        End With
        
        If sFile <> vbNullString Then
            '+--- File dipilih, susun proses selanjutnya.
        End If
    End Sub

    Script di atas untuk menampilkan seluruh file yang didukung (bisa dibuka) oleh Excel. Klo mau tipe filenya lebih bebas, scriptnya:

    Sub SelectFile()
        Dim sFile As String
    
        With Application.FileDialog(msoFileDialogFilePicker)
            .Filters.Add "All file", "*.*"
            .Filters.Add "Text files", "*.txt; *.csv"
            .Filters.Add "Excel files", "*.xls*"
            .InitialFileName = ThisWorkbook.Path & "\"
            .Title = "Pilih file data..."
    
            If .Show Then
                sFile = .SelectedItems(1)
                If sFile <> vbNullString Then
                    '+--- File dipilih, susun proses selanjutnya.
                End If
        End With
    End Sub

    Demikian... ;)

  13. kereeeen... :D :D :D...
    Jadi untuk bisa meload file yg di "OK" kita masukkan kodenya disini ya bang...

                If sFile <> vbNullString Then
                    '+--- File dipilih, susun proses selanjutnya.
                End If

  14. Alhamdulillah problem solved.
    1. Mailmerge

    file tersebut berhasil dibuka, hanya saja "mailings" di dokumen tidak aktif

    Solusinya saya pake ini:

        ActiveWorkbook.FollowHyperlink Address:=WDoc, NewWindow:=True

    2. Open Folder files

    Jadi untuk bisa meload file yg di "OK" kita masukkan kodenya disini ya bang...

    Solusinya saya pake ini:

    WordObj.documents.Open (strPath)


    Mudah-mudahan bisa bermanfaat bagi yang lainnya :)

    Thanks untuk para master spesial @Caton

 

atau Mendaftar untuk ikut berdiskusi!