Thema Datum  Von Nutzer Rating
Antwort
Rot Grundlegende Syntax - IF-Verzweigung?
18.02.2015 09:26:35 Moep
NotSolved
18.02.2015 09:36:12 Moep
NotSolved

Ansicht des Beitrags:
Von:
Moep
Datum:
18.02.2015 09:26:35
Views:
951
Rating: Antwort:
  Ja
Thema:
Grundlegende Syntax - IF-Verzweigung?

Hallo liebes Forum,

ich bin ein kompletter Neuling in VBA, vorweggesagt.

Ich arbeite an einem Worddokument, bei dem beim Öffnen ein Formular angezeigt wird, dessen Eingaben anschließend in Bookmarks übernommen werden. Soweit klappt es auch, allerdings nur solange ich keine IF-Verzweigungen verwende. Dann bekomme ich, beim Ausführen den Fehler: "Fehler beim Abschicken - Methode oder Datenobjekt nicht gefunden

Im Code-Editor wird die Methode hervorgehoben, welche die IF-Verzweigung enthält. Sobald ich die Verzweigung auskommentiere, läuft alles wunderbar, daher schließe ich darauf, dass sie der Verursacher des Fehlers ist. Allerdings weiß ich nicht, was ich falsch mache, daher brauche ich eure Hilfe.

Es folgt mein Code. abschicken_Click() wird immer aufgerufen, wenn der Benutzer das Formular abschickt. In diesem Formular habe ich eine Checkbox, mit der man steuern kann, ob die Umsatzsteuer verrechnet werden soll, oder nicht (hier ist auch die IF-Verzweigung).

Private Sub abschicken_Click()

UpdateBookmark "sa_vorname", Me.sa_vorname.Value
UpdateBookmark "sa_nachname", Me.sa_nachname.Value
UpdateBookmark "sa_vorname2", Me.sa_vorname.Value
UpdateBookmark "sa_nachname2", Me.sa_nachname.Value
UpdateBookmark "sa_telefon", Me.sa_telefon.Value
UpdateBookmark "sa_email", Me.sa_email.Value

UpdateBookmark "kde_geehrter", Me.kde_geehrter.Value
UpdateBookmark "kde_anrede", Me.kde_anrede.Value
UpdateBookmark "kde_vorname", Me.kde_vorname.Value
UpdateBookmark "kde_nachname", Me.kde_nachname.Value
UpdateBookmark "kde_nachname2", Me.kde_nachname.Value
UpdateBookmark "kde_firma", Me.kde_firma.Value
UpdateBookmark "kde_strasse", Me.kde_strasse.Value
UpdateBookmark "kde_ort", Me.kde_ort.Value

UpdateBookmark "nr", Me.nr.Value
UpdateBookmark "nr2", Me.nr.Value
UpdateBookmark "datum", Me.datum.Value
UpdateBookmark "preis", Round(Me.preis.Value, 2)

    If Me.check_ust.Value = "Wahr" Then
       UpdateBookmark "ust", Me.ust.Value
       UpdateBookmark "gesamtbetrag", Round(Me.preis.Value + Me.ust.Value, 2)
    Else
       UpdateBookmark "ust", "0,00"
       UpdateBookmarks "gesamtbetrag", Me.preis.Value
    End If


UpdateBookmark "projektname", Me.projektname.Value
UpdateBookmark "projektname2", Me.projektname.Value

Me.Repaint
formular.Hide

End Sub

Sub UpdateBookmark(BookmarkToUpdate As String, TextToUse As String)
    Dim BMRange As Range
    Set BMRange = ActiveDocument.Bookmarks(BookmarkToUpdate).Range
    BMRange.Text = TextToUse
    ActiveDocument.Bookmarks.Add BookmarkToUpdate, BMRange
End Sub

 

 

Ein weiterer Code-Snippet enthält ebenfalls eine Verzweigung und verursacht den gleichen Fehler:

Private Sub Document_Open()

formular.sa_vorname.Text = ActiveDocument.Bookmarks("sa_vorname").Range.Text
formular.sa_nachname.Text = ActiveDocument.Bookmarks("sa_nachname").Range.Text
formular.sa_telefon.Text = ActiveDocument.Bookmarks("sa_telefon").Range.Text
formular.sa_email.Text = ActiveDocument.Bookmarks("sa_email").Range.Text

formular.kde_geehrter.Text = ActiveDocument.Bookmarks("kde_geehrter").Range.Text
formular.kde_anrede.Text = ActiveDocument.Bookmarks("kde_anrede").Range.Text
formular.kde_vorname.Text = ActiveDocument.Bookmarks("kde_vorname").Range.Text
formular.kde_nachname.Text = ActiveDocument.Bookmarks("kde_nachname").Range.Text
formular.kde_firma.Text = ActiveDocument.Bookmarks("kde_firma").Range.Text
formular.kde_strasse.Text = ActiveDocument.Bookmarks("kde_strasse").Range.Text
formular.kde_ort.Text = ActiveDocument.Bookmarks("kde_ort").Range.Text

formular.nr.Text = ActiveDocument.Bookmarks("nr").Range.Text
formular.datum.Text = ActiveDocument.Bookmarks("datum").Range.Text
formular.preis.Text = ActiveDocument.Bookmarks("preis").Range.Text

    If ActiveDocument.Bookmarks("ust").Range.Text = "0,00" Then
        formular.check_ust.Value = False
    Else
        formular.check_ust.Value = True
        formular.ust.Text = ActiveDocument.Bookmarks("ust").Range.Text
    End If


formular.projektname.Text = ActiveDocument.Bookmarks("projektname").Range.Text

formular.Show

End Sub

 

Ich würde mich freuen, wenn ihr mir sagen könnt, was ich bei den Verzweigungen falsch mache.

Anforderungen an die Formularsicherheit, d.h. den Schutz vor Falscheingaben, etc. bitte erst einmal außen vor lassen. Darum kümmere ich mich, wenn hier alles läuft ;)

Vielen Dank!


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 Grundlegende Syntax - IF-Verzweigung?
18.02.2015 09:26:35 Moep
NotSolved
18.02.2015 09:36:12 Moep
NotSolved