Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Wetterdaten aus dem Web importieren in Form einer Zip
#11
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
Zitieren
#12
Hallo zusammen. Ich konnte mein Problem jetzt selber lösen. Danke trotzdem falls sich jemand darüber gedanken gemacht hat!
Zitieren
Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein völlig kostenloses und unverbindliches Angebot innerhalb weniger Stunden.
   Anfrage direkt per Online-Formular
oder per E-Mail an anfrage@excel-inside.de




Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein völlig kostenloses und unverbindliches Angebot innerhalb weniger Stunden.
   Anfrage direkt per Online-Formular
oder per E-Mail an anfrage@excel-inside.de


Powerd and supported by Excel-InsideSolutions