Thema Datum  Von Nutzer Rating
Antwort
07.11.2016 11:45:34 Manuel
NotSolved
07.11.2016 22:07:21 Gast2519
NotSolved
08.11.2016 15:39:02 Manuel
NotSolved
08.11.2016 16:16:38 Gast35768
NotSolved
08.11.2016 17:00:36 Gast5412
NotSolved
08.11.2016 19:05:53 Manuel
NotSolved
08.11.2016 19:15:43 Gast14598
NotSolved
08.11.2016 20:04:01 Manuel
NotSolved
09.11.2016 21:47:31 Gast6339
NotSolved
09.11.2016 21:47:31 Gast22040
NotSolved
10.11.2016 07:05:32 Manuel
NotSolved
10.11.2016 09:12:30 Manuel
NotSolved
10.11.2016 11:00:19 Gast3246
NotSolved
10.11.2016 11:42:57 Gast52597
NotSolved
Rot VBA Word: Problem mit select case Abfrage
11.11.2016 17:18:51 Manuel
NotSolved
17.11.2016 17:50:16 Gast88128
NotSolved
18.11.2016 09:04:07 Gast25980
NotSolved

Ansicht des Beitrags:
Von:
Manuel
Datum:
11.11.2016 17:18:51
Views:
633
Rating: Antwort:
  Ja
Thema:
VBA Word: Problem mit select case Abfrage

Also ich habe nochmal auf eigene Faust versucht mein Problem zu lösen. Denke mal das ich mit diesem Ansatz soweit auch richtig liege. Jedoch habe ich immernoch das Problem das wenn die Variable nicht gesetzt wurde, das Dokument einfach abgespeichert und die variable gesetzt wird ohne das die Message Box erscheint, also der Case Select aufgerufen wird der dem Benutzer vermittelt das die Daten aus dem Protokoll noch nicht übertragen wurden und welche Möglichkeiten offen stehen.

Hier nochmal der bisherige Code. Wahrscheinlich übersehe ich etwas ganz simples...

Sub FileSave()
    Dim oDoc As Document
    Dim oVar As Variable
    Dim bVar As Boolean
    Dim lngID As Long
    Dim lngAsk As Long
    Dim weiter2 As Boolean
    Dim vbCancel As Boolean, vbNo As Boolean, vbYes As Boolean, weiter As Boolean
    Set oDoc = ActiveDocument
    If Checkfields = True Then
        If oDoc.Path = "" Then
            FileSaveAs
        End If
        For Each oVar In oDoc.Variables
            If oVar.Name = "varID" Then
                lngAsk = MsgBox("Die Daten dieses Protokolls wurden bereits in die Geräteliste übertragen!" & vbCr & _
                "Wurden Daten im Protokoll geändert, kann der Eintrag in der Geräteliste aktualisiert werden." & vbCr & _
                vbCr & _
                "• Wähle 'Ja' um den vorhandenen Eintrag zu aktualisieren!" & vbCr & _
                "• Wähle 'Nein' um das Dokument ohne Datenübertragung zu speichern!" & vbCr & _
                "• Wähle 'Abbrechen' um den Vorgang zu beenden!", vbYesNoCancel)
                weiter = True
                weiter2 = False
            Else
                If oVar.Name = "" Then
                lngAsk = MsgBox("Die Daten dieses Protokolls wurden noch nicht in die Geräteliste übertragen!" & vbCr & _
                "Es besteht die Möglichkeit dies zu tun oder das Dokument ohne Datenübertragung zu speichern." & vbCr & _
                vbCr & _
                "• Wähle 'Ja' um die Daten in die Geräteliste zu übertragen und das Protokoll zu speichern!" & vbCr & _
                "• Wähle 'Nein' um das Dokument ohne Datenübertragung zu speichern!" & vbCr & _
                "• Wähle 'Abbrechen' um den Vorgang zu beenden!", vbYesNoCancel)
                weiter = True
                weiter2 = True
                Else
                    weiter = False
                    weiter2 = False
                End If
            End If
            If weiter = True And weiter2 = False Then
                Select Case lngAsk
                Case 6 'vbYes
                    MsgBox ("Die Daten werden jetzt überschrieben und das Dokument gespeichert!")
                    lngID = oVar.Value
                    bVar = True
                    Exit For
                Case 7 'vbNo
                    MsgBox ("Das Protokoll wird ohne Datenübertragung gespeichert!")
                    bVar = False
                    Exit For
                Case 2 'vbCancel
                    MsgBox ("Speichervorgang wird abgebrochen!")
                    GoTo lbl_Exit
                Case Else
                    MsgBox "Es ist etwas schief gelaufen!"
                    GoTo lbl_Exit
                End Select
            ElseIf weiter = True And weiter2 = True Then
                Select Case lngAsk
                Case 6 'vbYes
                    MsgBox ("Die Daten werden jetzt in die Geräteliste übertragen und das Protokoll gespeichert!")
                    lngID = oVar.Value
                    bVar = True
                    Exit For
                Case 7 'vbNo
                    MsgBox ("Das Protokoll wird ohne Datenübertragung gespeichert!")
                    bVar = False
                    Exit For
                Case 2 'vbCancel
                    MsgBox ("Speichervorgang wird abgebrochen!")
                    GoTo lbl_Exit
                Case Else
                    MsgBox "Es ist etwas schief gelaufen!"
                    GoTo lbl_Exit
                End Select
            End If
         Next oVar
       If Not bVar Then
            oDoc.Variables("varID").Value = "0"
            oDoc.Save
       Else
            DataTransfer CStr(lngID)
       End If
        If Not oDoc.Saved Then oDoc.Save
    End If
lbl_Exit:
    Exit Sub
End Sub

 

Es wäre schön wenn jemand nochmal drüber schauen könnte und eventuell den Fehler findet. Das Projekt ist beinahe fertig =/

 

Gruß

Manuel


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
07.11.2016 11:45:34 Manuel
NotSolved
07.11.2016 22:07:21 Gast2519
NotSolved
08.11.2016 15:39:02 Manuel
NotSolved
08.11.2016 16:16:38 Gast35768
NotSolved
08.11.2016 17:00:36 Gast5412
NotSolved
08.11.2016 19:05:53 Manuel
NotSolved
08.11.2016 19:15:43 Gast14598
NotSolved
08.11.2016 20:04:01 Manuel
NotSolved
09.11.2016 21:47:31 Gast6339
NotSolved
09.11.2016 21:47:31 Gast22040
NotSolved
10.11.2016 07:05:32 Manuel
NotSolved
10.11.2016 09:12:30 Manuel
NotSolved
10.11.2016 11:00:19 Gast3246
NotSolved
10.11.2016 11:42:57 Gast52597
NotSolved
Rot VBA Word: Problem mit select case Abfrage
11.11.2016 17:18:51 Manuel
NotSolved
17.11.2016 17:50:16 Gast88128
NotSolved
18.11.2016 09:04:07 Gast25980
NotSolved