Envoyer des mails via un userform

Fiirza Messages postés 6 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 16 octobre 2022 - 18 sept. 2022 à 12:06
Fiirza Messages postés 6 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 16 octobre 2022 - 19 sept. 2022 à 11:23

Bonjour,

Je souhaite via un userform envoyé un mail depuis outlook. J'arrive à créer et afficher le mail en incrémentant les TextBox16 et 17 qui contiennent des heures remplies par l'utilisateur.

En revanche je n'arrive pas à prendre en compte des conditions, la TextBox16 sera forcément rempli mais si la TextBox17 est rempli je souhaite envoyé le mail en indiquant son contenu et si elle ne l'est pas je souhaite envoyé un mail avec un corps de texte différent.

Dessous le code que j'ai fais mais qui ne fonctionne pas, le bouton ne se déclenche pas.

Private Sub CommandButton5_Click()

If TextBox17.Value = False Then

        Dim Lemail As Variant

            Set Lemail = CreateObject("Outlook.Application")

                With Lemail.CreateItem(olMailItem)

    .Subject = "Procédure Tapis Rouge"

    .To = Range("C6")

    .Body = "Monsieur," & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Procédure tapis rouge à XXXX début " & TAPIS.TextBox16 & "z, pas d'heure de fin estimée. Information donnée par la tour de XXXX " & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Respectueusement,"

    .Display

                End With

ElseIf TextBox17.Value = True Then

Dim Lemail1 As Variant

            Set Lemail1 = CreateObject("Outlook.Application")

                With Lemail1.CreateItem(olMailItem)

    .Subject = "Procédure Tapis Rouge"

    .To = Range("C6")

    .Body = "Monsieur," & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Procédure tapis rouge à XXXX début " & TAPIS.TextBox16 & "z, fin estimée " & TAPIS.TextBox17 & "z. Information donnée par la tour de XXXX " & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Respectueusement,"

    .Display

                End With

End If

End Sub

Merci de votre aide.

2 réponses

vb95 Messages postés 3474 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 7 mai 2024 169
Modifié le 18 sept. 2022 à 17:49

Bonjour

Essayez ceci

Private Sub CommandButton5_Click()

    Dim DoubleCrLf as String = Chr(13) & Chr(10) & Chr(13) & Chr(10) ' 2 CrLF
    Dim Procedure as String = "Procédure tapis rouge à XXXX début " & TextBox16.Value
    Dim Information as String = "Information donnée par la tour de XXXX "
    Dim Lemail As Variant
    Set Lemail = CreateObject("Outlook.Application")
    With Lemail.CreateItem(olMailItem)
        If TextBox17.Value <> "" Then
             ' si la TextBox est vide
            .Body = "Monsieur," & DoubleCrLf & Procedure & " pas d'heure de fin estimée. " & Information & DoubleCrLf & "Respectueusement,"
        Else
            ' si une heure a été définie
            .Body = "Monsieur," & DoubleCrLf & Procedure & " fin estimée " & TextBox17.Value & " " & Information" & DoubleCrLf & "Respectueusement,"
        End If
        .Subject = "Procédure Tapis Rouge"
        .To = Range("C6")
        .Display
    End With

End Sub

0
Fiirza Messages postés 6 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 16 octobre 2022
19 sept. 2022 à 10:49

Bonjour, merci de votre réponse.

Lorsque je rentre le code pour les 3 premières lignes, elles passent en rouge et un boite de dialogue qui indique "Erreur de compilation: Attendu: fin d'instruction.

Je cherche à comprendre d’où cela peut venir mais pour l'instant sans succès

0
Fiirza Messages postés 6 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 16 octobre 2022
Modifié le 19 sept. 2022 à 11:24

J'ai finalement trouvé la solution en revenant à la ligne à chaque fois pour définir la valeur.

Merci

0
Rejoignez-nous