Avatar billede hcs_fbf Nybegynder
27. februar 2014 - 13:25 Der er 7 kommentarer og
3 løsninger

VBA EXCEL 2010 - Opret seperate PDF dokumenter i WORD skabelon med værdoer fra EXCEL regneark

Jeg sidder i øjeblikket med et problem, hvor jeg skal flette værdier fra et EXCEL regneark ind i en WORD skabelon, og for hver række i regnearket skal jeg gemme det dannede dokument som som en PDF fil med navn fra en kolonne i regnearket.

Jeg har lavet følgende kode:

Sub Makro1()
'
' Makro1 Makro
'
' Genvejstast:Ctrl+m
'
    Dim Wdapp As Object
   
    On Error Resume Next
    Set Wdapp = GetObject(, "Word.Application")
    If Err.Number <> 0 Then
        Set Wdapp = CreateObject("Word.Application")
    End If
   
    Cells(1, 2).Select
    liste = Selection.Text
    lengde = Len(liste)
    For i = lengde To 2 Step -1
        If Mid(liste, i, 1) = "\" Then
            ldir = Left(liste, i - 1)
            lark = Right(liste, lengde - i)
            i = 1
        End If
    Next
    ChDir ldir
    Workbooks.Open Filename:=liste
    Cells(2, 1).Select
    srk = ActiveCell.SpecialCells(xlCellTypeLastCell).Row
   
    For w = 2 To srk
        Cells(w, 1).Select
        a = Selection.Text
        Cells(w, 2).Select
        b = Selection.Text
        Cells(w, 3).Select
        c = Selection.Text
        Cells(w, 4).Select
        d = Selection.Text
        Cells(w, 5).Select
        e = Selection.Text
        Cells(w, 6).Select
        f = Selection.Text
        Cells(w, 7).Select
        g = Selection.Text
        Cells(w, 8).Select
        h = Selection.Text
        Cells(w, 9).Select
        i = Selection.Text
        Cells(w, 10).Select
        j = Selection.Text
       
        Wdapp.Documents.Add "K:\Afd\SALG\HCS\TEST.dotx"
        Wdapp.Visible = True
        Wdapp.ActiveDocument.Bookmarks("A").Select
        Wdapp.Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Wdapp.Selection.TypeText Text:=a
       
        Wdapp.ActiveDocument.Bookmarks("B").Select
        Wdapp.Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Wdapp.Selection.TypeText Text:=b
       
        Wdapp.ActiveDocument.Bookmarks("C").Select
        Wdapp.Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Wdapp.Selection.TypeText Text:=c
       
        Wdapp.ActiveDocument.Bookmarks("D").Select
        Wdapp.Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Wdapp.Selection.TypeText Text:=d
       
        Wdapp.ActiveDocument.Bookmarks("E").Select
        Wdapp.Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Wdapp.Selection.TypeText Text:=e
       
        Wdapp.ActiveDocument.Bookmarks("F").Select
        Wdapp.Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Wdapp.Selection.TypeText Text:=f
       
        Wdapp.ActiveDocument.Bookmarks("G").Select
        Wdapp.Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Wdapp.Selection.TypeText Text:=g
       
        Wdapp.ActiveDocument.Bookmarks("H").Select
        Wdapp.Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Wdapp.Selection.TypeText Text:=h
       
        Wdapp.ActiveDocument.Bookmarks("I").Select
        Wdapp.Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Wdapp.Selection.TypeText Text:=i
       
        Wdapp.ActiveDocument.Bookmarks("J").Select
        Wdapp.Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Wdapp.Selection.TypeText Text:=j
       
        doknavn = ldir & "\" & a & ".pdf"
        Wdapp.ChangeFileOpenDirectory ldir
        Wdapp.ActiveDocument.ExportAsFixedFormat OutputFileName:= _
            doknavn, ExportFormat:=wdExportFormatPDF, _
            OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
            wdExportAllDocument, Item:=wdExportDocumentContent, _
            IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
            wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _
            True, UseISO19005_1:=False
        Wdapp.ChangeFileOpenDirectory ldir
        Wdapp.ActiveWindow.Close
    Next
    Wdapp.Quit
    Set Wdapp = Nothing

    MsgBox "Fletningen er færdig." & vbCrLf & srk - 1 & " dokumneter er blevet dannet", _
        vbOKOnly + vbInformation
End Sub

Selve åbningen af WORD skabelonen og indsættelse af værdierne de rigtige steder går godt. Men når så skal gemme dokumentet som en PDF fil, så spinger den dette step over uden at der kommer nogen form for fejlmeddelelse eller anden indikation af, at VBA ikke forstår statementet, som jeg i øvrigt har fået til at fungere i en WORD makro.

Jeg kører på Windows XP med Office 2010.
Avatar billede supertekst Ekspert
27. februar 2014 - 13:36 #1
Kunne det tænkes at filerne gemmes et andet sted end forventet?
Avatar billede hcs_fbf Nybegynder
27. februar 2014 - 13:50 #2
Jeg ved ikke helt, hvor det skulle være. Jeg skifter til den mappe, hvor jeg gerne vil have resultatet liggende (står i variablen ldir) samt at mappenavnet indgår også i dokumentnavnet doknavn.
Avatar billede supertekst Ekspert
27. februar 2014 - 13:58 #3
Jeg har ikke prøvet koden (endnu) - men hvis du prøvede at søge  (søgefunktionen under Start-knappen)på et af pdf-filnavene så kunne det jo være der dukkede noget op.
Avatar billede hcs_fbf Nybegynder
27. februar 2014 - 14:05 #4
Problemet er, at den ikke danner nogen PDF fil, så jeg kan ikke gå ind i den.

Jeg tror, du bedre kan se, hvad der sker, hvis du kører koden. Skal jeg sende dig min WORD skabelon og EXCEL ark med mine oplysninger?
Avatar billede supertekst Ekspert
27. februar 2014 - 14:24 #5
Ok - du fik altså ikke noget ud af søgningen?

Du er velkommen til at sende filerne. @-adresse under min profil.

PS: Anvend venligst Kommentar og ikke Svar når du melder tilbage.
Svar er fra forslagsstillerne når der er en løsning. Hvis et Svar er Ok så kan dette Accepteres af den der stiller spørgsmålet og dermed "betale" med points.

og så velkommen til Eksperten..
Avatar billede hcs_fbf Nybegynder
28. februar 2014 - 09:52 #6
Hej Peter!

Mange tak for din løsning, de sendte mig på mailen. Det var den manglende reference til Microsoft Office 14.0 Object Library, der var skyld i mit problem. Efter den blev sat aktiv, så ser det ud til at problemet er løst.
Avatar billede supertekst Ekspert
28. februar 2014 - 10:00 #7
Fint - så lægger jeg et svar, som du kan acceptere - se #5 :-)
Avatar billede supertekst Ekspert
28. februar 2014 - 11:04 #8
Du skulle have Afvist dine egne Svar - men fred være med det - nu deler vi point.
Avatar billede hcs_fbf Nybegynder
28. februar 2014 - 11:08 #9
Ja, det er jo første gang, jeg bruger dette system. Så jeg skal lige lære det at kende. Men det ser jo ud til at være en effektiv vej til at få løst sine problemer i WORD og EXCEL.

God week-end.
Avatar billede supertekst Ekspert
28. februar 2014 - 11:18 #10
Du er ikke den første - så det skal nok komme.
Ja - store som små problemer
I lige måde..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester