[VBA EXCEL]Piece jointe outlook & textbox

Bonjour,

J'ai un bouton1 qui lorsque je clique dessus me prépare un e-mail. Je souhaiterai que la macro ci-dessous fasse en sorte d'intégré le fichier dont le chemin est donné dans le Textbox1.
J'avais pensé à quelque chose dans ce style : .attachments.add = textbox1.value ou .attachments.add ="sheets("feuil1").range("A1")(la valeur du textbox est recopier dans une feuille de calcul) mais ca ne marche pas. Quelqu'un aurait une idée?

Public Sub envoyer_email()
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String

Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = ("toto")
.Subject = ("Bonjour")
.Body = "Demande à traiter :" & Range("a1") & Chr(10) & Range("a3") & Chr(10) & Range("a4") & Chr(10) & Range("a5") & Chr(10) & Range("a6") & Chr(10) & Range("a7") & Chr(10) & Range("a8").Value
.attachments.add = ???
.Display '
End With
End Sub


Merci !

12 réponses

  1. re:

    La propriété [ .Value ] n'existe pas pour un "textbox"

    il faut utiliser la propriété [ .Text ].

    If (Len(Useform1.textbox1.Text ) > 0) Then
        Pj = Useform1.textbox1.Text 
    End If
    


    Lupin
    1. Bonjour,

      la syntaxe serait :

      .AddAttachment (TextBox1.Text)

      Le TextBox1 doit être connu de la procédure !

      Lupin
      1. Je souhaiterai utiliser la boite de dialog GetOpenFile et renvoyer le nom du fichier selectionner dans un textbox :
        Dim objShell As Object, objFolder As Object, oFolderItem As Object
        Dim Chemin As String

        'Affiche la boîte de dialogue "Ouvrir"
        Chemin = Application.GetOpenFilename("Tous les fichiers (*.*),*.*")

        'On sort si aucun fichier n'aété sélectionné ou si l'utilisateur
        'a cliqué sur le bouton "Annu ler", ou sur la croix de fermeture.

        On Error Resume Next
        Set oFolderItem = objFolder.Items.Item
        Chemin = oFolderItem.Path

        UserForm1.TextBox1 = oFolderItem.Path
        End Sub


        puis un bouton "envoi mail" et intégrer en pièce jointe le fichier dont le chemin est renvoyé dans le textbox.
        .AddAttachment (TextBox1.Text)

        Ca ne marche pas merci de m'aider
    2. Bonjour,

      Exemple type :

      Option Explicit
      
      Sub Ouverture()
      
          Dim Chemin As Variant
      
          'Affiche la boîte de dialogue "Ouvrir"
          Chemin = Application.GetOpenFilename("Tous les fichiers (*.*),*.*")
      
          'On sort si aucun fichier n'a été sélectionné ou si l'utilisateur
          'a cliqué sur le bouton "Annuler", ou sur la croix de fermeture.
      
          If (Chemin <> "") Then
              If (InStr(1, Chemin, "\", vbTextCompare) > 0) Then
                  UserForm1.TextBox1 = Chemin
              End If
          End If
      
      End Sub
      '
      


      Lupin
      1. Super ca marche !Merci Lupin !

        Maintenant j'ai un bouton "envoi mail" et je voudrai intégrer en pièce jointe le fichier dont le chemin est renvoyé dans le textbox.
        Quelque chose dans ce style dans un module "envoi Email"
        .AddAttachment (TextBox1.Text)

        Encore merci !
        1. Lupin j'ai tenté de m'aider de ton message mais je rencontre un problème.
          Ma macro d'envoi d'email est un module, j'ai 3 userforms avec dans chaque des textbox qui sont en liaisons avec un macro : GetOpenfile qui récupère le chemin d'un fichier.

          Voici mon module d'envoi d'email :

          Public Sub envoyer_email()
          Dim ol As New Outlook.Application
          Dim olmail As MailItem
          Dim CurrFile As Object

          Dim Pj As String
          Set ol = New Outlook.Application
          Set olmail = ol.CreateItem(olMailItem)
          Pj = Useform1.textbox1.value ???
          With olmail
          .To = ("svpagf")
          .Subject = ("Demande à traiter")
          .Body = "Demande à traiter :" & Range("a1") & Chr(10) & Range("a3")
          .Display '.Send
          objMail.AddAttachment (Pj)

          End With
          End Sub

          Je pense pas que ce soit ça, si tu peux m'aider, il reste seulement ça à faire !
          merci!
          1. Super ca marche !!! Merci Lupin !
            Voici le code :

            Public Sub envoyer_email()
            Dim ol As New Outlook.Application
            Dim olmail As MailItem
            Dim CurrFile As String
            Dim Pj As String
            Set ol = New Outlook.Application
            Set olmail = ol.CreateItem(olMailItem)

            With olmail
            .To = ("")
            .Subject = ("")
            .Body = ""
            .Display
            If (Len(Useform1.textbox1.Text) > 0) Then
            Pj = Useform1.textbox1.Text
            .Attachments.Add (Pj)
            End If

            End With
            End Sub
            1. Dernière question si j'ai 30 autres user forms comment faire pour donner l'instruction au module d'aller chercher le textbox1 contenant le chemin de la PJ dans tous les autres useforms?
              For each ?
              Merci !
              1. UP ! Quelqu'un pourrait répondre à ma dernière questiion svp ?
                Merci !