Voilà mon probleme, je recois plein de fichiers xls zippés avec meme mot de
passe.
est ce possible avec une macro de tous les dézipper ?
j'ai trouvé la commande pour dézipper un fichier mais je ne sais pas comment
faire avec un fichier zip protégé :
=> Shell (CheminWinZip & "winzip32.exe -e " & NomArchive & " " & DossDest)
merci pour votre aide
bs
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour BSH77,
Je peux te proposer une "bidouuille de qualité" qui doit être exécuté à partir de l'interface de la feuille de calcul.
Si les fichiers sont déjà dézippés dans le répertoire, la procédure va s'exécuter en écrasant ceux déja présents sans rien demander !
Ce qui complique un peu la tâche, c'est d'arriver à lui faire dézipper les fichiers pour la première fois ou les écraser dans message à l'usager dans la même procédure...Il y a des limites à ce que l'on peut demander à Sendkeys !!!
Malgré la longeur du code, c'est très rapide et tu dois te soucier seulement de la procédure Test(), celle qui faut lancer !
;-))
Amuse-toi bien !
Dans le haut d'un module standard, déclaration des API '------------------------------- 'Declare Type for API call: Private Type OSVERSIONINFO dwOSVersionInfoSize As Long dwMajorVersion As Long dwMinorVersion As Long dwBuildNumber As Long dwPlatformId As Long szCSDVersion As String * 128 End Type
' API declarations:
Private Declare Function GetVersionEx Lib "kernel32" _ Alias "GetVersionExA" _ (lpVersionInformation As OSVERSIONINFO) As Long
Private Declare Sub keybd_event Lib "user32" _ (ByVal bVk As Byte, _ ByVal bScan As Byte, _ ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Function GetKeyboardState Lib "user32" _ (pbKeyState As Byte) As Long
Private Declare Function SetKeyboardState Lib "user32" _ (lppbKeyState As Byte) As Long
' Constant declarations: Const VK_NUMLOCK = &H90
Const KEYEVENTF_EXTENDEDKEY = &H1 Const VER_PLATFORM_WIN32_NT = 2 Const VER_PLATFORM_WIN32_WINDOWS = 1 '-------------------------------------------- Private Sub NumLock() Dim o As OSVERSIONINFO Dim NumLockState As Boolean Dim keys(0 To 255) As Byte
o.dwOSVersionInfoSize = Len(o) GetVersionEx o GetKeyboardState keys(0)
NumLockState = keys(VK_NUMLOCK) If NumLockState <> True Then 'Turn capslock on If o.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then keys(VK_NUMLOCK) = 1 SetKeyboardState keys(0) ElseIf o.dwPlatformId = VER_PLATFORM_WIN32_NT Then keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0 End If Else keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0 End If End Sub
'-------------------------------------------- Sub Dézipper(ByVal NomArchive As String, _ ByVal DossDest As String, ByVal MotDePasse As String)
'-------------------------------------------- Sub test() Dim Archive As String Dim Dest As String Dim MotPasse As String
Archive = "c:denis.zip" Dest = "c:TTT" MotPasse = "denis"
Dézipper Archive, Dest, MotPasse
End Sub '--------------------------------------------
Salutations!
"BSH77" a écrit dans le message de news: Bonjour le forum
Voilà mon probleme, je recois plein de fichiers xls zippés avec meme mot de passe. est ce possible avec une macro de tous les dézipper ? j'ai trouvé la commande pour dézipper un fichier mais je ne sais pas comment faire avec un fichier zip protégé : => Shell (CheminWinZip & "winzip32.exe -e " & NomArchive & " " & DossDest) merci pour votre aide bs
Bonjour BSH77,
Je peux te proposer une "bidouuille de qualité" qui doit être exécuté à partir de l'interface de la feuille de calcul.
Si les fichiers sont déjà dézippés dans le répertoire, la procédure va s'exécuter
en écrasant ceux déja présents sans rien demander !
Ce qui complique un peu la tâche, c'est d'arriver à lui faire dézipper les fichiers
pour la première fois ou les écraser dans message à l'usager dans la même
procédure...Il y a des limites à ce que l'on peut demander à Sendkeys !!!
Malgré la longeur du code, c'est très rapide et tu dois te soucier seulement
de la procédure Test(), celle qui faut lancer !
;-))
Amuse-toi bien !
Dans le haut d'un module standard, déclaration des API
'-------------------------------
'Declare Type for API call:
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
' API declarations:
Private Declare Function GetVersionEx Lib "kernel32" _
Alias "GetVersionExA" _
(lpVersionInformation As OSVERSIONINFO) As Long
Private Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Function GetKeyboardState Lib "user32" _
(pbKeyState As Byte) As Long
Private Declare Function SetKeyboardState Lib "user32" _
(lppbKeyState As Byte) As Long
' Constant declarations:
Const VK_NUMLOCK = &H90
Const KEYEVENTF_EXTENDEDKEY = &H1
Const VER_PLATFORM_WIN32_NT = 2
Const VER_PLATFORM_WIN32_WINDOWS = 1
'--------------------------------------------
Private Sub NumLock()
Dim o As OSVERSIONINFO
Dim NumLockState As Boolean
Dim keys(0 To 255) As Byte
o.dwOSVersionInfoSize = Len(o)
GetVersionEx o
GetKeyboardState keys(0)
NumLockState = keys(VK_NUMLOCK)
If NumLockState <> True Then 'Turn capslock on
If o.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then
keys(VK_NUMLOCK) = 1
SetKeyboardState keys(0)
ElseIf o.dwPlatformId = VER_PLATFORM_WIN32_NT Then
keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
End If
Else
keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
End If
End Sub
'--------------------------------------------
Sub Dézipper(ByVal NomArchive As String, _
ByVal DossDest As String, ByVal MotDePasse As String)
'--------------------------------------------
Sub test()
Dim Archive As String
Dim Dest As String
Dim MotPasse As String
Archive = "c:denis.zip"
Dest = "c:TTT"
MotPasse = "denis"
Dézipper Archive, Dest, MotPasse
End Sub
'--------------------------------------------
Salutations!
"BSH77" <BSH77@discussions.microsoft.com> a écrit dans le message de news: 3A956A63-ECA8-49E2-A74E-5D6628004FE4@microsoft.com...
Bonjour le forum
Voilà mon probleme, je recois plein de fichiers xls zippés avec meme mot de
passe.
est ce possible avec une macro de tous les dézipper ?
j'ai trouvé la commande pour dézipper un fichier mais je ne sais pas comment
faire avec un fichier zip protégé :
=> Shell (CheminWinZip & "winzip32.exe -e " & NomArchive & " " & DossDest)
merci pour votre aide
bs
Je peux te proposer une "bidouuille de qualité" qui doit être exécuté à partir de l'interface de la feuille de calcul.
Si les fichiers sont déjà dézippés dans le répertoire, la procédure va s'exécuter en écrasant ceux déja présents sans rien demander !
Ce qui complique un peu la tâche, c'est d'arriver à lui faire dézipper les fichiers pour la première fois ou les écraser dans message à l'usager dans la même procédure...Il y a des limites à ce que l'on peut demander à Sendkeys !!!
Malgré la longeur du code, c'est très rapide et tu dois te soucier seulement de la procédure Test(), celle qui faut lancer !
;-))
Amuse-toi bien !
Dans le haut d'un module standard, déclaration des API '------------------------------- 'Declare Type for API call: Private Type OSVERSIONINFO dwOSVersionInfoSize As Long dwMajorVersion As Long dwMinorVersion As Long dwBuildNumber As Long dwPlatformId As Long szCSDVersion As String * 128 End Type
' API declarations:
Private Declare Function GetVersionEx Lib "kernel32" _ Alias "GetVersionExA" _ (lpVersionInformation As OSVERSIONINFO) As Long
Private Declare Sub keybd_event Lib "user32" _ (ByVal bVk As Byte, _ ByVal bScan As Byte, _ ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Function GetKeyboardState Lib "user32" _ (pbKeyState As Byte) As Long
Private Declare Function SetKeyboardState Lib "user32" _ (lppbKeyState As Byte) As Long
' Constant declarations: Const VK_NUMLOCK = &H90
Const KEYEVENTF_EXTENDEDKEY = &H1 Const VER_PLATFORM_WIN32_NT = 2 Const VER_PLATFORM_WIN32_WINDOWS = 1 '-------------------------------------------- Private Sub NumLock() Dim o As OSVERSIONINFO Dim NumLockState As Boolean Dim keys(0 To 255) As Byte
o.dwOSVersionInfoSize = Len(o) GetVersionEx o GetKeyboardState keys(0)
NumLockState = keys(VK_NUMLOCK) If NumLockState <> True Then 'Turn capslock on If o.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then keys(VK_NUMLOCK) = 1 SetKeyboardState keys(0) ElseIf o.dwPlatformId = VER_PLATFORM_WIN32_NT Then keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0 End If Else keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0 End If End Sub
'-------------------------------------------- Sub Dézipper(ByVal NomArchive As String, _ ByVal DossDest As String, ByVal MotDePasse As String)
'-------------------------------------------- Sub test() Dim Archive As String Dim Dest As String Dim MotPasse As String
Archive = "c:denis.zip" Dest = "c:TTT" MotPasse = "denis"
Dézipper Archive, Dest, MotPasse
End Sub '--------------------------------------------
Salutations!
"BSH77" a écrit dans le message de news: Bonjour le forum
Voilà mon probleme, je recois plein de fichiers xls zippés avec meme mot de passe. est ce possible avec une macro de tous les dézipper ? j'ai trouvé la commande pour dézipper un fichier mais je ne sais pas comment faire avec un fichier zip protégé : => Shell (CheminWinZip & "winzip32.exe -e " & NomArchive & " " & DossDest) merci pour votre aide bs