1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

VBA Code falsch?

Discussion in 'Office-Programme' started by Phip555, Nov 9, 2007.

Thread Status:
Not open for further replies.
  1. Phip555

    Phip555 Byte

    Hallo,
    ich habe folgenden VBA Code erzeugt, um in meinem Formular die Enter Taste zu unterdrücken, bzw. um zu verhindern, das bei drücken der Entertaste das Formular verrutscht.
    Allerdings bekomme ich dann die Fehlermeldung: Laufzeitfehler '5941' Das angeforderte Element ist nicht in der Sammlung vorhanden.

    Hier der Code:

    Sub AutoNew()
    If ActiveDocument.Type = wdTypeTemplate Then Exit Sub
    InstallFunction
    ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
    Templates(ActiveDocument.AttachedTemplate.FullName).Save
    End Sub

    Sub AutoOpen()
    InstallFunction
    End Sub

    Sub AutoClose()
    If ActiveDocument.Type = wdTypeTemplate Then Exit Sub
    CustomizationContext = ActiveDocument.AttachedTemplate
    FindKey(KeyCode:=BuildKeyCode(wdKeyReturn)).Disable
    FindKey(KeyCode:=BuildKeyCode(wdKeyShift, wdKeyReturn)).Disable
    Templates(ActiveDocument.AttachedTemplate.FullName).Save
    End Sub

    Private Sub InstallFunction()
    CustomizationContext = ActiveDocument.AttachedTemplate
    KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyReturn), _
    KeyCategory:=wdKeyCategoryMacro, Command:="TabFunction1"
    KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyShift, wdKeyReturn), _
    KeyCategory:=wdKeyCategoryMacro, Command:="TabFunction2"
    End Sub

    Sub TabFunction1()
    TabFunction 13
    End Sub

    Sub TabFunction2()
    TabFunction 11
    End Sub

    Private Sub TabFunction(KeyAscii As Long)
    Dim oDoc As Document
    Set oDoc = ActiveDocument
    If oDoc.ProtectionType > 0 And _
    oDoc.Sections(Selection.Information(2)).ProtectedForForms = True Then
    x = Selection.Bookmarks(1).Name
    If oDoc.FormFields(x).Name <> oDoc.FormFields(oDoc.FormFields.Count).Name Then
    oDoc.FormFields(x).Next.Select
    Else
    oDoc.FormFields(1).Select
    End If
    Else
    Selection.TypeText Text:=Chr(KeyAscii)
    End If
    End Sub

    Die markierte Zeile ist wohl inkorrekt? (x = Selection.Bookmarks(1).Name)

    Kann mir jemand sagen was ich falsch mache!

    Vielen Dank schonmal im vorhinein.

    Gruß, Phip
     
  2. steffen0815

    steffen0815 Guest

    Hallo,
    was willst du damit eigentlich erreichen?
    Code:
    Selection.Bookmarks(1).Name
    liefert den Inhalt der 1. Textmarke im selektierten Bereich
    Scheinbar hat dieser Bereich keine Textmarke.
     
Thread Status:
Not open for further replies.

Share This Page