Thema Datum  Von Nutzer Rating
Antwort
Rot Veraltete Daten bei Ausgabe in Word
09.09.2016 17:50:18 Gast72660
NotSolved

Ansicht des Beitrags:
Von:
Gast72660
Datum:
09.09.2016 17:50:18
Views:
1445
Rating: Antwort:
  Ja
Thema:
Veraltete Daten bei Ausgabe in Word

In meinem Programm wird der Inhalt von Textboxen in Variablen gegeben und am Ende ein Worddokument (Bzw. PDF) erzeugt, in dem "Lücken" mit den Variablen gefüllt werden. Die Variablen werden alle richtig gefüllt, das kann ich aus der Exceltabelle auslesen, jedoch befinden sich im PDF am Ende veraltete Inhalte wieder, d.h. variablenwerte, die ich quasi 10 Testläufe früher mal eingegeben habe. 

Das hier ist der Teil, bei dem mit Word interagiert wird:

Private Sub button_exit_Click()
'klick auf exit-button
    
    Dim LastRow As Long, ws As Worksheet
    
    Set ws = Sheets("Tabelle1")

    LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row + 1 'Finds the last blank row

    ws.Range("A" & LastRow).Value = mandant 'Adds the TextBox3 into Col A & Last Blank Row
    ws.Range("A" & LastRow).Offset(0, 1).Value = projekttyp   'überträgt die variable in nächste Spalte zur rechten.
    ws.Range("A" & LastRow).Offset(0, 2).Value = datum
    ws.Range("A" & LastRow).Offset(0, 3).Value = datum_ende
    ws.Range("A" & LastRow).Offset(0, 4).Value = mandant_ort
    ws.Range("A" & LastRow).Offset(0, 5).Value = team
    ws.Range("A" & LastRow).Offset(0, 7).Value = eingesparteskapital
    ws.Range("A" & LastRow).Offset(0, 8).Value = vermiedenekosten
    ws.Range("A" & LastRow).Offset(0, 9).Value = subventionen
    ws.Range("A" & LastRow).Offset(0, 10).Value = marktanteil
    ws.Range("A" & LastRow).Offset(0, 11).Value = investitioninfra
    
    UserForm2.Show
    
    ' beste sache: Hiermit kann man alle eingaben auch in einer Word-datei speichern / als PDF exportieren
    ' ##########################################################
    ' Noch entwickeln:
    ' - Abfrage, ob Ordner für Mandanten bereits existiert
    
    ' ##########################################################
    
    ' Startet Word versteckt
    Dim wrdApp As Word.Application
    Dim wrdDoc As Word.Document
    Dim i As Integer
    Set wrdApp = CreateObject("Word.Application")
    wrdApp.Visible = False
    Set wrdDoc = wrdApp.Documents.Add

    ' Erstellt den Inhalt des Dokumentes aus den eingegebenen Informationen
    With wrdDoc
        .Content.Font.NameAscii = "Century Gothic"
        .Content.Font.Size = 10
        .Content.Font.Bold = True
        .Content.Font.TextColor = RGB(0, 70, 70)

        .Content.InsertAfter ("Vom " & datum & " bis zum " & datum_ende & " haben Wir eine " & projekttyp & " mit " & mandant & " durchgeführt.")
        .Content.InsertParagraphAfter
        .Content.InsertAfter ("Dies ist ein Test der UserForm, mit der ein Bericht exportiert werden kann. Es folgen Werte, die über die Eingabemaske in das Excelsheet aufgenommen wurden.")
        .Content.InsertParagraphAfter
        .Content.InsertParagraphAfter
        .Content.InsertAfter ("Eingespartes Kapital:" & vbTab & eingesparteskapital)
        .Content.InsertParagraphAfter
        .Content.InsertParagraphAfter
        .Content.InsertAfter ("Vermiedene Kosten:" & vbTab & vermiedenekosten)
        .Content.InsertParagraphAfter
        .Content.InsertParagraphAfter
        .Content.InsertAfter ("Subventionen:" & vbTab & subventionen)
        .Content.InsertParagraphAfter
        .Content.InsertParagraphAfter
        .Content.InsertAfter ("Erhöhung des Marktanteils:" & vbTab & marktanteil)
        .Content.InsertParagraphAfter
        .Content.InsertParagraphAfter
        .Content.InsertAfter ("Investitionen in örtliche Infrastruktur:" & vbTab & investitioninfra)
        

        ' Speichert das Dokument im Word-Format ab
        ' .SaveAs ThisWorkbook.Path & "/" & UMLAUT(mandant)
    End With

    ' Erstellt einen Ordner mit dem Namen des Mandanten (Hier muss noch geprüft werden, ob der Ordner bereits existiert
    MkDir ThisWorkbook.Path & "/" & mandant

    ' Exportiert den Text als PDF und speichert es in den Mandantenordner
    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
    ThisWorkbook.Path & "/" & mandant & "/" & Umlaut(projekttyp) & "_" & datumtag & datummonat & datumjahr & ".pdf", ExportFormat:= _
    wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
    wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
    Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
    CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
    BitmapMissingFonts:=True, UseISO19005_1:=False

    ' schaltet Word wieder sichtbar und beendet es gleichzeitig
    wrdApp.Visible = True
    wrdApp.Quit False

Das PDF gibt aber momentan immer nur aus: "Am 01.01.2017 haben Wir eine Energieffizienzanalyse mit Samsung durchgeführt." - Das sind a) die falschen Variablen und b) sind die neuhinzugefügten Teile (Absätze, neue Textbausteine) garnicht enthalten. Bis zum Hinzufügen der neuen Paragraphen funktionierte alles, nur jetzt scheint er die Variablen nicht mehr richtig zu übernehmen.

Entschuldigung für den wüsten Code, ich bringe mir das gerade noch selbst bei.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Veraltete Daten bei Ausgabe in Word
09.09.2016 17:50:18 Gast72660
NotSolved