Dézipper 1 fichier

Bonjour à Toutes et Tous,

Nouveau sur le forum et n'étant pas informaticien, je passe ma retraite à bidouiller avec VBA Excel (passe-temps comme un autre)

Ayant plusieurs petites vidéos et photos zippées dans différentes archives, j'avais imaginé retrouver une vidéo à partir d'une chaîne de caractères. Pour cela j'ai fait un petit classeur d'essai qui m'ouvre une archive déterminée mais je n'arrive pas à copier le fichier vers un autre répertoire. J'ai cherché sans succès sur internet (j'y ai trouvé d'ailleurs la méthode d'ouverture de l'archive mais pas la suite) Quelqu'un pourrait-il m'aider?

P.J. mon classeur d'essai: TrouvinZip1.xlsm

Merci

Phil972

25trouvinzip1.xlsm (16.71 Ko)

Bonsoir,

ci-jointe proposition

50trouvinzip2.xlsm (16.29 Ko)

Bonsoir Thev,

Je viens de rentrer chez moi, et découvrir le classeur modifié. Pour moi c'est déjà une bonne approche cependant j'ai une archive de photos sur les pays de l'ex Yougoslavie comportant plus de 700 photos. Là ça revient à copier les 700 photos puis éliminer par un moyen quelconque celles qui ne m'intéresse pas.

Ce que j'aurai voulu : c'est copier uniquement celles qui comporte la chaîne Dubrovnik par exemple. Moi je vois bien un truc mais il faut d'abord copier l'archive complète ce qui prend pas mal de temps.

Merci pour votre travail et si vous avez une idée sur le filtrage, je suis preneur...

Phil972

Bonsoir,

Filtrer avant le dézipage, je ne pense pas que ce soit possible. En revanche, supprimer les photos qui ne vous intéressent pas après copie, c'est bien sûr facilement faisable.

ci-joint exemple

62trouvinzip3.xlsm (19.57 Ko)

C'est bien ce que je pensais...

Encore MERCI

Phil972

voir exemple ci-dessus

Merci pour votre réponse, j'avais fait une chose semblable avec le code suivant

Lo = 0

Nom = Dir(Rd & "\*.*")

On Error Resume Next

Lo = FileLen(Rd & "\" & Nom)

If Lo > 0 Then

MsgBox "Répertoire " & Rd & " non vide!"

End

End If

sh.Namespace(Rd).CopyHere sh.Namespace(NRm).Items

For Each item In sh.Namespace(Rd).Items

Nom = item.Name

P = 0

If UCase(item.Name) = UCase(Nf) Then

item.Name = Nn

Else

P = InStr(1, item.Name, ".")

If P > 0 Then Kill Rd & "\" & Nom 'je m'assure que ce soit bien un fichier et non pas d'un sous répertoire

End If

Next item

Merci encore

phil972 a écrit :

sh.Namespace(Rd).CopyHere sh.Namespace(NRm).Items

Attention! Pour le dézipage, il faut utiliser la fonction ".items()" et non la propriété ".items"

sh.Namespace(Rd).CopyHere sh.Namespace(NRm).Items()

Merci, il est vrai que je ne fais pas trop la différence ; je ne suis pas informaticien j'ai appris à "bidouiller" lors d'un arrêt maladie prolongé (accident cardiaque)

Rechercher des sujets similaires à "dezipper fichier"