Hallo,
ich habe in Excel Vba eine Anwendung programmiert, die auf Knopfdruck ein Wordformular öffnet und die Daten in das Word überträgt.
Die Programmierung sieht so aus:
Sub FahrkostenBKKoelnnachWord()
Rem variablen vereinbaren
Dim worddatei As Object
Dim testdatei As Object
Rem physische datei zuordnen
Set worddatei = CreateObject(„word.application“)
Set testdatei = worddatei.documents.Add("\s1000fs001\BG_AG\BG_AG_BGSYS\Dateien\fahrtkosten1.dot")
Rem datei öffnen
worddatei.Visible = True
testdatei.Activate
Rem zellinhalte übertragen
testdatei.bookmarks(„Textmarke2“).Range.Text = Range(„a13“)
testdatei.bookmarks(„Textmarke3“).Range.Text = Range(„a14“)
testdatei.bookmarks(„Textmarke4“).Range.Text = Range(„a15“)
testdatei.bookmarks(„Textmarke5“).Range.Text = Range(„b18“)
testdatei.bookmarks(„Textmarke6“).Range.Text = Range(„b21“)
testdatei.bookmarks(„Textmarke7“).Range.Text = Range(„b33“)
testdatei.bookmarks(„Textmarke8“).Range.Text = Range(„b32“)
testdatei.bookmarks(„Textmarke9“).Range.Text = Range(„a13“)
Rem zu übertragenden wert verarbeiten
wert = Str(Round(Range(„b35“), 2))
If InStr(wert, „.“) = 0 Then
wert = wert + „,00 EUR“
Else
If InStr(wert, „.“) = Len(wert) - 1 Then
wert = wert + „0 EUR“
Else
wert = wert + „EUR“
End If
End If
testdatei.bookmarks(„textmarke10“).Range = wert
Rem wert übertragen
wert = Str(Round(Range(„b37“), 2))
If InStr(wert, „.“) = 0 Then
wert = wert + „,00 EUR“
Else
If InStr(wert, „.“) = Len(wert) - 1 Then
wert = wert + „0 EUR“
Else
wert = wert + „EUR“
End If
End If
testdatei.bookmarks(„textmarke11“).Range = wert
Rem wert übertragen
wert = Str(Round(Range(„b38“), 2))
If InStr(wert, „.“) = 0 Then
wert = wert + „,00 EUR“
Else
If InStr(wert, „.“) = Len(wert) - 1 Then
wert = wert + „0 EUR“
Else
wert = wert + „EUR“
End If
End If
testdatei.bookmarks(„textmarke12“).Range = wert
Rem wert übertragen
wert = Str(Round(Range(„b40“), 2))
If InStr(wert, „.“) = 0 Then
wert = wert + „,00 EUR“
Else
If InStr(wert, „.“) = Len(wert) - 1 Then
wert = wert + „0 EUR“
Else
wert = wert + „EUR“
End If
End If
testdatei.bookmarks(„textmarke13“).Range = wert
testdatei.bookmarks(„Textmarke14“).Range.Text = Range(„b23“)
testdatei.bookmarks(„Textmarke15“).Range.Text = Range(„b27“)
testdatei.bookmarks(„Textmarke16“).Range.Text = Range(„b24“)
End Sub
Nach dem Umstieg auf Office 2010 funktioniert diese Übertragung nicht mehr.
Ich habe bereits gegoogelt und gesehen, dass irgendwo eine Verzögerung eingebaut werden soll, aber ich bekomme es nicht hin.
Wie und an welcher Stelle müsste das eingefügt werden?
Vielen lieben Dank
Andreas Scherber