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.