Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Hilfe, mit Excel VBA Word Dokument drucken

Hilfe, mit Excel VBA Word Dokument drucken
03.07.2024 17:02:41
Tobias1404
Hi habe eine Excel datei mit Userform.
Ein Word dokument wird geöffnet, ausgefüllt und soll gedruckt werden
Leider funktioniert das nicht immer. manchmal geht´s manchmal nicht.
Könnt Ihr mir bitte Helfen ?



Private Sub CommandButton1_Click()
ThisWorkbook.Activate
Application.ScreenUpdating = False

ThisWorkbook.Worksheets("Daten").Range("J28").Value = "Aktenvermerk"

Application.Cursor = xlWait


'!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Word öffnen!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Dim appWord As Object
Dim strDoc As String
Dim Formular As Object
strDoc = ThisWorkbook.Worksheets("Daten").Range("C5")
Set appWord = CreateObject("Word.Application")
Set Formular = appWord.Documents.Add(strDoc)
'!!!!!!!!!!!!!!!!
appWord.Visible = False
Application.ScreenUpdating = False
Formular.Activate

If Formular.bookmarks.Exists("Text2_Nachname") Then
Formular.Formfields("Text2_Nachname").result = Range("Nachname").Value & ", " & Range("Vorname").Value
Else
MsgBox "es ist ein Fehler aufgetreten"
End If

If Formular.bookmarks.Exists("Text13_WG") Then
Formular.Formfields("Text13_WG").result = Range("WG").Value
Else
MsgBox "es ist ein Fehler aufgetreten"
End If

If Formular.bookmarks.Exists("Text1_Zimmer") Then
Formular.Formfields("Text1_Zimmer").result = Range("Zimmer").Value
Else
MsgBox "es ist ein Fehler aufgetreten"
End If

If Formular.bookmarks.Exists("Text11_Gebdat") Then
Formular.Formfields("Text11_Gebdat").result = Range("Geburtsdatum").Value
Else
MsgBox "es ist ein Fehler aufgetreten"
End If

If Formular.bookmarks.Exists("Text4_Buch") Then
Formular.Formfields("Text4_Buch").result = Range("Buchnummer").Value
Else
MsgBox "es ist ein Fehler aufgetreten"
End If

If Formular.bookmarks.Exists("Text16") Then
Formular.bookmarks("Text16").Range.Fields(1).result.Text = Antrag_Mobiltelefon.TextBox1.Value
Else
MsgBox "es ist ein Fehler aufgetreten"
End If

appWord.PrintOut

On Error GoTo fehlermeldung

Formular.Saved = True 'für "ohne speichern" schließen
appWord.Documents.Close savechanges:=False

appWord.Quit 0
Set Formular = Nothing
Set appWord = Nothing


Dim objControl As Control

For Each objControl In Controls
Select Case TypeName(objControl)
Case "TextBox"
objControl.Text = ""
Case "ComboBox"
objControl.ListIndex = -1
Case "CheckBox"
objControl.Value = False
Case "OptionButton"
objControl.Value = False
End Select
Next
ThisWorkbook.Worksheets("Daten").Range("A28:N28").Value = ""
ThisWorkbook.Worksheets("Daten").Range("A31:N31").Value = ""


Application.Visible = False
Application.Cursor = xlDefault

Unload Me
Application.ScreenUpdating = True


Vielen Dank
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe, mit Excel VBA Word Dokument drucken
03.07.2024 17:17:16
Onur
"manchmal geht´s manchmal nicht" ???
Was GENAU soll das heissen ?
AW: Hilfe, mit Excel VBA Word Dokument drucken
03.07.2024 20:07:33
Ulf
Hi Tobias,
wird wohl am Hintergrunddrucken von Word liegen, versuch mal den Druck sequentiell laufen zu lassen so ca.


ThisWorkbook.Activate
Application.ScreenUpdating = False

ThisWorkbook.Worksheets("Daten").Range("J28").Value = "Aktenvermerk"

Application.Cursor = xlWait


'!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Word öffnen!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Dim appWord As Object
Dim strDoc As String
Dim Formular As Object
Dim bBack as Boolean
strDoc = ThisWorkbook.Worksheets("Daten").Range("C5")
Set appWord = CreateObject("Word.Application")
Set Formular = appWord.Documents.Add(strDoc)
'!!!!!!!!!!!!!!!!
appWord.Visible = False
bBack=appword.Options.PrintBackground
appword.Options.PrintBackground=False
Application.ScreenUpdating = False
Formular.Activate

