Interface VBA pour renommer/envoyer fichier

RaiM -  
 RaiM -
Bonjour

Je souhaiterais mettre en place une interface comme celle ci-joint ( http://imageshack.us/photo/my-images/197/baucheformulairecheckli.png ), qui permettrait de renommer le fichier mis en pièce jointe, en fonction des paramètres rentrés dans les différents champs, de la façon suivante :
Champs N°1_Champs N°2_Catégorie_Date_Nom.pdf

En cliquant sur envoyer, ce fichier serait mis en pièce jointe d'un message à destination d'une adresse mail (réception de tous les fichiers), avec comme titre de message « Retour fichiers», et avec ou sans corps de message. Si aucune connexion internet n'est disponible, le message irait dans la boîte d'envoi.

Pourriez-vous m'aiguiller sur les différentes fonctions utiles, car après plusieurs heures de recherches sur internet, je m'égare entre les userform etc...

Par avance, merci ! ; )

Bonne fin d'après midi.

6 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Renommer un fichier en pièce jointe n'est pas possible, tu doit d'abord le copier sous un autre nom dans un répertoire temporaire par exemple.
    Et éventuellement le supprimer après envoi.
    Pour ça voir CopyFile.
    Pour le supprimer voir Kill
    Pour envoyer un mail il y a un tas d'exemple sur la toile.
    A+
    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    NOTE : Je ne répond pas aux MP pour les questions techniques.
    1
    1. RaiM
       
      Bonjour,

      tout d'abord désolé pour le retard de réponse.
      Les éléments dont tu me parles plus haut m'aident à éclaircir mon problème, j'ai trouvé sur l'aide de visual basic une procédure pour faire un copyfile directement dans "Inbox" de Outlook. Cependant, comment faire en sorte que les paramètres rentrés dans les champs de ma "fenêtre" soient pris en compte dans le nom du double de mon fichier ?

      Merci encore.
      Bonne journée !
      0
  2. RaiM
     
    Bonjour,

    j'ai pris exemple sur ton code pour modifier quelques variables invalides, telles que:

            appOutLook = New Microsoft.Office.Interop.Outlook.Application 'définition d'appOutLook
            outlookEmail = appOutLook.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem) 'définition d'outlookEmail


    Cette partie de mon programme est maintenant parfaitement opérationnelle, il faut juste que je click yes pour l'envoi du message, mais ce n'est qu'un léger détail. Qu'entends-tu par utiliser des textbox ? Faire apparaître des box une à une pour rentrer les détails d'envoi ?

    merci de ton aide ;)
    Bonne journée !
    1
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Cependant, comment faire en sorte que les paramètres rentrés dans les champs de ma "fenêtre" soient pris en compte dans le nom du double de mon fichier ?
    Je ne comprend pas ce que tu veux dire.
    0
  4. RaiM
     
    comment faire en sorte que les cases présentées dans mon schéma (sur le premier message), influent sur le nom de mon fichier ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    L'image que tu montre c'est sur une feuille Excel ?
    0
    1. RaiM
       
      non, c'est une image qui représente la fenêtre que je voudrais, une interface utilisateur en quelques sortes
      0
    2. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Beh oui, mais sur quel appli ????
      0
    3. RaiM
       
      Toutes mes excuses, je suis un peu fatigué... sur excel ;)
      0
    4. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Ont avance, sur une feuille ou un UserForm ?
      0
    5. RaiM
       
      un Userform
      0
  7. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Maintenant je pense que c'est ça que tu a besoin..
    'Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro,
    ' Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"
    Sub EnvoiMail()
    Dim ObjOutlook
    Dim oBjMail
       
       Set ObjOutlook = New Outlook.Application
       Set oBjMail = ObjOutlook.CreateItem(olMailItem)
       With oBjMail
            .To = "BoitMail@gmail.com" 'le destinataire
            .Subject = "Ici c'est l'objet, le titre"  'l'objet du mail
            .Body = "Ici le texte du mail "  'le corps du mail ..son contenu
            .Attachments.Add Fichier '"C:\temps\Nomfichier.ppt" ' le chemin + Nomfichier + extention
            .Display 'ont peut supprimer cette ligne pour l'envoyer sans vérification
            .Send
        End With
        
        ObjOutlook.Quit
        Set oBjMail = Nothing
        Set ObjOutlook = Nothing
        
    End Sub

    Tu remplace les données fictive par tes textbox.
    A+
    0