Equivalent "On Cancel GoTo"???
Bonjour à tous,
Tout d'abord merci pour ce forum, il m'est d'une grande aide pour mon travail :ccool:
Je vous expose mon pb : j'ai réalisé une petite macro qui envoie une feuille par mail avec l'option Sendmail. Voici le code :
Code:
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
Private Sub CommandButton1_Click()
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'' Cette macro est déclenchée par un clic sur le bouton d'envoi par mail. Elle a pour but d'envoyer ''
'' le bon de commande "xxx" du service "xxx" par mail au service Economique. ''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Déclaration des variables.
Dim Jour As String ' Jour en cours.
Dim Mois As String ' Mois en cours.
Dim Annee As String ' Année en cours.
Dim NomClasseurTampon As String ' Nom du classeur envoyé par mail, contenant le bon de commande "xxx".
Dim Destinataires(1) As String ' Liste des destinataires du mail (2 destinataires sont définis pour ce bon de commande).
' Initialisation des variables.
If DatePart("d", Date) < 10 Then
Jour = "0" & DatePart("d", Date)
Else
Jour = DatePart("d", Date)
End If
If DatePart("m", Date) < 10 Then
Mois = "0" & DatePart("m", Date)
Else
Mois = DatePart("m", Date)
End If
Annee = DatePart("yyyy", Date)
NomClasseurTampon = "BDC xxx - " & ActiveSheet.Name & " - " & Jour & "-" & Mois & "-" & Annee
Destinataires(0) = "adresse1@truc.com"
Destinataires(1) = "adresse2@truc.com"
' Copie de la feuille active (ici "xxx") dans un nouveau classeur.
ActiveSheet.Copy
' Renommage du classeur nouvellement créé (classeur tampon) pour envoi par mail.
ActiveWorkbook.SaveAs Filename:=NomClasseurTampon
' Envoi du classeur tampon par mail.
ActiveWorkbook.SendMail _
Recipients:=Destinataires(), _
Subject:=NomClasseurTampon
' Fermeture du classeur tampon, sans sauvegarder.
ActiveWorkbook.Close SaveChanges:=False
' Suppression du classeur tampon.
Kill "C:\Users\PC\Documents\" & NomClasseurTampon & ".xls"
' Affichage de la date du dernier envoi.
Worksheets("xxx").Range("K17").Value = Date
' Message de confirmation d'envoi du mail.
MsgBox "Le bon de commande """ & ActiveSheet.Name & """ a bien été envoyé au service Economique."
' Remise à zéro du bon de commande "xxx".
Sheets("xxx").Range("E9:G34,B3:B4").ClearContents
' Affichage de la date du dernier envoi sur la feuille "Récapitulatif".
Sheets("Récapitulatif").Range("F11").Value = Date
Sheets("Boisson - Alimentaire").Range("A1").Select
End Sub |
Voici ma question : lorsque l'utilisateur clique sur le bouton "Envoyer" de la demande de confirmation d'envoi de mail, tout se passe bien, la msgbox de confirmation s'affiche avec le message "Le bon de commande blabla a bien été envoyé etc.".
Je voudrais maintenant que lorsque l'utilisateur clique sur "Ne pas envoyer", une autre msgbox s'affiche. Le pb est que je n'arrive pas à détecter le bouton sur lequel l'utilisateur a cliqué (cela me permettrait de réaliser une instruction conditionnelle du type : si clic sur "Envoyer" alors msgbox "confirmation envoi" + "remise à 0", sinon "confirmation non envoi").
Et pendant que j'y suis, est-il normal qu'avec une messagerie de type windows live mail, les adresses des destinataires s'affichent bien dans la demande de confirmation d'envoi, alors qu'avec Outlook, seul un ";" s'affiche? (les mails sont bien envoyés, cependant).
Merci de m'éclairer sur ce point, ce n'est pourtant pas faute d'avoir cherché!
[Edit]
Je me permets de reformuler ma demande : comment puis-je afficher une msgbox "mail non envoyé" si l'utilisateur clique sur le bouton "ne pas envoyer" après l'exécution de la fonction sendmail?
Equivalent "On Cancel GoTo"???
Excusez-moi de poster tant de messages, mais je souhaitais préciser encore ma question : en gros, je voulais savoir s'il existait en VBA Excel un équivalent de "On Cancel GoTo", ou "On Validate GoTo"...
Ca pourrait régler mon pb. Je sais qu'à l'exécution d'une fonction, celle-ci possède une variable qui prend les valeurs 0 ou 1 (ou alors 1 ou 2, je ne sais plus), en fonction du résultat de son exécution.
Récupérer cette variable d'exécution pourrait également m'aider à résoudre ce pb, mais je ne sais pas comment faire!
Ou alors je ne sais pas, moi, une procédure de vérification de l'envoi d'un mail?
Comment faire pour savoir si un mail a bien été envoyé? Auquel cas je me contenterai d'une msgbox de confirmation si le mail est bien envoyé...
Svp, aidez-moi, ça fait plusieurs jours que je cherche une solution, et je ne comprends pas que si peu de gens aient été confrontés à la même problématique...
Pb avec la fonction SendMail
Bonjour à tous,
J'ai un petit souci avec la fonction SendMail...
J'ai développé une petite macro qui envoie automatiquement un classeur excel par mail lorsqu'on clique sur un bouton.
Code:
1 2 3 4
|
ActiveWorkbook.SendMail _
Recipients:="blabla@bla.com", _
Subject:=ActiveWorkbook.Name |
Tout se passe bien, mais à l'exécution, une fenêtre de confirmation d'envoi s'ouvre, proposant à l'utilisateur "d'envoyer" ou de "ne pas envoyer" le mail.
J'aimerais être en mesure de coder une petite instruction conditionnelle qui afficherait une MsgBox "Message bien envoyé" en cas de clic sur "Envoyer", ou alors une MsgBox "Message non envoyé" si l'on clique sur "Ne pas envoyer"...
Ca ne me parait pas compliqué comme ça, sauf que je ne parviens pas à différencier ces deux actions (clic sur "Envoyer" ou "Ne pas envoyer").
Aucune erreur n'est générée en cas de non envoi, donc le faire par gestion des erreurs me semble vain.
Une idée? Merci d'avance, je lutte depuis des jours pour trouver ça!