If Formular.bookmarks.Exists("Text2_Nachname") Then
Formular.Formfields("Text2_Nachname").result = Range("Nachname").Value & ", " & Range("Vorname").Value
Else
MsgBox "es ist ein Fehler aufgetreten"
End If

If Formular.bookmarks.Exists("Text13_WG") Then
Formular.Formfields("Text13_WG").result = Range("WG").Value
Else
MsgBox "es ist ein Fehler aufgetreten"
End If

If Formular.bookmarks.Exists("Text1_Zimmer") Then
Formular.Formfields("Text1_Zimmer").result = Range("Zimmer").Value
Else
MsgBox "es ist ein Fehler aufgetreten"
End If

If Formular.bookmarks.Exists("Text11_Gebdat") Then
Formular.Formfields("Text11_Gebdat").result = Range("Geburtsdatum").Value
Else
MsgBox "es ist ein Fehler aufgetreten"
End If

If Formular.bookmarks.Exists("Text4_Buch") Then
Formular.Formfields("Text4_Buch").result = Range("Buchnummer").Value
Else
MsgBox "es ist ein Fehler aufgetreten"
End If

If Formular.bookmarks.Exists("Text16") Then
Formular.bookmarks("Text16").Range.Fields(1).result.Text = Antrag_Mobiltelefon.TextBox1.Value
Else
MsgBox "es ist ein Fehler aufgetreten"
End If

appWord.PrintOut

On Error GoTo fehlermeldung

Formular.Saved = True 'für "ohne speichern" schließen
appword.Options.PrintBackground=bBack
appWord.Documents.Close savechanges:=False

appWord.Quit 0
Set Formular = Nothing
Set appWord = Nothing


Dim objControl As Control

For Each objControl In Controls
Select Case TypeName(objControl)
Case "TextBox"
objControl.Text = ""
Case "ComboBox"
objControl.ListIndex = -1
Case "CheckBox"
objControl.Value = False
Case "OptionButton"
objControl.Value = False
End Select
Next
ThisWorkbook.Worksheets("Daten").Range("A28:N28").Value = ""
ThisWorkbook.Worksheets("Daten").Range("A31:N31").Value = ""


Application.Visible = False
Application.Cursor = xlDefault

Unload Me
Application.ScreenUpdating = True

hth
Ulf
Anzeige
AW: Hilfe, mit Excel VBA Word Dokument drucken
03.07.2024 21:46:12
Onur
Ist doch längst gegessen.
Richtig lesen bringt es voll. :)
AW: Hilfe, mit Excel VBA Word Dokument drucken
03.07.2024 17:18:20
Onur
Mit den Worten "Auto kaputt" kann deine Werkstatt auch nix anfangen - oder doch ?
AW: Hilfe, mit Excel VBA Word Dokument drucken
03.07.2024 17:21:22
Tobias1404
Hallo Onur

Manchmal druckt es und manchmal eben nicht. konnte den Fehler nicht finden.
Beide Male läuft das Programm ohne Fehler durch, einmal kommt was aus dem Drucker das andere mal ist nur das Druckersymbol in der Taskleiste (0 Druck Aufträge)
Anzeige
AW: Hilfe, mit Excel VBA Word Dokument drucken
03.07.2024 17:24:33
Onur
Dann lass bitte mal die dämlichen "On Error..." ALLE weg (und stelle unter Optionen "bei JEDEM Fehler" ein), dann siehst du auch, wo der Fehler ist.
Gerne !
03.07.2024 18:39:35
Onur
"On Error" ist kein Breitband-Antibiotikum, das man benutzt wie manch ein Rinderzüchter, der rein prophylaktisch allen seinen Tieren täglich Antibiotika ins Futter mischt.
Es korrigiert auch keine Fehler - du siehst sie nur nicht mehr. Der Fehler wird nicht angezeigt (der Fehler verursachende Befehl wird übersprungen), verursacht aber im nachfolgenden Code ggf noch viel grössere Probleme.
Dein Arm ist ja auch nicht unverletzlich, wenn du ihn betäubst, du spürst zwar keine Schmerzen, wenn du eine glühende Herdplatte anfasst, aber verbrannt wirst du trotzdem.
On Error sollte man nur benutzen, wenn man in einer bestimmten Zeile einen bestimmten Fehler ERWARTET und es nach dieser Zeile sofort wieder durch "On Error Goto 0" abschalten.
z.B. wenn man auf eine Datei zugreifen möchte, aber sie bereits geöffnet sein KÖNNTE.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige