Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1132to1136
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel nach word geht, geht nicht?

Excel nach word geht, geht nicht?
ing.grohn
Hallo Forum,
noch mal eine Frage zum Zusammenspiel Excel -> Word.
Folgender Code wird aus einer Userform aufgerufen, Daten aus der Userform übertragen,
das Word-Dokument gedruckt und geschlossen, Word beendet:
Sub HandAkte()
Dim DocNeu As Object
Dim frm As Object
Dim ObjWord As Object
Set frm = UserForm2
MsgBox ("Bitte ein Handakten-Etikett einlegen")
On Error Resume Next
Set ObjWord = GetObject("Word.Application")
If ObjWord Is Nothing Then
Set ObjWord = CreateObject("Word.Application")
ObjWord.Visible = True
End If
On Error GoTo 0
If Not ObjWord Is Nothing Then
Set DocNeu = ObjWord.Documents.Add(Template:="C:\Eigene Dateien\Vorlagen\Handakte.dot")
End If
With DocNeu
.FormFields("ProzReg").Result = frm.Controls("TextBox21").Value 'frm.TextBox21.Value
.FormFields("inSachen").Result = Left(frm.TextBox2.Value, 1) & ". " & frm.TextBox3.Value
.FormFields("gegen").Result = frm.Controls("TextBox22").Value
.Bookmarks("Grund").Range.Text = frm.TextBox23.Value
.FormFields("Vorname").Result = frm.Controls("TextBox3").Value
.FormFields("Name").Result = frm.Controls("TextBox2").Value
.FormFields("Strasse").Result = frm.Controls("TextBox4").Value
.FormFields("Ort").Result = frm.TextBox5.Value & " " & frm.TextBox6.Value
.FormFields("VersNr").Result = frm.Controls("TextBox13").Value
.FormFields("Versicherung").Result = frm.Controls("TextBox12").Value
.FormFields("Telefon").Result = frm.Controls("TextBox7").Value
.FormFields("Telefax").Result = frm.Controls("TextBox8").Value
End With
DocNeu.Application.DisplayAlerts = wdAlertsNone
DocNeu.Application.Activate
DocNeu.Application.PrintOut
Word.ActiveDocument.Close (wdDoNotSaveChanges)
Word.Application.Quit
End Sub
Beim ersten Aufruf läuft das Ganze fehlerlos durch. Ruf ich diese Prozedur ein 2. mal auf (ohne was anderes gemacht zuhaben), kommen unterschiedliche Fehlermeldungen in unterschiedlichen Zeilen:
Laufzeitfehler 462, der Remote Server existiert nicht oder ist nicht verfügbar oder Object nicht bekannt oder verfügbar u. ä.. Wo der Fehler auftritt hängt auch davon ab, ob ich DocNeu.App... oder Word.App... verwende.
Betroffen sind i. d. R. die Zeilen:
Set DocNeu = ObjWord.Documents.Add(Template:="C:\Eigene Dateien\Vorlagen\Handakte.dot")
DocNeu.Application.PrintOut
Word.ActiveDocument.Close (wdDoNotSaveChanges)
Kann mir einer sagen, wie ichs anders mache oder besser bzw. so, dass keine Fehler mehr entstehen?
Eine Antwort wäre sehr hilfreich und nett.
Mit freundlichen Grüßen
Albrecht
(PS: beende ich den Debugger und starte neu, funktionierts wieder oder eine Änderung!)
AW: Excel nach word geht, geht nicht?
02.02.2010 10:04:57
Beverly
Hi Albrecht,
vielleicht hilft es, wenn du die Set-Variablen am Ende des Codes wieder zurücksetzt mit
Set Variable = Nothing


