Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1656to1660
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

Unzip einer übergebenen Datei

Unzip einer übergebenen Datei
12.11.2018 19:57:14
Traptor8180
Hallo,
ich habe eine

Sub geschrieben, die einen Mail Anhang abspeichert. Wenn es sich nicht um eine ZIP Datei  _
handelt, wird direkt abgespeichert:
' Diese Methode speichert das Attachment der übergebenen E-Mail
Sub saveAttachtoDisk(itm As Object, filename As String, path As String)
Dim objAtt As Object
'wenn das letzte Zeichen kein \ ist, dann hänge ein \ hinten dran
If Right(path, 1)  "\" Then
path = path + "\"
End If
For Each objAtt In itm.attachments
' Wenn es ein ZIP-File ist, dann Unzip in einen Tmp-Ordner
If Right(objAtt, 4) = ".zip" Then
' Call unzipMailAttachment(objAtt, filename, path)
Call unzipMailAttachment(objAtt, filename, path)
' Move File wird in der Unzip-Methode gemacht
Else ' Wenn Attachment kein ZIP ist, unzip erst
Call archiveOldFiles(path, filename)
objAtt.SaveAsFile path & filename
End If
Set objAtt = Nothing
Next
End Sub
Wenn es sich um eine ZIP-Datei handelt, wird zusätzlich die folgende Prozedur aufgerufen, die   _
_
die übergebene Datei entpacken soll. Und genau hier liegt mein Problem. Folgende Prozedur  _
funktioniert leider nicht
' Diese Methode speichert das Attachment der übergebenen E-Mail
Sub unzipMailAttachment(attachment As Object, filename As String, targetPath As String)
Dim tmpFolder As String
Dim sApp As Object
' Anlegen eines temporären Ordners für den ZIP-File
If Right(targetPath, 1)  "\" Then ' wenn das letzte Zeichen kein \ ist, dann hänge ein \   _
_
_
hinten dran
targetPath = targetPath + "\"
End If
tmpFolder = path & "\Temp" & Format(Now, "yyyy-mm-dd-hh-mm-ss") & "\"
MkDir (tmpFolder)
' Abspeichern des ZIP-Files
attachment.SaveAsFile tmpFolder & Left(filename, Len(filename) - 3) & "zip"
' Unzip der Datei und kopieren des ZIP Inhalts ins Zielverzeichnis (targetPath)
Set sApp = CreateObject("Shell.Application")
sApp.Namespace(targetPath).CopyHere _
sApp.Namespace(tmpFolder).items
End Sub
Sobald der Debugger an die Stelle
sApp.Namespace(targetPath).CopyHere _
sApp.Namespace(tmpFolder).items
kommt, bekomme ich eine Fehlermeldung: Laufzeitfehler '91': Objektvariable oder With- _
Blockvariable nicht festgelegt. Ich habe mich schon durch die Foren gewühlt, allerdings egal  _
welchen Beispielcode ich reinkopiere, diese beiden Zeilen kommen quasi überall vor und scheitern immer bei mir.
Wäre super, wenn mir jemand aus meiner Verzweifelung helfen könnte.
Viele liebe Grüße
Traptor


		

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unzip einer übergebenen Datei
12.11.2018 20:07:46
onur
https://stackoverflow.com/questions/38616187/vba-error-on-namespace-copyhere-and-namespace-items
Anzeige

10 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige