Macro knop opslaan als met bestandsnaam eerste regel.

Status
Niet open voor verdere reacties.

jpotter

Nieuwe gebruiker
Lid geworden
19 jul 2013
Berichten
4
Hallo,

Ik ben bezig om een brief te maken waarin een knop komt die de brief opslaat als pdf in een bepaalde map:

Na zoeken op het forum heb ik een optie gevonden, maar ik krijg hem niet aan de praat.
Ik heb weinig ervaring dus kan iemand kijken wat hier fout aan is:

Code:
Sub Jack()
'
' Jack Macro
'
'
Dim letter As Integer, Counter As Integer
Dim DocName As String, sRange As String
Dim Pad As String, sNullen As String
Dim aRange As Range

Letters = ActiveDocument.Sections.Count
For Counter = 1 To Len(Letters)
    sNullen = sNullen & "0"
Next Counter
sNullen = sNullen & "0"

Selection.HomeKey Unit:=wdStory
Counter = 1
While Counter < Letters
    DocName = Right(sNullen & LTrim$(Str$(Counter)), Len(Letters) + 1) & "_"
    ActiveDocument.Sections.First.Range.Cut
    Documents.Add
    Selection.Paste
    Set aRange = ActiveDocument.Paragraphs(1).Range
    DocName = DocName & aRange.Text
    If Right(DocName, 1) = Chr(13) Or Right(DocName, 1) = Chr(10) Then
        DocName = Left(DocName, Len(DocName) - 1)
    End If
    
 ActiveDocument.Sections(2).PageSetup.SectionStart = wdSectionContinuous
    ActiveDocument.SaveAs FileName:="\\Nlfsprdcs00001.services.branches.nl.eu.com\data09\Sdep\0000254587\A&C Banksparen\Bestanden\Werkgroep Gio&Jack\TEST BRIEVEN DAAN\" & DocName & ".doc", _
        FileFormat:=wdFormatDocument, LockComments:=False, _
        Password:="", AddToRecentFiles:=True, WritePassword:="", _
        ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, _
        SaveFormsData:=False, SaveAsAOCELetter:=False
    ActiveWindow.Close
    Counter = Counter + 1
   
Wend

End Sub
 
Laatst bewerkt:
Kun je eens beginnen met je code netjes op te maken met de CODE knop ( # ). Zo is hij heel slecht leesbaar als routine.
 
Het volgende werkt, maar ik neem aan dat het makkelijker kan:

Code:
Sub Jack()
'
' Jack Macro
'
'
    Selection.HomeKey Unit:=wdLine
    Selection.HomeKey Unit:=wdLine
    Selection.HomeKey Unit:=wdStory
    Selection.MoveRight Unit:=wdWord, Count:=3, Extend:=wdExtend
    Selection.Copy
        If Selection.Characters.Count > 1 Then
            sVar = Selection.Text
        End If
    
    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        "C:\Users\PO2858\Desktop\Activatie Test\" & sVar & ".pdf", ExportFormat _
        :=wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
        Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
    ChangeFileOpenDirectory "C:\Users\PO2858\Desktop\Activatie Test\"
End Sub
 
Als je maar 3 woorden uit de eerste regel wilt hebben, dan is dit een prima manier om dit te 'vangen'. Mits je zeker weet dat er altijd 3 woorden in zitten. Anders zou ik het anders doen. De Export as PDF lijkt mij ook een beetje te uitgebreid; ik zou alle opties die niet ter zake doen weglaten. Dan krijg je sowieso de standaardinstellingen mee. En hou je de code leesbaarder.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan