Hola Kl
lo primero lo siento por poner en el post tu nombre
segundo lo siento por no poder responder el post que puse hace tiempo por
que tube muchisimo trabajo y no me pude poner en el PC.
tercero muchas gracias por la ayuda dada en el algunas cosas si que
funcionaron pero otras no ya te comento.
te pongo el post por si no te acuerdas para que no lo andes buscando.
al final te pongo las dudas.
cuarto lo siento por las esplicaciones no soy muy bueno esplicando las cosas
Hola Daniel,
"daniel" <daniel_mozoncillo@yahoo.es> wrote in message
news:OLNXALT0HHA.5408@TK2MSFTNGP02.phx.gbl...
Hola a todos
1)sabeis como puedo descomprimir un archivo .rar o .zip desde una macro
en una carpeta en concreto.
2) si se puede que en un listbox sin descomprimir los archivos me los
muestre en este
como hace el programa winzip o winrar y si hago doble click en el listbox
me abra el archivo seleccionado.
3) otra macro para que si el archivo tiene contraseña muestre un inputbox
y se puedea escribir en este la contraseña y luego poder descomprimir los
archivos
Los puntos 1) y 2) estan aqui:
http://www.rondebruin.nl/unzip.htm
Saludos,
KL
DUDAS
las opciones de descomprimir me las hace perfectamente
pero las de comprimir no y no me da ningun tipo de mensaje de error
algunas veces se queda muchisimo tiempo el VBA como pensando aunque sea un
archivo de 1kb.
este es el codigo que se queda parado
'*************************************************************************************************
Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, _
lpExitCode As Long) As Long
Public Const PROCESS_QUERY_INFORMATION = &H400
Public Const STILL_ACTIVE = &H103
Public Sub ShellAndWait(ByVal PathName As String, Optional WindowState)
Dim hProg As Long
Dim hProcess As Long, ExitCode As Long
'fill in the missing parameter and execute the program
If IsMissing(WindowState) Then WindowState = 1
hProg = Shell(PathName, WindowState)
'hProg is a "process ID under Win32. To get the process handle:
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, hProg)
Do
'populate Exitcode variable
GetExitCodeProcess hProcess, ExitCode
DoEvents
Loop While ExitCode = STILL_ACTIVE
End Sub
Sub UnZip_ZipFile_1()
Dim PathWinZip As String, FileNameZip As String
Dim ShellStr As String, FolderName As String
PathWinZip = "C:\Archivos de programa\WinZip\"
'This will check if this is the path where WinZip is installed.
If Dir(PathWinZip & "winzip32.exe") = "" Then
MsgBox "Please find your copy of winzip32.exe and try again"
Exit Sub
End If
FileNameZip = "C:\Data\Nuevo Archivo WinZip.zip"
FolderName = "C:\Data\"
'Unzip the zip file in the folder FolderName
ShellStr = PathWinZip & "Winzip32 -min -e" _
& " " & Chr(34) & FileNameZip & Chr(34) _
& " " & Chr(34) & FolderName & Chr(34)
ShellAndWait ShellStr, vbHide
MsgBox "Look in " & FolderName & " for extracted files"
End Sub
lo curioso es que en este otro codigo en la ventana que aparece no me
muestra los archivos winzip e probado los winrar y si aparecen pero no
funciona el codigo.
Sub UnZip_ZipFile_2()
Dim PathWinZip As String, FolderName As String
Dim ShellStr As String, strDate As String, Path As String
Dim FileNameZip As Variant, FSO As Object
PathWinZip = "C:\Archivos de programa\WinZip\"
If Dir(PathWinZip & "winzip32.exe") = "" Then
MsgBox "Please find your copy of winzip32.exe and try again"
Exit Sub
End If
strDate = Format(Now, " dd-mm-yy h-mm-ss")
FileNameZip = Application.GetOpenFilename(filefilter:="Zip Files,
*.zip")
If FileNameZip = False Then
'do nothing
Else
Path = Left(FileNameZip, Len(FileNameZip) - Len(Dir(FileNameZip)))
FolderName = Path & Format(Now, "dd-mm-yy h-mm-ss")
'Create a folder with a date/time stamp
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FolderExists(FolderName) Then
FSO.CreateFolder FolderName
'Unzip the zip file in the folder FolderName
ShellStr = PathWinZip & "Winzip32 -min -e" _
& " " & Chr(34) & FileNameZip & Chr(34) _
& " " & Chr(34) & FolderName & Chr(34)
ShellAndWait ShellStr, vbHide
MsgBox "Look in " & FolderName & " for extracted files"
Else
MsgBox "The folder already exist"
End If
End If
End Sub
lo unico que necesito es que en un textbox1 tengo la ruta completa de un
archivo y luego con un comandbutton lo comprima en una carpeta que esta en
el textbox2.
otra como seria para no tener que poner la ruta del .exe de winzip y que en
el ordenador que este la busque directamente.
todo esto tambien se podria hacer con winrar.
un saludo y muchisimas gracias
Daniel
Leer las respuestas