ungetestet.
02.02.2010 10:06:03
Tino
Hallo,
teste mal so, ich habe es jetzt nicht getestet.
Sub HandAkte()
Dim DocNeu As Object
Dim frm As Object
Dim ObjWord As Object
Set frm = UserForm2
MsgBox ("Bitte ein Handakten-Etikett einlegen")
On Error Resume Next
Set ObjWord = CreateObject("Word.Application")
ObjWord.Visible = True
On Error GoTo 0
If Not ObjWord Is Nothing Then
Set DocNeu = ObjWord.Documents.Open("C:\Eigene Dateien\Vorlagen\Handakte.dot")
End If
With DocNeu
.FormFields("ProzReg").Result = frm.Controls("TextBox21").Value 'frm.TextBox21.Value
.FormFields("inSachen").Result = Left(frm.TextBox2.Value, 1) & ". " & frm.TextBox3.Value
.FormFields("gegen").Result = frm.Controls("TextBox22").Value
.Bookmarks("Grund").Range.Text = frm.TextBox23.Value
.FormFields("Vorname").Result = frm.Controls("TextBox3").Value
.FormFields("Name").Result = frm.Controls("TextBox2").Value
.FormFields("Strasse").Result = frm.Controls("TextBox4").Value
.FormFields("Ort").Result = frm.TextBox5.Value & " " & frm.TextBox6.Value
.FormFields("VersNr").Result = frm.Controls("TextBox13").Value
.FormFields("Versicherung").Result = frm.Controls("TextBox12").Value
.FormFields("Telefon").Result = frm.Controls("TextBox7").Value
.FormFields("Telefax").Result = frm.Controls("TextBox8").Value
End With
DocNeu.Application.DisplayAlerts = wdAlertsNone
DocNeu.Application.Activate
DocNeu.Application.PrintOut
Word.ActiveDocument.Close (wdDoNotSaveChanges)
Word.Application.Quit
End Sub
Gruß Tino
Anzeige
AW: Excel nach word geht, geht nicht?
02.02.2010 10:10:13
Luschi
Hallo Albrecht,
beim Öffnen bzw. Aktivieren von WinWord definierst Du eine Objektvariable 'ObjWord' und arbeitest damit - beim Schließen läßt Du diese Variable unbehandelt links liegen.
Versuch es mal so:
ObjWord.ActiveDocument.Close (wdDoNotSaveChanges)
ObjWord.Application.Quit
Set DocNeu = Nothing
Set ObjWord = Nothing
Gruß von Luschi
aus klein-Paris
AW: Excel nach word geht, geht nicht?
02.02.2010 10:18:17
Tino
Hallo,
beim beenden der Prozedur werden die Variablen auf Nothing gesetzt
weil diese auch innerhalb der Prozedur deklariert sind.
Kann mir nicht vorstellen, dass es daran liegt.
Gruß Tino
Anzeige
sorry, Word ist nicht innerhalb deklariert. oT
02.02.2010 10:25:20
Tino
AW: sorry, Word ist nicht innerhalb deklariert. oT
02.02.2010 11:16:13
Luschi
Hallo Tino,
das Problem liegt nicht an
- Set ObjWord = Nothing
sondern daran, das dieser Befehl nicht aufgerufen wurde
- ObjWord.Application.Quit (ObjWord.Quit reicht auch!)
statt desen wurde Word so beendet
- Word.Application.Quit
Somit kam es beim nächsten Öffnen von WinWord zu geschilderten Problem.
Deine Aussage betreffs von definierten Objekt-Variablen und Nothing ist zwar in der Theorie richtig,
aber in der Praxis sollte man hinschreiben was man auch meint. Da ich viele Projekte gleichzeitig betreue
(Excel, Access, VB6, VB.Net, Java, MS-SQL-Server) , kann ich mir solche Standard-Ungenauigkeiten einfach nicht leisten. Die Fehlersuche wird wesentlich vereinfacht, wenn der komplette Vba-Code dasteht und ich nicht erst überlegen muß, was irgendwo als Standard definiert ist.
Gruß von Luschi
aus klein-Paris
Anzeige
habe ja geschrieben ungetestet... ;-)
02.02.2010 11:22:55
Tino
Hallo,
ich finde in der Regel meine Fehler.
Dennoch danke.
Gruß Tino
AW: Excel nach word geht, geht nicht?
ing.grohn
Hallo Luschi,
(wo war noch mal "klein-Paris", ich habs mal gewusst)
Funktioniert prima
Vielen Dank auch den beiden anderen Helfern!
Mit freundlichen Grüßen
aLBRECHT
AW: Excel nach word geht, geht nicht?
02.02.2010 10:27:35
Reinhard
Hallo Albrecht,
das ist Heddernheim, ein Stadtteil von Frankfurt/Mein.
Gehe mal Faschingsdienstag hin... :-)
Gruß
Reinhard
Total falsch!!!
02.02.2010 11:01:06
Luschi
Hallo Reinhard,
schau mal hier: http://de.wikipedia.org/wiki/Klein-Paris
(Stichwort: Goethe)
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Nö
02.02.2010 11:22:30
Luschi
Hallo Reinhard,
das Internet kann auch auf eine ganz falsche Fährte/Ergebnis führen, wenn man sich auf eine einzige Aussage versteift. Ein Link auf ähnliche Begriffe auf Deiner genannten Inet-Seite hätte den Irrtum aufgeklärt.
Gruß von Luschi
aus klein-Paris

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige