Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 VBA comment utiliser "contient" ?

Attila451

XLDnaute Occasionnel
Bonjour,
J'ai une instruction dans une macro qui va supprimer le fichier téléchargé nommé Export_SUIVI_CD.xls pour qu'au prochain téléchargement, il garde le même nom et ne devienne pas Export_SUIVI_CD (2).xls, Export_SUIVI_CD (3).xls, Export_SUIVI_CD (4).xls, etc...
J'utilise
Kill ("C:\Users\" & util & "\Downloads\Export_SUIVI_CDE.xls")

Je ne sais pas pour quelle raison (notre informatique étant en congé), le téléchargement des fichiers au lieu d'être Export_SUIVI_CDE.xls devient Export_SUIVI_CDE - 2023-12-26T111948.483.xls et le nom change.

Je cherche donc à supprimer le fichier téléchargé qui commencerait par Export_SUIVI_CDE - 2023-12-26T111948.483.xls mais je ne sais pas comment le traduire.
J'ai essayé des combinaisons du style : Kill ("C:\Users\" & util & "\Downloads\"*"Export_SUIVI_CDE"*".xls" mais ça ne fonctionne pas.

Merci d'avance pour votre précieuse aide !
 
Solution
re
Bonjour
ben c'est simple
tu fait un dir dessus pour avoir le nom complet avec une partie du nom recherché
VB:
Dim chemin$,partfichier$,fichier$
chemin ="C:\Users\" & util & "\"'ne pas oublier ce slach a la fin
partfichier="Export_SUIVI_CDE"
fichier=dir (chemin & partfichier &"*.*")
if fichier<>"" then kill chemin & fichier
voila

Dranreb

XLDnaute Barbatruc
Bonjour.
Les "*" ne sont compris comme caractères génériques que par la fonction Dir. Utilisez donc celle ci pour récupérer le nom complet du fichier que vous pourrez ensuite spécifier au Kill, concaténé au chemin.
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour
ben c'est simple
tu fait un dir dessus pour avoir le nom complet avec une partie du nom recherché
VB:
Dim chemin$,partfichier$,fichier$
chemin ="C:\Users\" & util & "\"'ne pas oublier ce slach a la fin
partfichier="Export_SUIVI_CDE"
fichier=dir (chemin & partfichier &"*.*")
if fichier<>"" then kill chemin & fichier
voila
 

Phil69970

XLDnaute Barbatruc
Re

Merci pour le retour mais le pb est que la fin du fichier change à chaque nouveau téléchargement.

Et bien on s'en fout car si tu lis et comprends le code qu j'ai mis tu verras que je supprime la fin de ton fichier qui correspond à la date + l'heure .

Essaye ceci
Kill ("C:\Users\" & util & "\Downloads\" & Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) - 27 )& ".xls")
 

Attila451

XLDnaute Occasionnel
Bonjour, je m'excuse de vous donner l'impression d'expliquer la physique nucléaire à une huître mais si j'avais compris le code, je n'aurais pas re posé la question. Donc non, je n'ai pas compris.

==> " & util & " : pour pouvoir supprime par utilisateur.

Pour simplifier, le chemin est:
"C:\Users\ami\Downloads\ + le nom du fichier qui varie mais commence toujours de la même manière

Un grand merci
 

Attila451

XLDnaute Occasionnel
Re, désolé, non ça ne fonctionne pas.

Kill ("C:\Users\" & Application.UserName & "\Downloads\" & Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) - 27) & ".xls")

Par contre, le fichier à supprimer n'est pas celui sur lequel est la macro. J'ai un fichier A sur lequel j'ai la macro qui va chercher des infos sur un fichier téléchargé B, ce fichier B sera re - téléchargé X fois.

C'est ce fichier B qui sort avec une extension qui varie mais qui garde toujours le même début.
Avant, quand le fichier B était téléchargé une première fois, j'allais le supprimer de suite après en sachant qu'il s'appelait Export_SUIVI_CDE.
Mais maintenant, il se télécharge avec des extensions qui ne sont jamais les mêmes.

Merci
 

Dranreb

XLDnaute Barbatruc
Version plus étoffée :
VB:
Option Explicit
Sub Test()
   Dim Chemin As String, NomFic As String
   Chemin = "C:\Users\" & Application.UserName & "\Downloads"
   Const Masque = "Export_SUIVI_CDE*"
   On Error Resume Next
   ChDrive Chemin: ChDir Chemin
   If Err Then MsgBox "Impossible d'accéder à """ & Chemin & """." _
      & vbLf & Err.Description, vbCritical: Exit Sub
   NomFic = Dir(Masque)
   If NomFic = "" Then MsgBox "Il n'existe aucun de fichier de la forme """ & Masque & """" _
      & vbLf & "sur """ & CurDir & """.", vbCritical: Exit Sub
   Do
      If MsgBox("Supprimer """ & NomFic & """ sur" & vbLf & CurDir _
         & " ?", vbInformation + vbYesNo) = vbYes Then
         Err.Clear: Kill NomFic
         If Err Then MsgBox "Kill """ & NomFic & """ => Err. " & Err _
            & vbLf & Err.Description, vbExclamation
         End If
      NomFic = Dir: Loop Until NomFic = ""
   End Sub
 

Attila451

XLDnaute Occasionnel
Bonjour, merci beaucoup pour vos réponses.

En reprenant également l'exemple de patrickToulon => toulonaiiiiis, alleeeez, alleeeeez, alleeeeez !!!!

J'ai également celle ci qui fonctionne:

Sub SuprFichier()

Dim chemin$, partfichier$, fichier$
chemin = "C:\Users\ami\Downloads\" 'ne pas oublier ce slach a la fin
partfichier = "export_DOSSIER_COLIS ("
fichier = Dir(chemin & partfichier & "*.*")
While fichier <> ""
Kill chemin & fichier
fichier = Dir(chemin & partfichier & "*.*")
Wend

End Sub
 

Discussions similaires

Réponses
22
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…