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

wilou07 Messages postés 4 Date d'inscription lundi 3 octobre 2011 Statut Membre Dernière intervention 22 décembre 2011 - 22 déc. 2011 à 12:39
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 - 22 déc. 2011 à 18:41
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

NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
22 déc. 2011 à 12:46
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
22 déc. 2011 à 13:06
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
22 déc. 2011 à 13:08
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
0
wilou07 Messages postés 4 Date d'inscription lundi 3 octobre 2011 Statut Membre Dernière intervention 22 décembre 2011
22 déc. 2011 à 15:28
Merci pour vos réponses, j'ai trouvé une autre façon de faire.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
22 déc. 2011 à 18:41
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
0
Rejoignez-nous