Thema Datum  Von Nutzer Rating
Antwort
28.03.2017 08:36:12 Christoph
NotSolved
28.03.2017 13:51:09 BigBen
NotSolved
28.03.2017 13:56:11 Christoph
NotSolved
Blau Word VBA 2003 zu 2013 konvertieren
28.03.2017 22:43:24 BigBen
Solved

Ansicht des Beitrags:
Von:
BigBen
Datum:
28.03.2017 22:43:24
Views:
592
Rating: Antwort:
 Nein
Thema:
Word VBA 2003 zu 2013 konvertieren

Hallo,

eventuell kann dieser VBA-Code hilfreich sein?

Sub Test()
    Dim aufvm As String
    Dim wert As Integer
    Dim rng As Range
    With ActiveDocument
        ChangeFormfield "AUFVMABETRAG", False
        If FormfieldsExists("AUFVMABETRAG") Then
            aufvm = .FormFields("AUFVMABETRAG").Result
            If aufvm <> "" And Not aufvm = "0,00" Then
                ChangeFormfield "AUFVMABETRAGT", False
                With .FormFields("AUFVMABETRAGT")
                    .Result = "hier kommt Text rein"
                    .Range.Font.Hidden = False
                End With
                wert = 1
            Else
                ChangeFormfield "AUFVMABETRAG", True
                ChangeFormfield "AUFVMABETRAGT", True
            End If
        Else
            MsgBox "Das Formularfeld AUFVMABETRAG ist im Dokument nicht vorhanden!", vbInformation
        End If
    End With
End Sub

Sub ChangeFormfield(FieldName As String, ActionDelete As Boolean)
    Dim lStart As Long
    Dim bk As Bookmark, Fld As FormField
    With ActiveDocument
        If ActionDelete = True Then
            ' Formfield löschen
            lStart = .FormFields(FieldName).Range.Start
            .FormFields(FieldName).Delete
            .Bookmarks.Add FieldName, .Range(lStart, lStart)
        Else
            ' Framfield anlegen
            Set bk = GetBookmark(FieldName)
            If Not bk Is Nothing Then
                lStart = bk.Start
                bk.Delete
                Set Fld = .FormFields.Add(.Range(lStart, lStart), wdFieldFormTextInput)
                Fld.Name = FieldName
            Else
                Debug.Print "Die Textmarke " & FieldName & " ist nicht vorhanden!"
            End If
        End If
    End With
End Sub

Function FormfieldsExists(FieldName As String) As Boolean
    Dim iFld As Integer
    With ActiveDocument
        For iFld = 1 To .FormFields.Count
            If .FormFields(iFld).Name = FieldName Then
                FormfieldsExists = True
                Exit Function
            End If
        Next
    End With
End Function

Function GetBookmark(BkName As String) As Bookmark
    Dim iCnt As Integer
    With ActiveDocument
        For iCnt = 1 To .Bookmarks.Count
            If .Bookmarks(iCnt).Name = BkName Then
                Set GetBookmark = .Bookmarks(iCnt)
                Exit Function
            End If
        Next
    End With
End Function

Erläuterung:

Dieser Code löscht bei Bedarf ein Formfield und setzt an der Stelle eine Textmarke. Anhand dieser Textmarke kann bei Bedarf wieder ein Formfield erstellt werden.

LG, BigBen


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
28.03.2017 08:36:12 Christoph
NotSolved
28.03.2017 13:51:09 BigBen
NotSolved
28.03.2017 13:56:11 Christoph
NotSolved
Blau Word VBA 2003 zu 2013 konvertieren
28.03.2017 22:43:24 BigBen
Solved