Macro combinant envoi mail et suppression données

Bonjour,

J'ai un formulaire constitué de TextBox et de ChekBox. Dans ce document j'ai le code ci-après qui permet une fois complété d'envoyer ce même formulaire.

Mais je voudrai qu'une fois renvoyé, dans l'original, toutes les données saisies soient effacées. Pour ça j'ai pensé à ce code

Dim c As Control
For Each c In Me.Controls
     Select Case TypeName(c)
        Case "TextBox"
         c.Value = ""
        Case "CheckBox"
         c.Value = False
     End Select
Next c
End Sub

que j'ai modifié. Mais comment l'intégrer dans le code servant à envoyer le formulaire, ou faut il qu'il soit séparé ?

Code envoyer mail :

Sub Mail_workbook_Outlook_1()
'Working in 2000-2010
'This example send the last saved version of the Activeworkbook
    Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
    With OutMail
        .To = "adresse mail"
        .CC = ""
        .BCC = ""
        .Subject = "Questionnaire de satisfaction"
        .Body = "Bonjour," & Chr(13) & "Le questionnaire de satisfaction vient d'être complété." & Chr(13) & "Restant à votre disposition." & Chr(13) & "Cordialement."
        .Attachments.Add ActiveWorkbook.FullName
        'You can add other files also like this
        '.Attachments.Add ("C:\test.txt")
        .Display   'or use .Send
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

Bonjour,

place ton code dans une procédure que tu appelle si l'envoie s'est bien déroulé

    Sub Mail_workbook_Outlook_1()
    'Working in 2000-2010
    'This example send the last saved version of the Activeworkbook
       On Error GoTo Erreur
       Dim OutApp As Object
        Dim OutMail As Object

        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)

        With OutMail
            .To = "adresse mail"
            .CC = ""
            .BCC = ""
            .Subject = "Questionnaire de satisfaction"
            .Body = "Bonjour," & Chr(13) & "Le questionnaire de satisfaction vient d'être complété." & Chr(13) & "Restant à votre disposition." & Chr(13) & "Cordialement."
            .Attachments.Add ActiveWorkbook.FullName
            'You can add other files also like this
           '.Attachments.Add ("C:\test.txt")
           .Display   'or use .Send
       End With

Erreur:
        MsgBox "Une erreur est survenue lors de l'envoie" & vbCr & Err.Description
        Exit Sub
Fin:
        EffaceFiche
        Set OutMail = Nothing
        Set OutApp = Nothing
    End Sub

    Sub EffaceFiche()
        Dim c As Control
        For Each c In Me.Controls
         Select Case TypeName(c)
            Case "TextBox"
             c.Value = ""
            Case "CheckBox"
             c.Value = False
         End Select
    Next c
    End Sub

Bonjour Math,

Est ce une obligation de mettre de genre de procédure ?

Je pensais pouvoir l'intégrer directement en fin de code ou en intégrant un GO TO.

-- 19 Aoû 2010, 15:00 --

J'ai testé math,

Le problème s'est qu'il m'efface les données présentes dans le fichier envoyé. Ce qui veut dire que la personne qui reçoit ce fichier, celui-ci est vide.

Pour être plus clair : ils ouvrent en 1er le formulaire qui est vide. Ils le complétent et cliquent sur un icône représentant une enveloppe pour envoyer ce formulaire à une personne désignée. La personne recevant par mail ce formulaire, celui-ci doit être complété. Avec ton code il est vide.

C'est sur le 1er formulaire, le formulaire d'origine, qui doit revenir vierge.

J'espère avoir été clair. Sinon demande-moi plus d'informations.

Tu n'es pas obligé de séparer le code dans une autre procédure, moi je fonctionne comme ça car je trouve ça plus lisible.

- Est-ce que tu peux poster ton fichier?

- Au lieu de faire .display à la fin, si tu fais .send est-ce que ça fonctionne mieux.

Avec Send je n'aime pas je préfère garder .Display.

Mais je pense que je vais faire en sorte que dès que le mail est envoyé avec la pièce jointe et qu'il me ferme AUTOMATIQUEMENT le fichier SANS L'ENREGISTRER.

Je précise que le fichier envoyé doit garder toutes les données saisies.

-- 19 Aoû 2010, 17:16 --

Gros bug,

Je viens de m'apercevoir que le code ci-après envoi le formulaire, qui était complété, à la personne voulue mais cette personne le reçoit non complété.

Je suis totalement perdu.

Sub Mail_workbook_Outlook_1()
'Working in 2000-2010
'This example send the last saved version of the Activeworkbook
    Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
    With OutMail
        .To = "toto@test.fr;"
        .CC = ""
        .BCC = ""
        .Subject = "Ouverture d'une nouvelle Fiche d'Action de Progrès"
        .Body = "Bonjour," & Chr(13) & "Vous trouverez ci-joint la Fiche d'Action de Progrès." & Chr(13) & "Cordialement"
        .Attachments.Add ActiveWorkbook.FullName
        'You can add other files also like this
        '.Attachments.Add ("C:\test.txt")
        .Display   'or use .Send
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

-- 20 Aoû 2010, 10:32 --

Bonjour le Forum,

J'ai trouvé une parade pour que le formulaire soit envoyé rempli.

Lorsqu'ils ouvrent le formulaire, les personnes verront automatiquement apparaître une fenêtre les informant des opérations à faire pour envoyer le document enregistré (1° Ouvrir le document, 2° l'enregistrer sur leur disque dur, 3° le compléter, 4° l'enregistrer et 5° l'envoyer).

Voilà quant à moi je garde le code précédent.

Merci de votre aide.

Rechercher des sujets similaires à "macro combinant envoi mail suppression donnees"