Ouvrir un fichier zipé à partir d'une application VBA

Signaler
Messages postés
4
Date d'inscription
lundi 3 octobre 2011
Statut
Membre
Dernière intervention
22 décembre 2011
-
Messages postés
14761
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 janvier 2021
-
Bonjour,
Je débute la programmation...
Je tente de déziper un fichier à partir d'une application sur Visual Studio 2010.
J'utilise la fonction Shell et j'ai Izarc, je n'arrive pas à résoudre mon problème.
Merci pour votre aide.
Voici mon code:

Module Module1

Sub Main()

'
' Déclarations et initialisations des variables locales
'
Dim SousDossierCompresses As String = "C:\Users\William\Documents\Visual Studio 2010\Projet-final"
Dim NomCompletFichier As String = SousDossierCompresses & "\RésultatsMagasins.zip"
'
ShellCode(Commande_Unzip(" e", NomCompletFichier, "C:\Users\William\Documents\Visual Studio 2010\Projet-final", "*"))

Console.Read()
End Sub
Function Commande_Unzip(ByVal Commande As String, _
ByVal NomFichierZip As String, _
ByVal DossierSortie As String, _
ByVal WildCard As String) As String
'
' Déclarations et initialisations des varaibles locales
'
Dim ZipChaine As String = "7z" & Commande & " " & NomFichierZip & " -o" & DossierSortie & " " & WildCard & " -r"
'
'
Debug.WriteLine(ZipChaine)
'
' Valeur retournée
'
Return ZipChaine
'
End Function
Sub ShellCode(ByVal LigneDeCommande As String)
' Déclarations et initialisations des variables locales
'
Dim ID As Integer = Nothing
'
Try
'
' Vérification du contenu de la ligne de commande
' (Ensemble de ligne appellé à disparaître)
'
Console.WriteLine(LigneDeCommande)
'
If LigneDeCommande = Nothing Then
Console.WriteLine("Commande est vide")
End If
'
' Exécution de la ligne de commande
'
ID = Shell(LigneDeCommande, AppWinStyle.NormalFocus, True, -1)
'
' Vérification de la valeur de la variable retournée
' (Ligne appelée à disparaître)
'
Console.WriteLine("ID = " & ID)
'
' Gestion des exceptions
'
Catch ex As ArgumentException
'
Console.WriteLine(ex.Message)
'
Catch ex As FileNotFoundException
'
Console.WriteLine(ex.Message)
Catch ex As NullReferenceException
'
Console.WriteLine(ex.Message)
'
Finally
'
Console.WriteLine(vbCrLf & "Fin du travail effectué à partir de la ligne de commande" & vbCrLf)
'
' Permet de visualiser ce qui s'est affiché sur la console
'
End Try
'
End Sub

End Module

5 réponses

Messages postés
14761
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 janvier 2021
151
Bonjour,

C'est VBA ou du VB.NET, ton titre sème la confusion.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
confusion, oui, mais cette seule ligne :

Dim SousDossierCompresses As String = "C:\Users\William\Documents\Visual Studio 2010\Projet-final"

lève le doute.
outre le 2010 mentionné,

VBA ne sais pas faire

dim a as string = "value"

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
Shell ??

Pourquoi ne codes tu pas plutot en .Net ?

1 - dans les propriétés de ton projet, supprime la reference Microsoft.VisualBasic
2 - Utilises la classe Process (Process.Start(...))

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
4
Date d'inscription
lundi 3 octobre 2011
Statut
Membre
Dernière intervention
22 décembre 2011

Merci pour vos réponses, j'ai trouvé une autre façon de faire.
Messages postés
14761
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 janvier 2021
151
Bonjour,

Afin que cette discussion serve à d'autres personne, il serait utile de dire comment tu as fais.
Pense aussi à mettre "Réponse acceptée" sur le ou les messages qui t'ont aidés.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site