Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

vba worddatei speichern dann schliessen

Betrifft: vba worddatei speichern dann schliessen von: Livio
Geschrieben am: 10.09.2014 11:12:57

Ich habe ein Problem mit meiner Makro-Exceldatei.
Durch Klick auf Generate in der Exceldatei soll die Word-Datei geöffnet werden und die DOCPROPERTY-Felder von Word mit Text gefüllt werden. Soweit funktioniert alles.

Wie bringe ich es fertig, dass die Worddatei die Sachen speichert und sich dann wieder schliesst. Unten sind meine Dateien, ich hoffe ihr könnt das ganze gleich in die Datei reincodieren.

https://www.herber.de/bbs/user/92565.zip

Vielen Dank im Voraus

  

Betrifft: AW: vba worddatei speichern dann schliessen von: fcs
Geschrieben am: 10.09.2014 13:03:48

Hallo Livio,

Ein "Generate" hab ich jetzt nicht gefunden.
Ich hatte allerdings Problem unter Word 2010 mit dem Logo/Grafik in der Kopfzeile der Worddatei (irgendwie fehlt plötzlich Arbeitsspeicher).

Nachfolgend das anzupassende Makro zum Speichern und Schließen der WOrddatei und Beenden der Word-Instanz. Die verschobene und die beiden neuen Zeilen hab ich markiert.

Gruß
Franz

Sub cmdInTextfeldschreiben()
    'Variablen definieren
    Dim wdApp As Object
    Dim wdDoc1 As Object
    Dim wdRng As Object
    Dim wdCustProp As Object
    Dim wdDatei1 As String
    Dim wb As Excel.Workbook
    'Dim ws As Excel.Worksheet
    
    'Arbeitsmappe mit diesem Makro
    Set wb = ThisWorkbook
    'Set ws = wb.Worksheets("Sheet1")
    
    'Word als Object starten
    Set wdApp = CreateObject("Word.Application") 'Word als Object starten
    wdApp.Visible = True                      '##### Zeile verschoben ##### 2014-09-10
    'Worddatei festlegen - befindet sich im gleichen Verzeichnis wie diese Excel-AM
    wdDatei1 = wb.Path & "\Worddatei.doc"
    Set wdDoc1 = wdApp.Documents.Open(wdDatei1)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' _
'''''''''''''''''''''''''''''''''''''''''
    With wdDoc1
        On Error Resume Next
           Set wdCustProp = .CustomDocumentProperties("Client")
           If Not (wdCustProp Is Nothing) Then
              .CustomDocumentProperties("Client").Value = [Client].Value
           Else
              MsgBox "Die Word-Property 'Client' existiert nicht!", 64, "zur Information"
           End If
           
           Set wdCustProp = .CustomDocumentProperties("ProjectName")
           If Not (wdCustProp Is Nothing) Then
              .CustomDocumentProperties("ProjectName").Value = [Project_Number].Value
           Else
              MsgBox "Die benutzerdefinierte Word-Property 'ProjectName' existiert nicht!", _
                64, "zur Information"
           End If
           
           Set wdCustProp = .CustomDocumentProperties("Consultant")
           If Not (wdCustProp Is Nothing) Then
              .CustomDocumentProperties("Consultant").Value = [Consultant].Value
           Else
              MsgBox "Die benutzerdefinierte Word-Property 'ProjectName' existiert nicht!", _
                64, "zur Information"
           End If

           Set wdCustProp = .CustomDocumentProperties("OrderNo")
           If Not (wdCustProp Is Nothing) Then
              .CustomDocumentProperties("OrderNo").Value = [Order_Number].Value
           Else
              MsgBox "Die benutzerdefinierte Word-Property 'OrderNo' existiert nicht!", _
                64, "zur Information"
           End If
        'On Error GoTo 0
        .CustomDocumentProperties.Update
        .Save
        
        'alle Felder aktualisieren
        For Each wdRng In .StoryRanges
            wdRng.Fields.Update
            While Not (wdRng.NextStoryRange Is Nothing)
                Set wdRng = wdRng.NextStoryRange
                wdRng.Fields.Update
            Wend
        Next wdRng
        .Close savechanges:=True    '##### Zeile neu ##### 2014-09-10
    End With
    wdApp.Quit                      '##### Zeile neu ##### 2014-09-10
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' _
'''''''''''''''''''''''''''''''''''''''
    Set wdRng = Nothing
    Set wdDoc1 = Nothing
    Set wdCustProp = Nothing
    Set wdApp = Nothing
    'Set ws = Nothing
    Set wb = Nothing
End Sub



  

Betrifft: AW: vba worddatei speichern dann schliessen von: Livio
Geschrieben am: 10.09.2014 15:12:24

Danke es funktioniert alles


 

Beiträge aus den Excel-Beispielen zum Thema "vba worddatei speichern dann schliessen"