Clever-Excel-Forum

Normale Version: Rar-Dateien mittels VBA entpacken
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo,

ich entpacke auf meinem Computer oft rar-Dateien. Dazu benutze ich die Software WinRar.

Gibt es eine Möglichkeit mittels VBA diese Software so zu steuern, dass ich dies mittels

eines CommandButtons auf einer UserForm erledigen kann?

Ich denke da an Befehle wie Shell etc.
Hallöchen,

ja, ich denke schon.

Öffne mal ein cmd-Fenster, gib die entsprechenden Befehle ein, z.B. nur das entpacken oder vorher noch einen Verzeichniswechsel oder ... Wenns funktioniert hat, dann poste das hier und wir schauen es uns an Smile
Hallo Andre,

ja es müßte auf jeden Fall gehen.
nehme ich meine cmd.exe und kopiere sie ins Verzeichnis wo unrar liegt gehts.
unrar liegt dort:
C:\Program Files\WinRAR 3.61 Multi>
Ich brauch dann nur noch den Befehl:

unrar.exe e C:\Z\Test.rar

nachdem Prompt in der cmd.exe eingeben und die Datei wird in das aktuelle Verzeichnis also da wo unrar liegt entpackt.

Der Einbau in VBA hingegen:

Shell "Cmd /c""C:\Program Files\WinRAR 3.61 Multi>unrar.exe e C:\Z\Test.rar"""

ist bislang erfolglos.
Hallöchen,

erst mal nur zu Fehlern im geposteten String.

Multi>unrar

Hier musst Du das Größerzeichen durch einen Backslash ersetzen

unrar.exe e

wenn e ein Parameter von unrar ist, dann eventuell mit einem Minus davor oder einem Schrägstrich. Asonsten ist das sicher zu viel

Dann entweder in Klammern, z.B. Call Shell(...)
oder mit Rückgabewert

retVal = Shell(...)


... und cmd /c muss auch nicht unbedingt sein.
Danke für deine Tipps,

aber leider funktioniert es immer noch nicht:


'No: Call Shell("cmd /c ""C:\Program Files\WinRAR 3.61 Multi\unrar.exe /e C:\Z\Test.rar")
'No: Call Shell("cmd /c ""C:\Program Files\WinRAR 3.61 Multi\unrar.exe -e C:\Z\Test.rar")
'No: Call Shell("C:\Program Files\WinRAR 3.61 Multi\unrar.exe -e C:\Z\Test.rar")
'No: Call Shell("C:\Program Files\WinRAR 3.61 Multi\unrar.exe /e C:\Z\Test.rar")
Eigentlich müßte der Fehler hier liegen:

Call Shell("C:\Program Files\WinRAR 3.61 Multi\unrar.exe")

denn da tut sich nichts. Ganz im Gegensatz dazu, wenn ich

die cmd.exe in diesem Verzeichnis habe und dann unrar.exe aufrufe.

Dann erscheinen nämlich alle Optionen und Beschreibungen die unrar so bietet.
Hallo,

vielleicht klappt es so:
  Shell "C:\Program Files\WinRAR 3.61 Multi\unrar.exe ""-e C:\Z\Test.rar"""
Gruß Uwe
Hallo Uwe,

leider wohl nicht. Was ich bisher noch versucht habe, du kannst die unrar.exe zusammen mit der cmd.exe in irgendein Verzeichnis packen,
dann die cmd.exe starten, den unrar Befehl samt zu entpackenden Dateipfad eingeben. Das geht. Aber kein Aufruf über Shell bzw. VBA.
Muss man leider bisher von Hand machen.
Hallöchen Santana,

ich denke auch, Du bist Deinen Anführungszeichen untreu geworden. Bei Leerzeichen im String wird dann mal schon versucht, den Teil vor dem ersten als Programm auszuführen. Das erste Leerzeichen steht nach c:\Program
Hallo,

zunächst einmal vielen Dank lieber Andre, lieber Uwe für eure Hilfe.
Das Entpacken selbst ist mit dem von Uwe angegebenen Befehl sowohl mit unrar.exe
als auch mit dem Konkurrenzprodukt 7-Zip (hier 7z.Exe) erfolgreich.
vgl. auch:

https://praxistipps.chip.de/winrar-die-d...iven_32638

Sub Kuwer_Extract()

'Mittels winrar durch unrar.exe
Shell "cmd /c""C:\Users\Administrator\Downloads\Z\unrar.exe e C:\Users\Administrator\Downloads\Z\Test.rar"""

'WinRar-Alternative: 7-Zip Die Datei 7z.exe muss im Verzeichnis/Ordner  der zu entpackenden rar Datei stehen!
'Entpacken durch 7z.exe
Shell "cmd /c""C:\Users\Administrator\Downloads\Z\7z.exe e C:\Users\Administrator\Downloads\Z\Test.rar"""

End Sub

Das Problem: Ich kann machen was ich will, die Test.rar wird zwar entpackt, aber
nicht in dem von mir gewünschen Verzeichnis wo die Test.rar selbst steht.

Entpackt wird immer nach:
C:\Users\Adminstrator\Documents\

Was kann man da machen?
Seiten: 1 2 3