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

Unzippen funtkioniert nicht

Unzippen funtkioniert nicht
30.08.2008 10:48:00
SteffenS
Hallo Zusammen,
mit dem Code:

Sub test()
Dim objXL As Object
Dim oApp As Object
'Unzip Dateien
path_system = ThisWorkbook.Path & "\1"
DefPath = ThisWorkbook.Path & "\2\12345.zip\"
'Abfrage nach dem Art des entzippens
'Windows XP
Set oApp = CreateObject("Shell.Application")
oApp.NameSpace(path_system).CopyHere oApp.NameSpace(DefPath).items
Set oApp = Nothing
End Sub


Entzippe ich unter Windows XP und Excel 2003 Dateien. Das funktioniert auch einwandfrei.
Unter 2007 und Windows Vista funktioniert dies leider nicht.
Es erscheint immer der Fehler:
Die Methode 'CopyHere' für das Objekt 'Folder3' ist fehlgeschlagen.
Wie bekomm ich die Funktion auch unter Excel 2007 und Vista hin?
Danke im Voraus.
MFG
Steffen Schmerler

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unzippen funtkioniert nicht
30.08.2008 11:41:00
Ramses
Hallo
Lies dir das mal durch, vielleicht funktioniert es dann
http://www.rondebruin.nl/unzip.htm
Allgemein scheint Vista Probleme mit den ZIP-Files zu haben, weil unheimlich langsam.
Gruss Rainer
AW: Unzippen funtkioniert nicht
30.08.2008 11:48:00
Tino
Hallo,
habe deinen Code unter Vista getestet,
bist auf ein fehlerhaften String den ich korrigieren musste funktioniert dieser.
In der Zeile war ein Backslash am Ende der Zeile zu viel.
DefPath = ThisWorkbook.Path & "\2\12345.zip\"
Die Deklarierungen habe ich auch noch vervollständigt.
So funktioniert er bei mir!
Modul Modul1
Option Explicit 
 
Sub test() 
    Dim objXL As Object 
    Dim oApp As Object 
    Dim path_system As String, DefPath As String 
        'Unzip Dateien 
        path_system = ThisWorkbook.Path & "\1" 
        DefPath = ThisWorkbook.Path & "\2\12345.zip" 
 
        Set oApp = CreateObject("Shell.Application") 
        oApp.Namespace(path_system).CopyHere oApp.Namespace(DefPath).items 
        Set oApp = Nothing 
End Sub 
 
 


Gruß Tino

www.VBA-Excel.de


Anzeige
noch Fehler drin
30.08.2008 12:06:00
SteffenS
Hallo Tino,
bei mir erscheint wenn ich den Code ausführen will:
Objektvariable oder With-Variable nicht festgelegt bei der Zeile
oApp.Namespace.....
Kannst Du mir bitte nochmal helfen?
Danke Dir
Steffen
AW: noch Fehler drin
30.08.2008 12:15:58
Tino
Hallo,
dieser Fehler kommt bei mir wenn der Pfad nicht stimmt bzw. die Zip- Datei nicht an diesem Ort ist.
Aktiviere bei Dir mal das Direktfenster und gehe mit F8 in Einzelschritten vor und überprüfe mal ob der Pfad und die Datei korrekt ist, dieser wird im Direktfenster bei Debug.Print… ausgegeben.
Modul Modul1
Option Explicit 
  
Sub test() 
    Dim oApp As Object 
    Dim path_system As String, DefPath As String 
        'Unzip Dateien 
        path_system = ThisWorkbook.Path & "\1" 
        DefPath = ThisWorkbook.Path & "\2\12345.zip" 
  
 Debug.Print path_system 
 Debug.Print DefPath 
         
        Set oApp = CreateObject("Shell.Application") 
        oApp.Namespace(path_system).CopyHere oApp.Namespace(DefPath).items 
        Set oApp = Nothing 
End Sub 


Gruß Tino

www.VBA-Excel.de


Anzeige
hm komisch dabei
30.08.2008 12:22:54
SteffenS
ist das wenn ich die Variablen path_system und DefPath nicht deklariere der Fehler nicht erscheint.
Dafür habe ich aber dann wieder den ersten Fehler.
Den Pfad und die ZipDatei existieren bei mir.
Woran kann das liegen. Ich schon komisch....
Danke nochmal
Steffen
AW: hm komisch dabei
30.08.2008 12:36:00
Tino
Hallo,
verstehen kann ich es jetzt auch nicht, bei mir funktioniert es als String.
Versuch es einfach mal mit Variant.
Modul Modul1
Option Explicit 
Sub test() 
    Dim oApp As Object 
    Dim path_system, DefPath 
        'Unzip Dateien 
        path_system = ThisWorkbook.Path & "\1" 
        DefPath = ThisWorkbook.Path & "\2\12345.zip" 
         
        Set oApp = CreateObject("Shell.Application") 
        oApp.Namespace(path_system).CopyHere oApp.Namespace(DefPath).items 
        Set oApp = Nothing 
End Sub 


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: hm komisch dabei
30.08.2008 12:50:00
SteffenS
Habe das mal angepaßt, damit ist der eine Fehler weg, dafür hab ich den Ersten wieder.
Hab mir mal unter C:\Benutzer\hdf\AppData\Local\Temp
Das TemporäreVerzeichnis von 12345.zip angeschaut. Da sind die Dateien drin und zwar entpackt.
Das Problem ist nur, dass diese Dateien schreibgeschützt sind.
Kann das damit zusammenhängen? Das Excel diese Dateien deshalb nicht kopieren kann?
Leider weiß ich aber jetzt a net weiter...
Vielleicht habt Ihr ja noch eine Idee?
Danke Euch im Voraus
Steffen
AW: hm komisch dabei
30.08.2008 12:59:19
Tino
Hallo,
entferne doch den Schreibschutz um zu erfahren ob es daran liegt.
Sonst kann ich Dir auch nicht weiterhelfen, vielleicht hat Nepumuk
mehr Erfahrung mit so etwas.
Gruß Tino

www.VBA-Excel.de


Anzeige
AW: hm komisch dabei
30.08.2008 13:04:00
Nepumuk
Hallo Tino,
nee hab ich nicht. Ich benutze zum zippen und entzippen per VBA speziell dafür geschriebene DLL's.
Gruß
Nepumuk
Anfrage DLL
30.08.2008 13:07:00
SteffenS
Hallo Timo,
wo bekommt so eine DLL her?
Gibt es dazu auch eine Anleitung. Muss mein Projekt nächste Woche abgegeben und habe jetzt
ein echtes Problem.
Kannst Du mir da helfen?
Danke
Steffen
Anleitung
30.08.2008 13:34:46
SteffenS
Danke für den Link,
hast Du eventuell noch einen Link für eine Anleitung. Wie gesagt mit DLL´s kenn ich mich (noch) gar net aus.
Danke Dir
Steffen
AW: hm komisch dabei
30.08.2008 14:48:23
Tino
Hallo,
ich muss nochmal nachfragen,
existiert der Ordner mit dem Namen 1 bei Dir, wo die Dateien entpackt werden sollen?
In welcher Form liegt bei Dir ein Schreibschutz vor, sind die Zipdatei Passwortgeschützt oder ist der Ordner bzw. die Datei Schreibgeschützt?
Hast du es mal mit ungeschützten Dateien oder Ordnern versucht?
Gruß Tino

www.VBA-Excel.de


also+DLL Registrierung
30.08.2008 15:06:27
SteffenS
Die Datei im Quellverzeichnis ist ungschützt.
Windows legt beim unzippen ja ein Temp Verzeichnis an. Aufgrund des Fehlers wird dieses nicht geleert.
Schaue ich nun in das Verzeichnis so sind dort alle zu entpackenden Dateien drin. Diese haben aber das Attribut Schreibgeschützt.
Wegen der DLL Geschichte habe ich nun was gefunden. Nur TRickst mich dort Vista wieder aus.
Denn ich kann die DLL nicht per FileCopy ins system32 Verzeichnis kopieren (Sicherheitsabfrage)
Will ich die Datei dann über VBA registrieren geht das auch nicht.
Welchen Weg gibt es die Datei zu kopieren und dann zu registrieren.
Danke Dir
Anzeige
AW: also+DLL Registrierung
30.08.2008 15:19:46
Tino
Hallo,
gehört zwar nicht unbedingt hier her, aber ich hatte anfangs mit Vista auch so meine Probleme.
Irgendwo habe ich dann diesen Artikel gelesen.

Grundlage Vista für volle Rechte:
"Das UAC oder die Benutzerkontensteuerung" deaktivieren.
--> Systemsteuerung öffen,
---> auf Benutzerkonten gehen --> dort siehst den Eintrag
"Benutzerkontensteuerung ein- oder ausschalten"  jetzt auf das LW gehen, wo Vista installiert ist, --> rechtsklick drauf
und auf -->"Eigenschaften" und "Sicherheit" gehen. Dort wo die
Gruppen- oder Benutzernamen eingetragen sind, markierst jede nacheinander
und gehst auf Bearbeiten. "Dort machst einen Haken bei: Vollzugriff, rein.
Das Wiederholst, bis du alle durch bist.
!!! Stört euch nicht an den Meldungen, die Vista ausspuckt. Bestätige es nur.!
-----> Jetzt hast du "Volle Kontrolle" und bist der ADMINISTRATOR.


Ob dies hilft kann ich aber auch nicht sagen.
Habe auch mal die Suche über mein C: Laufwerk laufen lassen, einen Temp Ortner mit diesen Zip Dateien kann ich nicht finden.
Im Ordner …Windows\Recent sind nur ein bar Verknüpfungen zu finden?
Gruß Tino

www.VBA-Excel.de


Anzeige
AW: also+DLL Registrierung
30.08.2008 15:30:33
Tino
Hallo,
ich vermute mal das liegt aber daran, dass ich den PowerArchiver auf meinem System verwende!
Da kann ich wohl nicht weiterhelfen.
Gruß Tino
AW: hm komisch dabei
30.08.2008 12:37:07
Nepumuk
Hallo Steffen,
das Shell-Objekt verlangt Parameter vom Typ Variant/String. Entweder die Variablen als Variant deklarieren, oder die Methode so aufrufen:
oApp.Namespace((path_system)).CopyHere oApp.Namespace((DefPath)).items

Damit bin ich auch schon mehrfach auf die Nase gefallen. ;-)
Gruß
Nepumuk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige