Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Rar-Dateien mittels VBA entpacken
#1
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.
Antworten Top
#2
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
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.
Antworten Top
#4
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
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")
Antworten Top
#6
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.
Antworten Top
#7
Hallo,

vielleicht klappt es so:
  Shell "C:\Program Files\WinRAR 3.61 Multi\unrar.exe ""-e C:\Z\Test.rar"""
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • santana
Antworten Top
#8
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.
Antworten Top
#9
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • santana
Antworten Top
#10
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?
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste