Hallo Zusammen, Danke nochmal für all die Hilfe!
Ich bin jetzt soweit, dass ich Problemlos Dateien downloaden kann. Der nächste Schritt wäre es die Zip datei auch per Makro zu entpacken. Ich habe dazu sehr viele verschiedene Codes im Internet gefunden, doch für mich noch keine zufriedenstellende Lösung erstellen können.
Mit dem Folgenden Code kann ich die Datei entpacken, jedoch wird (für mich wahllos ein Ordner gewählt, den ich gern selber auswählen würde)
Sub Packen()
Shell ("C:\Programme\WinRAR\WinRAR.exe e ""C:\HSNR\ELMAR\Wärmenetz\Test Ordner\MeineDatei.zip""")
End Sub
Oft wird im Internet vorgeschlagen einfach einen Zielordner anzugeben aber dann passiert bei der Ausführung garnichts. Bzw. es wird ein cmd Fenster für eine Sekunde geöffnet, der sich dann wieder schließt ohne die Dateie entpackt zu haben.
Sub Extraction_ins_gewünschte_Verzeichnis()
Dim str1$, str2$, str3$, str4$
str1 = "C:\Program Files\WinRar\"
str2 = "C:\HSNR\ELMAR\Wärmenetz\Test Ordner\MeineDatei.zip"
str3 = "C:\HSNR\ELMAR\Wärmenetz\Test Ordner\"
str4 = Shell(Chr(34) & str1 & "UnRar.exe" & Chr(34) & " e " & Chr(34) & str2 & Chr(34) & " " & Chr(34) & str3 & Chr(34), vbNormalFocus)
End Sub
Das nächste Beispiel führt zu einem Fehler, den ich nicht zu beheben weiß.
Option Explicit
' Konstante für die KONSOLENANWENDUNG 7Zip
' Keine Installation erforderlich
' Pfade ANPASSEN!!!!!!!!
Const strZip As String = "C:\Temp\Zip\7za.exe" (Hier habe ich auch schon die Winrar.exe ausprobiert, jedoch auch vergebens)
' Pfad in dem die 7z-Dateien UND Zip-Dateien sind
Const strPathQ As String = "C:\HSNR\ELMAR\Wärmenetz\Test Ordner"
' Pfad in den die 7z-Dateien UND Zip-Dateien
' gegebenenfalls entpackt werden sollen
Const strPathZ As String = "C:\HSNR\ELMAR\Wärmenetz\Test Ordner"
'--------------------------------------------------------------------------
' Module : Modul1
' Author : Case (Ralf Stolzenburg)
' Date : 14.08.2013
' Purpose : 7-Zip alle Dateien (7z und Zip) eines Ordners entpacken...
'--------------------------------------------------------------------------
Public Sub Main()
Dim strFileName As String
Dim strArg As String
On Error GoTo Fin
strFileName = Dir$(strPathQ & "*.*z*")
' Schleife über alle 7z- UND Zip-Dateien
Do While strFileName <> ""
' Entpackt alle 7z-Dateien UND Zip-Dateien in den angegebenen Ordner
strArg = strZip & " " & strPathQ & strFileName & " -y -o" & strPathZ
' Entpackt alle 7z-Dateien UND Zip-Dateien in den aktuellen Ordner
'strArg = strZip & " e " & strPathQ & strFileName & " -y"
' Entpackt alle 7z-Dateien UND Zip-Dateien in den aktuellen Ordner -
' jede 7z-Datei in einen Ordner. Entspricht 7-Zip - Entpacken nach "*\"
' Der aktuelle Ordner (CurDir) kann auch vorher noch eingestellt werden
' -y bedeutet KEINE Nachfrage, wenn Dateien schon vorhanden sind
'strArg = strZip & " x " & strPathQ & strFileName & " -y -o*"
' Warten bis entpacken erledigt ist
ShellAndWait strArg
' Nächster Dateiname
strFileName = Dir$()
Loop
Fin:
' Wenn die Fehlernummer NICHT 0 ist, dann gib die Fehlernummer
' und die Fehlerbeschreibung aus
If Err.Number <> 0 Then MsgBox "Fehler: " & _
Err.Number & " " & Err.Description
End Sub
'--------------------------------------------------------------------------
' Module : Modul1
' Procedure : ShellAndWait
' Author : Case (Ralf Stolzenburg)
' Date : 14.08.2013
' Purpose : ShellAndWait mit ausgeblendetem Dosfenster...
'--------------------------------------------------------------------------
Private Sub ShellAndWait(ByVal strPathName As String)
Dim WshShell As Object
On Error GoTo Fin
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run strPathName, 0, True
Fin:
Set WshShell = Nothing
If Err.Number <> 0 Then MsgBox "Error: " & _
Err.Number & " " & Err.Description
End Sub
Ein letztes Beipsiel, bei dem das entpacken funktioniert jedoch wieder nicht in den angegebenen Ordner im Code sondern in den gleichen Ordner wie bei dem anderen Code, bei dem ich mir nicht erklären kann wieso er genutzt wird, denn dieser Ordner wurde auch von mir irgendwann erstellt sprich es ist nicht C:\Temp oder ähnliches. Es ist auch nicht der letzte Ordner in den man das letzte mal etwas hinein extrahiert hat.
Sub entpacken_mit_7z()
strProgramm = "C:\Programme\WinRAR\WinRAR.exe" 'anpassen
strArchiv = "C:\HSNR\ELMAR\Wärmenetz\Test Ordner\MeineDatei.zip" 'anpassen
strOrdner = "C:\HSNR\ELMAR\Wärmenetz\" 'anpassen
Set fso = CreateObject("Scripting.FileSystemObject")
strProgramm = fso.GetFile(strProgramm).ShortPath
strArchiv = fso.GetFile(strArchiv).ShortPath
strOrdner = fso.GetFolder(strOrdner).ShortPath
Shell strProgramm & " x " & strArchiv & " -o" & strOrdner, vbNormalFocus
End Sub
Ich hoffe jemand kann mir Helfen. Wenn das Entpacken geschafft ich am liebsten die Entpackte Datei in .txt per Makro umbenenne und daraufhin in ein Arbeitsblatt einfügen. Dies klappt händisch jedoch wäre es schön das ganze automatisiert zu haben.
Vielen Dank für jegliche Hilfe im Voraus!
Niko
Ich bin jetzt soweit, dass ich Problemlos Dateien downloaden kann. Der nächste Schritt wäre es die Zip datei auch per Makro zu entpacken. Ich habe dazu sehr viele verschiedene Codes im Internet gefunden, doch für mich noch keine zufriedenstellende Lösung erstellen können.
Mit dem Folgenden Code kann ich die Datei entpacken, jedoch wird (für mich wahllos ein Ordner gewählt, den ich gern selber auswählen würde)
Sub Packen()
Shell ("C:\Programme\WinRAR\WinRAR.exe e ""C:\HSNR\ELMAR\Wärmenetz\Test Ordner\MeineDatei.zip""")
End Sub
Oft wird im Internet vorgeschlagen einfach einen Zielordner anzugeben aber dann passiert bei der Ausführung garnichts. Bzw. es wird ein cmd Fenster für eine Sekunde geöffnet, der sich dann wieder schließt ohne die Dateie entpackt zu haben.
Sub Extraction_ins_gewünschte_Verzeichnis()
Dim str1$, str2$, str3$, str4$
str1 = "C:\Program Files\WinRar\"
str2 = "C:\HSNR\ELMAR\Wärmenetz\Test Ordner\MeineDatei.zip"
str3 = "C:\HSNR\ELMAR\Wärmenetz\Test Ordner\"
str4 = Shell(Chr(34) & str1 & "UnRar.exe" & Chr(34) & " e " & Chr(34) & str2 & Chr(34) & " " & Chr(34) & str3 & Chr(34), vbNormalFocus)
End Sub
Das nächste Beispiel führt zu einem Fehler, den ich nicht zu beheben weiß.
Option Explicit
' Konstante für die KONSOLENANWENDUNG 7Zip
' Keine Installation erforderlich
' Pfade ANPASSEN!!!!!!!!
Const strZip As String = "C:\Temp\Zip\7za.exe" (Hier habe ich auch schon die Winrar.exe ausprobiert, jedoch auch vergebens)
' Pfad in dem die 7z-Dateien UND Zip-Dateien sind
Const strPathQ As String = "C:\HSNR\ELMAR\Wärmenetz\Test Ordner"
' Pfad in den die 7z-Dateien UND Zip-Dateien
' gegebenenfalls entpackt werden sollen
Const strPathZ As String = "C:\HSNR\ELMAR\Wärmenetz\Test Ordner"
'--------------------------------------------------------------------------
' Module : Modul1
' Author : Case (Ralf Stolzenburg)
' Date : 14.08.2013
' Purpose : 7-Zip alle Dateien (7z und Zip) eines Ordners entpacken...
'--------------------------------------------------------------------------
Public Sub Main()
Dim strFileName As String
Dim strArg As String
On Error GoTo Fin
strFileName = Dir$(strPathQ & "*.*z*")
' Schleife über alle 7z- UND Zip-Dateien
Do While strFileName <> ""
' Entpackt alle 7z-Dateien UND Zip-Dateien in den angegebenen Ordner
strArg = strZip & " " & strPathQ & strFileName & " -y -o" & strPathZ
' Entpackt alle 7z-Dateien UND Zip-Dateien in den aktuellen Ordner
'strArg = strZip & " e " & strPathQ & strFileName & " -y"
' Entpackt alle 7z-Dateien UND Zip-Dateien in den aktuellen Ordner -
' jede 7z-Datei in einen Ordner. Entspricht 7-Zip - Entpacken nach "*\"
' Der aktuelle Ordner (CurDir) kann auch vorher noch eingestellt werden
' -y bedeutet KEINE Nachfrage, wenn Dateien schon vorhanden sind
'strArg = strZip & " x " & strPathQ & strFileName & " -y -o*"
' Warten bis entpacken erledigt ist
ShellAndWait strArg
' Nächster Dateiname
strFileName = Dir$()
Loop
Fin:
' Wenn die Fehlernummer NICHT 0 ist, dann gib die Fehlernummer
' und die Fehlerbeschreibung aus
If Err.Number <> 0 Then MsgBox "Fehler: " & _
Err.Number & " " & Err.Description
End Sub
'--------------------------------------------------------------------------
' Module : Modul1
' Procedure : ShellAndWait
' Author : Case (Ralf Stolzenburg)
' Date : 14.08.2013
' Purpose : ShellAndWait mit ausgeblendetem Dosfenster...
'--------------------------------------------------------------------------
Private Sub ShellAndWait(ByVal strPathName As String)
Dim WshShell As Object
On Error GoTo Fin
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run strPathName, 0, True
Fin:
Set WshShell = Nothing
If Err.Number <> 0 Then MsgBox "Error: " & _
Err.Number & " " & Err.Description
End Sub
Ein letztes Beipsiel, bei dem das entpacken funktioniert jedoch wieder nicht in den angegebenen Ordner im Code sondern in den gleichen Ordner wie bei dem anderen Code, bei dem ich mir nicht erklären kann wieso er genutzt wird, denn dieser Ordner wurde auch von mir irgendwann erstellt sprich es ist nicht C:\Temp oder ähnliches. Es ist auch nicht der letzte Ordner in den man das letzte mal etwas hinein extrahiert hat.
Sub entpacken_mit_7z()
strProgramm = "C:\Programme\WinRAR\WinRAR.exe" 'anpassen
strArchiv = "C:\HSNR\ELMAR\Wärmenetz\Test Ordner\MeineDatei.zip" 'anpassen
strOrdner = "C:\HSNR\ELMAR\Wärmenetz\" 'anpassen
Set fso = CreateObject("Scripting.FileSystemObject")
strProgramm = fso.GetFile(strProgramm).ShortPath
strArchiv = fso.GetFile(strArchiv).ShortPath
strOrdner = fso.GetFolder(strOrdner).ShortPath
Shell strProgramm & " x " & strArchiv & " -o" & strOrdner, vbNormalFocus
End Sub
Ich hoffe jemand kann mir Helfen. Wenn das Entpacken geschafft ich am liebsten die Entpackte Datei in .txt per Makro umbenenne und daraufhin in ein Arbeitsblatt einfügen. Dies klappt händisch jedoch wäre es schön das ganze automatisiert zu haben.
Vielen Dank für jegliche Hilfe im Voraus!
Niko