Thema Datum  Von Nutzer Rating
Antwort
Rot Fehler in VBA-Projekt für Word
19.03.2019 12:47:06 VBA_Noob1
NotSolved
19.03.2019 12:50:40 Gast66790
NotSolved

Ansicht des Beitrags:
Von:
VBA_Noob1
Datum:
19.03.2019 12:47:06
Views:
822
Rating: Antwort:
  Ja
Thema:
Fehler in VBA-Projekt für Word

Guten Tag liebe Forum User

 

Ich bin absoluter VBA-Neuling und habe selbst einige Word-Makros auf Basis von VBA erstellt, um  standardisierte Word-Dateien auf Basis einer Abfrage (UserForm) und Schnellbausteinen in Word zu ermöglichen.

 

Details des VBA-Codes:

Beim Start einer Word-Datei wird automatisch UserForm2 gestartet, bei welcher der User entscheidet, ob er einen Entwurf erstellen möchte oder nicht. Falls ja, folgt UserForm1 bei welcher der User mittels Selektion wird die entsprechende Produktvariante gewählt („Produktvariante 1, Produktvariante 2, usw.) und entsprechend werden die richtigen Word-Schnellbausteine in das Dokument geladen. Die Schnellbausteine werden zusätzlich über weitere Abfragen definitiv geladen oder nicht:

 

Beispiel:

Frage: „Möchten Sie eine Bestell-Tabelle im Dokument abbilden?“

Antwort: „Ja“

Ergebnis: Schnellbaustein „Bestell-Tabelle“ wird in die Vorlage geladen

 

[b]Fehler:[/b]

Leider bekomme ich immer dann eine Fehlermeldung, wenn das Skript durchgelaufen ist und ich Word schliesse und anschliessend wieder öffne. Die Dokumentenwiederherstellung wird angezeigt, als wäre Word unsachgemäss beendet worden. Ich erkenne aber keinen Fehler. Ich schätze aber, es könnte an dem Befehl liegen:

 

[code]ActiveDocument.Save[/code]

 

 

Kann mir jemand helfen, das Problem zu lösen? Das wäre super, vielen Dank!

 

 

[b]Erläuterung Quellcode:[/b]

Sub AutoOpen: Beim Öffnen des Dokuments wird automatisch UserForm2 geöffnet. Dort kann der User entscheiden, ob er einen Entwurf erstellen möchte oder nicht. 

Falls ja, startet UserForm1.Show. Dort kann er seinen gewünschten Produktbereich wählen.

 

 

[b]Quellcode:[/b]

 

[code]

 

Sub AutoOpen()

    Dim dname As String

    dname = ActiveDocument.Name

If dname = "DTS2.0_MASTER.dotm" Then

    UserForm2.Show

Else

    UserForm3.Show

End If

End Sub

 

[/code]

 

 

[code]

 

Private Sub CommandButton1_Click()

    UserForm2.Hide

    UserForm1.Show

End Sub

 

Private Sub CommandButton2_Click()

    UserForm2.Hide

    MsgBox "Das Dokument wird geschlossen."

    ActiveDocument.Close

End Sub

 

[/code]

 

 

[code]

 

Sub Neues_Projekt()

 

' -----------------------------------------------------------------

 

'   Abfrage, zur Erfassung des Typen (Variable Type_No)

 

Type_No = InputBox("Bitte geben Sie den Produkt-Typ im folgenden Format ein: XXXX!", "Bitte Produkt-Typ eingeben")

If Type_No = "" Then

    MsgBox "Vorgang abgebrochen! Das aktive Dokument wird geschlossen."

    ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges   '     CloseAllDocuments

    Exit Sub

End If

 

'   Abfrage, zur Erfassung des Typen (Variable Type_Name)

 

