05.11.2018, 20:09
05.11.2018, 22:32
Hallo!
Gruß, René
(26.10.2018, 16:56)lukas-2000 schrieb: [ -> ][...] als PDF [...]Email ausdrucken - Teil 1. In diesem Workshop zeige ich auf wie man Emails über Word drucken kann. Anstelle von "PrintOut" musst Du ExportAsFixedFormat einsetzen.
Gruß, René
06.11.2018, 19:10
Halmi
danke für Eure Antworten!
Zu André:
Ich habe den Code entsprechend angepasst, jedoch bleibt es bei der Stelle: ,,Set olMapiFolder = GetObject("", "olMapiFolderlook.Application").GetNamespace("Mapi"). GetDefaultFolder(olFolderInbox).Folders("TEST")" wieder stehen.
Ich kann mir vorstellen, dass dies eventuell an der Namensberzeichnung vom Ordner und seiner Position liegt. Der Name des zu löschenden Ordners ist ,,TEST", wie oben, allerdings befindetet sich dieser in einem Unterordner. Kann es daran liegen? Zudem gibt es an der Sache noch ein Problem, wenn der Ordner fest definiert werden muss. Ich wollte das ganze eigentlich variabel halten, also so, dass der Aktuell angewählte Ordner(der in dem man sich befindet) für den Löschvorgang ausgewählt wird.
Hast du da auch noch eine Idee, wie man das Problem beheben könnte?
Zu René:
Danke, dass du das alte Thema nochmal aufgreifst. Allerdings verstehe ich das nicht ganz so. Muss ich in dem folgendem Code einfach "PrintOut" durch ExportAsFixedFormat mit den dazugehörigen angaben ersetzen? Ich habe das mal durch Klammern ([[ ]]) gekennzeichnet. [url=https://msdn.microsoft.com/de-de/vba/word-vba/articles/document-exportasfixedformat-method-word][/url]
Gruß Lukas
danke für Eure Antworten!
Zu André:
Ich habe den Code entsprechend angepasst, jedoch bleibt es bei der Stelle: ,,Set olMapiFolder = GetObject("", "olMapiFolderlook.Application").GetNamespace("Mapi"). GetDefaultFolder(olFolderInbox).Folders("TEST")" wieder stehen.
Ich kann mir vorstellen, dass dies eventuell an der Namensberzeichnung vom Ordner und seiner Position liegt. Der Name des zu löschenden Ordners ist ,,TEST", wie oben, allerdings befindetet sich dieser in einem Unterordner. Kann es daran liegen? Zudem gibt es an der Sache noch ein Problem, wenn der Ordner fest definiert werden muss. Ich wollte das ganze eigentlich variabel halten, also so, dass der Aktuell angewählte Ordner(der in dem man sich befindet) für den Löschvorgang ausgewählt wird.
Hast du da auch noch eine Idee, wie man das Problem beheben könnte?
Zu René:
Danke, dass du das alte Thema nochmal aufgreifst. Allerdings verstehe ich das nicht ganz so. Muss ich in dem folgendem Code einfach "PrintOut" durch ExportAsFixedFormat mit den dazugehörigen angaben ersetzen? Ich habe das mal durch Klammern ([[ ]]) gekennzeichnet. [url=https://msdn.microsoft.com/de-de/vba/word-vba/articles/document-exportasfixedformat-method-word][/url]
Code:
Option Private Module
Option Explicit
Public Sub PrintAPageFromEmail(Optional wdPrintOut As Boolean = True, _
Optional printCopies As Integer = 1, _
Optional startPage As String = "1", _
Optional endPage As String = "1", _
Optional closeDoc As Boolean = True, _
Optional quitWDApp As Boolean = True, _
Optional wdPrintAll As Boolean = False, _
Optional wdPrinter As String)
Dim Ins As Outlook.Inspector
Dim obj As Outlook.MailItem
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Dim wdRange As Word.Range
Dim wdOldPrinter As String
Select Case True
Case TypeOf Application.ActiveWindow Is Outlook.Inspector
Set obj = Application.ActiveInspector.CurrentItem
Case Else
With Application.ActiveExplorer.Selection
If .Count Then Set obj = .Item(1)
End With
If obj Is Nothing Then Exit Sub
End Select
Set Ins = obj.GetInspector
Set wdDoc = Ins.WordEditor
Set wdRange = wdDoc.Range
wdRange.WholeStory
wdRange.Copy
Set wdApp = New Word.Application
With wdApp
.Visible = True
wdOldPrinter = .ActivePrinter
If wdPrinter <> "" Then .ActivePrinter = wdPrinter
.Documents.Add
With .ActiveDocument
If Not wdDoc Is Nothing Then
.PageSetup.RightMargin = 42.55
.PageSetup.LeftMargin = 42.55
.PageSetup.TopMargin = 70.85
.PageSetup.BottomMargin = 56.7
End If
.Range(0, 0).Paste
If wdPrintOut Then
If wdPrintAll Then
[[ .PrintOut copies:=printCopies ]]
Else
[[[ .PrintOut copies:=printCopies, Range:=wdPrintFromTo, _
From:=CStr(startPage), To:=CStr(endPage) ]]]
End If
End If
If closeDoc Then
.Close SaveChanges:=False
End If
End With
.ActivePrinter = wdOldPrinter
If quitWDApp Then
.Quit
End If
End With
End Sub
Gruß Lukas
06.11.2018, 19:21
(06.11.2018, 19:10)lukas-2000 schrieb: [ -> ]Muss ich in dem folgendem Code einfach "PrintOut" durch ExportAsFixedFormat mit den dazugehörigen angaben ersetzen?[/code]Genau so muss es ein.
06.11.2018, 21:36
Hallöchen,
olMapiFolderlook.Application
musst Du bei getobject... durch Outlook.Application ersetzen.
olMapiFolderlook.Application
musst Du bei getobject... durch Outlook.Application ersetzen.
09.11.2018, 17:45
Hallo,
ich habe den Code wie von dir beschrieben angepasst. Allerdings bekomme ich jetzt einen Laufzeitfehler und es bleibt an der selben Stelle stehen. Mein aktueller Code sieht so aus:
Alles klar, Dankeschön.
Gruß Lukas
Zitat:schauan
olMapiFolderlook.Application
musst Du bei getobject... durch Outlook.Application ersetzen.
ich habe den Code wie von dir beschrieben angepasst. Allerdings bekomme ich jetzt einen Laufzeitfehler und es bleibt an der selben Stelle stehen. Mein aktueller Code sieht so aus:
Code:
Sub Items_loeschen()
'Variablendeklarationen
Dim olMapiFolder As Outlook.MAPIFolder
Dim objItem As Object
Dim iCnt As Integer
'Ordnerobject setzen
Set olMapiFolder = GetObject("", "Outlook.Application").GetNamespace("Mapi"). _
GetDefaultFolder(olFolderInbox).Folders("TEST")
'Schleife ueber alle Elemente des Ordners
For iCnt = olMapiFolder.objItems.Count To 1 Step -1
'Element loeschen
olMapiFolder.objItems(iCnt).Delete
'Ende Schleife ueber alle Elemente des Ordners
Next
End Sub
Zitat:mumpel
Genau so muss es sein
Alles klar, Dankeschön.
Gruß Lukas
10.11.2018, 18:22
Hallo Lukas,
schwere Geburt, keine Ahnung, was diesmal bei mir los war :22: So kenn ich mich gar nicht … :77: Aber jetzt. Musst nur noch den Ordner anpassen.
schwere Geburt, keine Ahnung, was diesmal bei mir los war :22: So kenn ich mich gar nicht … :77: Aber jetzt. Musst nur noch den Ordner anpassen.
Code:
Sub Items_loeschen()
'Variablendeklarationen
Dim olMapiFolder As Outlook.MAPIFolder
Dim iCnt As Integer
'Ordnerobject setzen
Set olMapiFolder = GetObject("", "Outlook.Application").GetNamespace("Mapi"). _
GetDefaultFolder(olFolderInbox).Folders("TEST_P")
'Schleife ueber alle Elemente des Ordners
For iCnt = olMapiFolder.Items.Count To 1 Step -1
'Element loeschen
olMapiFolder.Items(iCnt).Delete
'Ende Schleife ueber alle Elemente des Ordners
Next
End Sub
12.11.2018, 18:18
Hallo André,
ich weiß auch nicht was da los ist. Aber es funktioniert immer noch nicht. Ich habe den Code jetzt 1:1 übernommen und den zu löschenden Ordner ,,TEST_P" genannt. Dennoch tritt eine Fehlermeldung auf.
Hier mal ein Bild:
Dateien bitte im Forum hochladen - https://www.clever-excel-forum.de/thread-326.html
Ich hoffe du kannst so besser nachvollziehen, woran es liegen kann.
Gruß Lukas
ich weiß auch nicht was da los ist. Aber es funktioniert immer noch nicht. Ich habe den Code jetzt 1:1 übernommen und den zu löschenden Ordner ,,TEST_P" genannt. Dennoch tritt eine Fehlermeldung auf.
Hier mal ein Bild:
Dateien bitte im Forum hochladen - https://www.clever-excel-forum.de/thread-326.html
Ich hoffe du kannst so besser nachvollziehen, woran es liegen kann.
Gruß Lukas
12.11.2018, 18:31
Hallo Lukas,
lade deinen ScrShot bitte im Forum hoch - siehe Kommentar in deinem Beitrag.
lade deinen ScrShot bitte im Forum hoch - siehe Kommentar in deinem Beitrag.
12.11.2018, 19:58
Hallo Lukas,
oder Du schreibst mal auf, wie der Fehler lautet und in welcher Zeile er auftritt ...
oder Du schreibst mal auf, wie der Fehler lautet und in welcher Zeile er auftritt ...