Insérer un fichier en pièce jointe dont on ne connaît qu'une partie du nom

Pimousse17

XLDnaute Nouveau
Bonjour,
Je cherche à insérer un fichier en pièce jointe dans un email mais en ne connaissant qu'une partie du nom du fichier.
J'ai cherché sur plusieurs discussion où il apparaît qu'en insérant "*" on remplace les caractères manquants mais sans succès sur mon code pour l'instant: j'ai un message indiquant : "Nom de fichier ou de répertoire invalide"

Le fichier se termine par _Descriptif.pdf
Merci de votre aide, voilà mon code :

Code :
Sub EnvoieMail_Descriptif()
'###### en cours de création #####'
'Macro qui crée un nouveau email pour envoie d'une ou plusieurs fiches contacts
'Définit le chemin d'accès jusqu'au fichier à mettre en pièce jointe
EmplacementFichier = Sheets("Fiche_contact").Range("W4").Value & "*_Descriptif.pdf"
'Affiche un message si aucun emplacement dans la BDD Vendeur (Colonne AO) n'a été précisé
'Envoie par défaut un mail sans pièce jointe
If Sheets("Fiche_contact").Range("W4").Value = "" Then
Reponse = MsgBox(Document & " Pas d'emplacement précisé dans BDD Vendeur Col AO", 0) = vbCancel
EnvoieMail
Else:
'Déclenche l'ouverture d'un nouveau email
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
'Définie la zone où se situe le texte du corps du mail sur le fichier excel
For lig = 23 To 42
For col = 6 To 6
mytx = mytx & Sheets("Program").Cells(lig, col) & " "
Next
mytx = mytx & vbCr
Next
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = [Fiche_contact!W2] 'adresse destinataire
.Subject = ("Contact client") 'ici le sujet
.Body = mytx 'ici le corps du mail
.Attachments.Add EmplacementFichier 'ici la pièce jointe
.Display '.Display /Send : Display correspond à l'affichage du message / Send demande un envoie direct
End With
End If
End Sub
Code\

Merci d'avance
 
C

Compte Supprimé 979

Guest
Re : Insérer un fichier en pièce jointe dont on ne connaît qu'une partie du nom

Bonjour Pimousse17,

Il suffit d'utiliser la fonction DIR()

Je n'ai pas regardé tout ton code, mais voilà ce que ça pourrait donner
VB:
Sub EnvoieMail_Descriptif()
  Dim NomFic As String, EmplacementFichier
  'Macro qui crée un nouveau email pour envoie d'une ou plusieurs fiches contacts
  'Définit le chemin d'accès jusqu'au fichier à mettre en pièce jointe
  EmplacementFichier = Sheets("Fiche_contact").Range("W4").Value
  If Right(EmplacementFichier, 1) <> "\" Then EmplacementFichier = EmplacementFichier & "\"
  ' Récupérer le nom du fichier en entier
  NomFic = Dir(EmplacementFichier & "*_Descriptif.pdf")
  'Affiche un message si aucun emplacement dans la BDD Vendeur (Colonne AO) n'a été précisé
  'Envoie par défaut un mail sans pièce jointe
  If Sheets("Fiche_contact").Range("W4").Value = "" Then
    Reponse = MsgBox(Document & " Pas d'emplacement précisé dans BDD Vendeur Col AO", 0) = vbCancel
    EnvoieMail
  Else:
    'Déclenche l'ouverture d'un nouveau email
    Dim ol As New Outlook.Application
    Dim olmail As MailItem
    Dim CurrFile As String
    'Définie la zone où se situe le texte du corps du mail sur le fichier excel
    For lig = 23 To 42
      For col = 6 To 6
        mytx = mytx & Sheets("Program").Cells(lig, col) & " "
      Next
      mytx = mytx & vbCr
    Next
    Set ol = New Outlook.Application
    Set olmail = ol.CreateItem(olMailItem)
    With olmail
      .To = [Fiche_contact!W2]  'adresse destinataire
      .Subject = ("Contact client")  'ici le sujet
      .Body = mytx  'ici le corps du mail
      No
      .Attachments.Add EmplacementFichier & NomFic  'ici la pièce jointe
      .Display  '.Display /Send : Display correspond à l'affichage du message / Send demande un envoie direct
    End With
  End If
End Sub

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 109
Messages
2 085 386
Membres
102 880
dernier inscrit
ADEL N