If MsgBox("Handelt es sich bei Ihrem Produkt-Typ um eine Standard-Variante? (bzw. NICHT um eine Sondervariante (Clamp / ATEX / ...)?", vbYesNo) = vbNo Then

    Type_Name = InputBox("Bitte geben Sie die Produkt-Variante im folgenden Format ein: Tube_Valve_Body / Weld / ATEX / ...!", "Bitte Produkt-Variante eingeben")

    If Type_Name = "" Then

        MsgBox "Vorgang abgebrochen! Das aktive Dokument wird geschlossen."

        ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges   '     CloseAllDocuments

        Exit Sub

    End If

Else

    Type_Name = "Standard"

 

End If

 

'   Projekt-Verzeichnis vorhanden? Ja = Ok!, Nein = Ordner erstellen

 

Dim Datum As String

Dim Path As String

Dim Path1 As String

Dim Path2 As String

Dim Path3 As String

Dim Path4 As String

 

 

Datum = Format(Date, "yyyymmdd")

Path = "\\BURKERT\Marketing\DataSheetReview\1_PROJEKTE\" + Type_No + "_" + Type_Name

Path1 = Path + "\1_LATEST_VERSION_WORD"

Path2 = Path + "\2_LATEST_VERSION_PDF"

Path3 = Path + "\3_FILES"

Path4 = Path + "\4_PREV_VERSIONS_WORD"

 

If Dir(Path, vbDirectory) = "" Then

  MkDir (Path)

  MkDir (Path1)

  MkDir (Path2)

  MkDir (Path3)

  MkDir (Path4)

  MsgBox "Ein Projekt-Ordner f¸r das gew¸nschte Projekt wurde automatisch angelegt!"

'   Nein...

Else

  MsgBox "Ein entsprechender Projekt-Ordner ist bereits vorhanden! Bitte pr¸fen Sie eventuelle Dubletten oder w‰hlen Sie einen anderen Namen!"

 

  MsgBox "Vorgang abgebrochen! Das aktive Dokument wird geschlossen."

  ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges   '     CloseAllDocuments

  Exit Sub

 

End If

 

 

'   Abfrage, zur Erfassung des Editors (Variable Editor_name)

 

Dim Editor_name As String

 

Editor_name = InputBox("Bitte geben Sie Ihren Namen im folgenden Format ein: NameVorname!", "Bitte Ihren Namen eingeben")

If Editor_name = "" Then

    MsgBox "Vorgang abgebrochen! Das aktive Dokument wird geschlossen."

    ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges   '     CloseAllDocuments

    Exit Sub

End If

     

'   Definition Benennung Review-Datei "FILENAME_yyyymmdd_MusterMax.docm"

 

Dim DocName As String

DocName = "DS" & Type_No & "_" & Type_Name & "_" & "ENTWURF" & "_" & Format(Date, "yyyymmdd") & "_" & Editor_name & ".docm"

DocName2 = Path1 + "\" + DocName

 

Dim strPfad As String

strPfad = Options.DefaultFilePath(wdDocumentsPath)

Options.DefaultFilePath(wdDocumentsPath) = Path1

 

With Dialogs(wdDialogFileSaveAs)

   .Name = DocName2

   .Format = Word.WdSaveFormat.wdFormatXMLDocumentMacroEnabled

   .Show

End With

 

'14.03.2019: Deaktiviere ƒnderungsmodus

'ActiveDocument.TrackRevisions = True

'ActiveDocument.ShowRevisions = True

ActiveDocument.Save

MsgBox "Sie kˆnnen nun mit der Bearbeitung des Dokuments beginnen. Editieren Sie das Dokument wie gew¸nscht." & vbNewLine & "Die Datei wurde automatisch im Unterordner 1_LATEST_VERSION_WORD des Projektordners abgelegt." & vbNewLine & "Bitte legen Sie Bild-Dateien etc. im Unterordner 3_FILES ab."

 

'ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges   '     CloseAllDocuments

'ActiveDocument.Close SaveChanges:=wdSaveChanges

 

End Sub

 

[/code]


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 Fehler in VBA-Projekt für Word
19.03.2019 12:47:06 VBA_Noob1
NotSolved
19.03.2019 12:50:40 Gast66790
NotSolved