Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1364to1368
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

VBA Outlook 2010 Fehler (xlDialogSaveAs).Show

VBA Outlook 2010 Fehler (xlDialogSaveAs).Show
07.06.2014 07:21:41
Thorsten
Hallo,
ich versuche eMail-Anhänge zu speichern.
Der genaue Speicherpfad steht in den Anhängen(.xls) der eMail.
Leider ist der Name/ Bezeichnung immer anders.
Die Anhänge werden temporär gespeichert, geöffnet und dann kommt mein Problem:
der Benutzer soll das Speicherverzeichnis auswählen.
Mit "Application.Dialogs(xlDialogSavecopy).Show xxx" bekomme ich eine Fehlermeldung.
Genau wie mit ".Sheets.Count.Activate"
Code:

Option Explicit
Public IEApp, IEDocument, fso As Object
Public i, WochentaG, MultIp As Byte
Public GesDat As Date
Public pfad11, StrTyp, Dateiname, Dateiname_neu, Zeit, strPath, file As Variant
Public Mail As Outlook.mailitem
Function SZeit() As Date
pfad11 = "C:\Temp\"
StrTyp = "star.xlsm"
Dateiname = Dir(pfad11 & StrTyp)
Dateiname_neu = Dateiname
SZeit = FileDateTime(pfad11 & Dateiname)
End Function
Function eXeX() As Object
Set eXeX = CreateObject("Excel.Application")
With eXeX
.Visible = True
.EnableEvents = False
End With
End Function
Function MonAt2() As Variant
MonAt2 = Format(Date, "MMMM" & "_" & "YYYY")
End Function
Function JaHr2() As Variant
JaHr2 = Format(Date, "YYYY")
End Function
Public Sub SaveDat(Mail As Outlook.mailitem)
If Mail.Attachments.Count > 0 And Mail.ReceivedTime > SZeit Then
For i = 1 To Mail.Attachments.Count
If (Mid(Mail.Attachments.Item(i).FileName, 1, 8) = "xxxxxxxx") Then
Mail.Attachments.Item(i).SaveAsFile "C:\Temp\Test\" & Mail.Attachments.Item(i). _
FileName
pfad11 = "C:\Temp\Test\"
StrTyp = Mail.Attachments.Item(i).FileName '"*xxx*.xls*"
Dateiname = Dir(pfad11 & StrTyp)
Dateiname_neu = Dateiname
Zeit = FileDateTime(pfad11 & Dateiname)
Do While Dateiname  ""
If Zeit .Sheets.Count.Activate 'FEHLER
.ActiveWorkbook.PrintOut Copies:=1, Collate:=True
.Application.Dialogs(xlDialogSaveAs).Show "d:\xx\" _
& JaHr2 & "\" & MonAt2 & "\" & Dateiname_neu 'FEHLER
.Application.Quit
End With
End If
Next i
End If
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Outlook 2010 Fehler (xlDialogSaveAs).Show
07.06.2014 09:06:14
Tino
Hallo,
versuch mal so (nicht getestet!)
With eXeX
With .Workbooks.Open(pfad11 & Dateiname_neu)
.Sheets(.Sheets.Count).Activate 'FEHLER
.PrintOut Copies:=1, Collate:=True
End With
.Dialogs(xlDialogSaveAs).Show _
"d:\xx\" & JaHr2 & "\" & MonAt2 & "\" & Dateiname_neu 'FEHLER
.Quit
End With
Gruß Tino

AW: VBA Outlook 2010 Fehler (xlDialogSaveAs).Show
07.06.2014 09:07:19
Nepumuk
Hallo,
Outlook kennt keine Excelkonstanten wie xlDialogSaveAs. Da musst du deren numerischen Wert benutzen. Also 5 statt der Konstanten. Würdest du Option Explicit benutzen, hätte dir das der Debugger schon gesagt.
.Sheets.Count gibt die Anzahl der Blätter (Tabellen, Diagramme, Makrovorlagen usw.) in einer Mappe wieder. Du Versuchst da eine Zahl zu aktivieren, das geht natürlich nicht. Das musst du so machen:
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Activate
Gruß
Nepumuk

Anzeige
AW: VBA Outlook 2010 Fehler (xlDialogSaveAs).Show
07.06.2014 09:25:58
Thorsten
TOP!
Geht.
Vielen Dank!

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige