IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Paramétrage du texte d'un mail envoyé par Access [AC-2003]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut Paramétrage du texte d'un mail envoyé par Access
    Bonjour,

    J’utilise dans une application access une macro native de ce logiciel « Envoyer Objet » qui permet d’envoyer des mails avec un titre prédéfini, une pièce jointe prédéfinie ainsi qu’une du texte prédéfini également. Rien à dire cette macro fonctionne très bien.
    Toutefois, je souhaiterai rendre paramétrable le texte inclus dans le mail en le récupérant d’une zone de texte d’un formulaire existant dans mon application que j’appellerai : [Formulaires]![Nom du formulaire]![Nom de l’objet]
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.SendObject acQuery, "Nom de la pièce jointe insérée dans le mail", "HTML(*.html)", "", "Adresse mail", "", "Titre du mail", "Texte à l’intérieur du mail", False, ""
        End If
    Comment faire pour remplacer la partie "Texte à l’intérieur du mail" qui par défaut n’est pas modifiable par la zone de texte de mon formulaire?

    En espérant avoir bien formulé ma problématique, je vous remercie d’avance pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 600
    Points : 34 270
    Points
    34 270
    Par défaut
    salut,
    simplement en y faisant référence comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'cas où ton code est dans le formulaire
    DoCmd.SendObject acQuery, "Nom de la pièce jointe insérée dans le mail", "HTML(*.html)", "", "Adresse mail", "", "Titre du mail", Me.TaTextBox.Text, False, ""
    'cas où ton code est ailleurs (comme la vérité peut être)
    DoCmd.SendObject acQuery, "Nom de la pièce jointe insérée dans le mail", "HTML(*.html)", "", "Adresse mail", "", "Titre du mail", Forms!TonForm.TaTextBox.Text, False, ""
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Bonjour jpcheck,

    Tout d'abord merci pour avoir pris un peu de temps pour essayer de trouver une solution à ce problème.
    J'ai essayé au vu de ta réponse (solution 2 car le code n'est pas dans le formulaire) d'insérer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Formulaires![Nom du formulaire].[Nom de ma zone de texte].Text
    Ce que tu appelles "TaTextBox" correspondont au "Nom de ma zone de texte" que j'ai récupéré de mon formulaire.
    Problème quand je lance la macro, il me vient un message "Objet requis".

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 600
    Points : 34 270
    Points
    34 270
    Par défaut
    Peux-tu nous montrer ton code pour lequel cette erreur est levée stp ?

    et regarder ce que t'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print Forms!TonForm.TaTextBox.Text
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    A ta première question, voici le code complet reprenant ta première recommandation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If (Forms![Nom du Formulaire]!Modifiable192 = "X") Then
        DoCmd.SendObject acQuery, "Nom de la pièce jointe insérée dans le mail", "HTML(*.html)", "", "Adresse mail", "", "Titre du mail", Formulaires![Nom du formulaire].[Nom de ma zone de texte].Text, False, ""
        End If
    A ce code, il me retourne le message : "Objet requis".

    Si maintenant j'insère "Debug.Print " mon code devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If (Forms![Nom du Formulaire]!Modifiable192 = "X") Then
        DoCmd.SendObject acQuery, "Nom de la pièce jointe insérée dans le mail", "HTML(*.html)", "", "Adresse mail", "", "Titre du mail", Debug.Print Formulaires![Nom du formulaire].[Nom de ma zone de texte].Text, False, ""
        End If
    Là, la ligne devient rouge et j'ai le message "erreur de compilation: Attendu: expression".

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 600
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 600
    Points : 34 270
    Points
    34 270
    Par défaut
    attention, tu sembles confondre le tout, ma ligne avec debug.print est indépendante de la ligne avec le mail

    D'autres part, tu utilises un coup Forms et l'autre coup formulaires.
    essaie donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Debug.Print Formulaires![Nom du formulaire].[Nom de ma zone de texte].Text
    If (Forms![Nom du Formulaire]!Modifiable192 = "X") Then
        DoCmd.SendObject acQuery, "Nom de la pièce jointe insérée dans le mail", "HTML(*.html)", "", "Adresse mail", "", "Titre du mail", Forms![Nom du formulaire].[Nom de ma zone de texte].Text, False, ""
        End If
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    OK, bien pris.

    Le message en retour est :

    "impossible de faire référence à une propriété ou de la définir pour un contrôle si ce dernier n'est pas activé"

  8. #8
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Bonjour,

    La propriété .Text d'une zone de texte n'est accessible que lorsque le contrôle a le focus, c'est à dire quand le formulaire est à l'écran, est activé et le curseur est dans cette zone de texte.
    Tu ne peux utiliser que, soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Formulaires![Nom du formulaire].[Nom de ma zone de texte]
    soit (ce qui revient au même, mais plus explicite)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Formulaires![Nom du formulaire].[Nom de ma zone de texte].Value
    Ceci dit et sans vouloir chipoter, je préfèrerais utiliser des arguments dans la sub, et passer la ou les valeurs des divers contrôles dans ces arguments.
    Ça permettrait de réutiliser la même sub à partir d'autres formulaires...

    Exemple (à adapter) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub EnvoiMail(Choix as String, CorpsDuMail As String)
        If Choix = "X" Then 
            DoCmd.SendObject acQuery, "Nom de la pièce jointe insérée dans le mail", "HTML(*.html)", "", "Adresse mail", "", "Titre du mail", CorpsDuMail, False, ""
         End If
    End Sub


    et l'appel se ferait, depuis le formulaire, avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EnvoiMail [Modifiable192], [Nom de ma zone de texte]
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Bonsoir Papy,

    il faut bien avouer que je ne comprends pas bien tes recommandations...

    D'une part, je ne sais pas comment faire appel dans mon formulaire à ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EnvoiMail [Modifiable192], [Nom de ma zone de texte]
    Où dois je le mettre ? D'autant que j'appelle déjà la macro par le formulaire (à partir d'une case à cocher) et je ne peux mettre qu'une seule action.

    D'autre part, je présume que ce que tu apelles "CorpsDuMail" et aussi ailleurs [nom de ma zone texte]

  10. #10
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Bonjour,

    Dans l'évènement Clic de ta case à cocher, je suppose que tu as une macro.

    Dans la liste déroulante, tu trouveras [Procédure Evenementielle] :
    - choisis le,
    - clic sur le bouton [...] à droite ->
    Tu vas te retrouver dans le module de code (VBA) du formulaire, avec un évènement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub NomCaseACocher_Click()
     
    End Sub
    Là, tu choisis :
    - soit tu n'utiliseras ce code qu'une seule fois, à partir de cette case à cocher. Dans ce cas, tu peux mettre tout le code ici (+ simple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub NomCaseACocher_Click()
        If ([Modifiable192] = "X") Then
            DoCmd.SendObject acQuery, "Nom de la pièce jointe insérée dans le mail", "HTML(*.html)", "", "Adresse mail", "", "Titre du mail", [Nom de ma zone de texte], False, "" 
        End If
    End Sub
    Pas besoin de référence au formulaire..., tu es dedans

    - soit, tu veux appeler la même routine à partir de plusieurs formulaires, avec à chaque fois un contrôle différent pour trouver le corps du texte du mail. Dans ce cas, programmation structurée oblige, tu devrais prendre la solution exposée hier soir et mettre l'appel ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub NomCaseACocher_Click()
         EnvoiMail [Modifiable192], [Nom de ma zone de texte]
    End Sub
    Bien sûr, je comprends, si tu débutes, qu'une macro paraisse plus facile qu'une procédure évènementielle. J'insisterai donc lourdement : autant prendre de bonnes habitudes. Non seulement, les macros sont très vite limitées et difficiles à faire évoluer (la + grande part de la programmation), mais cet exemple est typique : tu veux appeler du code VBA à partir d'une macro ! Autant aller directement dans VBA

    Enfin, le dernier point du pinailleur de service : je comprends mal que tu utilises une case à cocher pour déclencher une action (envoi d'un mail). Ça me paraît ajouter de la confusion pour l'utilisateur : que veut dire le fait que la case sera cochée, puis décochée, puis à nouveau...???
    Dans ce cas, un bouton de commande me paraît + approprié.
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Bonjour Papy,

    Je te remercie d’avoir consacré une peu de temps sur mon problème toutefois je crois que j’ai du mal m’exprimer.
    Je n’ai pas de difficulté à appeler par un clic une macro mais je souhaite rendre paramétrable le texte inclus dans un mail noté dans le code ci-dessous "Texte à l’intérieur du mail" en le récupérant d’une zone de texte d’un formulaire existant que j’appelle [Formulaires]![Nom du formulaire]![Nom de l’objet]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.SendObject acQuery, "Nom de la pièce jointe insérée dans le mail", "HTML(*.html)", "", "Adresse mail", "", "Titre du mail", "Texte à l’intérieur du mail", False, ""
        End If
    Toute la difficulté est de remplacer la partie "Texte à l’intérieur du mail" qui est prévue dans la fonction « Envoyer Objet » d’Access et qui par défaut n’est pas modifiable. Pour autant, je souhaite conserver cette fonction native du logiciel et si possible adapter le code à l’intérieur.
    Jpcheck a tenté une proposition mais vraisemblablement la zone de texte n'est accessible que lorsque le contrôle a le focus.

  12. #12
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Si on prend l'option d'un code événementiel exécuté depuis le formulaire qui contient la zone de texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Private Sub cmdEnvoyerParEmail_Click()
    Dim sNomObjet As String
    Dim sSujet As String
    Dim sTexteMsg As String
     
    ' Nom de la requête
    sNomObjet = "Nom de la reqête"
     
    ' Sujet de l'email
    sSujet = "Sujet email"
     
    ' Texte de l'email - Début - on commence par un boujour
    sTexteMsg = "Bonjour," & vbCrLf & vbCrLf
     
    ' Texte de l'email - On insère le contenu de la zone de texte txtTexteMessage
    ' ([Forms]![Nom du formulaire]![txtTexteMessage]) si elle n'est pas vide
    If Len(Nz(Me.txtTexteMessage, "")) > 0 Then
       sTexteMsg = sTexteMsg & Me.txtTexteMessage
    ' Sinon, si la zone de texte est vide on met un texte par défaut
    Else
      sTexteMsg = sTexteMsg & "Veuillez trouver ci-joint le document xxxx."
    End If
     
    ' Texte de l'email - Fin - on finit par une formule de politesse
    sTexteMsg = sTexteMsg & vbCrLf & vbCrLf & "Cordialement."
     
    ' On envoie l'email
    DoCmd.SendObject acSendQuery, sNomObjet, acFormatHTML, "destinataire@xxxx.fr", , , _
                     sSujet, sTexteMsg, False
    End Sub
    Je passe par la variable sTexteMsg (type String) pour construire le texte du message.
    Cela me permet d'y incorporer la zone de texte (txtTexteMessage dans mon exemple) et de rendre ce message moins statique.

    Si la zone de texte contient tout le message, tu remplaces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ' Texte de l'email - Début - on commence par un boujour
    sTexteMsg = "Bonjour," & vbCrLf & vbCrLf
     
    ' Texte de l'email - On insère le contenu de la zone de texte txtTexteMessage
    ' ([Forms]![Nom du formulaire]![txtTexteMessage]) si elle n'est pas vide
    If Len(Nz(Me.txtTexteMessage, "")) > 0 Then
       sTexteMsg = sTexteMsg & Me.txtTexteMessage
    Else
      sTexteMsg = sTexteMsg & "Veuillez trouver ci-joint le document xxxx."
    End If
     
    ' Texte de l'email - Fin - on finit par une formule de politesse
    sTexteMsg = sTexteMsg & vbCrLf & vbCrLf & "Cordialement."
    ... par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ' Texte de l'email - On insère le contenu de la zone de texte txtTexteMessage
    ' ([Forms]![Nom du formulaire]![txtTexteMessage]) si elle n'est pas vide
    If Len(Nz(Me.txtTexteMessage, "")) > 0 Then
       sTexteMsg = Me.txtTexteMessage
    ' Sinon, si la zone de texte est vide on met un texte par défaut
    Else
       sTexteMsg =  "Bonjour, " & vbCrLf & vbCrLf & _
                    "Veuillez trouver ci-joint le document xxxx." & vbCrLf & vbCrLf & _
                    "Cordialement."
    End If
    A+

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Bonjour LedZeppII et merci pour ton aide,

    J'ai essayé de récupérer ton code et associer mes variables mais le programme coince sur le "Me" de la ligne If Len(Nz(Me.txtObjet, "")) > 0 Then.
    J'ai le message "erreur de compilation, Utilisation incorrecte du mot clé Me"

    Je ne suis pas certain également que j'ai bien retranscrit dans le code la partie concernant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Formulaires]![Nom du formulaire]![Nom de l’objet]
    je l'ai traduit par txtObjet car le nom de ma zone de texte [Nom de l’objet] pris dans mon formulaire s'appelle OBJET.
    Je mets donc ci-dessous le code plus complet. Ne tient pas compte du début (jusqu'à la fin des SendKeys), il fonctionne très bien .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    DoCmd.SetWarnings False
        DoCmd.Requery ""
        DoCmd.OpenQuery "une première requête", acViewNormal, acEdit
        DoCmd.OpenQuery " une deuxième requête ", acViewNormal, acEdit
        DoCmd.RunMacro "Une macro ", , ""
        SendKeys "^(c)", False
        SendKeys "%{F4}", True
        Dim sNomObjet As String
    Dim sSujet As String
    Dim sTexteMsg As String
     
    ' Nom de la requête
    sNomObjet = "j’ai tapé le nom de ma requête"
     
    ' Sujet de l'email
    sSujet = "j’ai tapé le nom de mon sujet
     
    ' Texte de l'email - Début - on commence par un boujour
    sTexteMsg = "Bonjour," & vbCrLf & vbCrLf
     
    ' Texte de l'email - On insère le contenu de la zone de texte txtTexteMessage
    ' ([Forms]![Nom du formulaire]![txtTexteMessage]) si elle n'est pas vide
    If Len(Nz(Me.txtObjet, "")) > 0 Then
       sTexteMsg = sTexteMsg & Me.Objet
    ' Sinon, si la zone de texte est vide on met un texte par défaut
    Else
      sTexteMsg = sTexteMsg & "Veuillez trouver ci-joint le document xxxx."
    End If
     
    ' Texte de l'email - Fin - on finit par une formule de politesse
    sTexteMsg = sTexteMsg & vbCrLf & vbCrLf & "Cordialement."
     
    If Choix = "X" Then
    DoCmd.SendObject acSendQuery, sNomObjet, acFormatHTML, " XX@. fr ", "XX@. fr", , _
                     sSujet, sTexteMsg, False, ""
    J'espère que tu pourras m'aider.
    Salutations

  14. #14
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,
    Citation Envoyé par edsaar Voir le message
    J'ai le message "erreur de compilation, Utilisation incorrecte du mot clé Me"
    On n'est donc pas dans un module de code d'un formulaire (désolé, j'ai mal compris).
    Il faut juste remplacer Me.NomDeLaZoneDeTexte par Forms![Nom du formulaire]![NomDeLaZoneDeTexte]

    Exemple sur la partie de code concernée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ' Texte de l'email - On insère le contenu de la zone de texte txtTexteMessage
    ' si elle n'est pas vide
    If Len(Nz(Forms![Formulaire2]![txtTexteMessage], "")) > 0 Then
       sTexteMsg = sTexteMsg & Forms![Formulaire2]![txtTexteMessage]
    ' Sinon, si la zone de texte est vide on met un texte par défaut
    Else
       sTexteMsg = sTexteMsg & "Veuillez trouver ci-joint le document xxxx."
    End If
    Nom du formulaire = Formulaire2
    NomDeLaZoneDeTexte = txtTexteMessage

    A+

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Juste deux mots LedZeppII : FELICITATIONS !!!! et Merci !
    Merci aussi à Papy turbo et Jpcheck qui m'ont aidé et ont consacré du temps.

    Dans ce monde très individualiste, ce site est une revanche sur le temps.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/03/2013, 19h23
  2. Case à cocher en html dans le texte d'un mail envoyé par macro
    Par francky74 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 01/08/2011, 12h36
  3. [AC-2007] Modifier template du mail envoyé par Access, possible ?
    Par hayabusa63 dans le forum IHM
    Réponses: 1
    Dernier message: 01/08/2009, 18h27
  4. [Encodage] Unicode dans un mail envoyé par servlet
    Par beber69 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 16/09/2005, 17h21
  5. Sauvegarder automatiquement un mail envoyé par asp
    Par Immobilis dans le forum ASP
    Réponses: 7
    Dernier message: 27/10/2004, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo