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

Macros et VBA Excel Discussion :

Confirmation avant envoi Sendmail


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut Confirmation avant envoi Sendmail
    bonjour,

    j'ai une macro qui me permet d'envoyer un mail par Sendmail mais j'aimerai que lorsque la personne clique sur le bouton que cela affiche une fenetre avec un truc genre "confirmer l'envoi" oui/non
    Si elle clique sur oui ça envoi si non ça ne fait rien

    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub envoiMailEtFeuilleActive()
    Rows("13:300").EntireRow.AutoFit
    Rows("10:10").RowHeight = 45
    Rows("11:11").RowHeight = 45
     ActiveSheet.Copy ' créée une copie de la feuille active
    ActiveSheet.Protect Password:="x", DrawingObjects:=True, Contents:=True, Scenarios:=True
     ActiveWorkbook.SendMail Recipients:=Range("Z11").Value, Subject:="Planning"
     MsgBox ("Message envoyé")
     Application.DisplayAlerts = False
     ActiveWorkbook.Close ' supprime le classeur créé après l'envoi
     Application.DisplayAlerts = True
     End Sub
    merciiiiiii

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 153
    Par défaut
    Bonjour,

    Peut être que ceci pourrait marcher

    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
    Sub envoiMailEtFeuilleActive()
     
    If MsgBox("Confirmer l'envoi?", vbOKCancel, "Confirmation") = vbOK Then
     
        Rows("13:300").EntireRow.AutoFit
        Rows("10:10").RowHeight = 45
        Rows("11:11").RowHeight = 45
        ActiveSheet.Copy ' créée une copie de la feuille active
        ActiveSheet.Protect Password:="x", DrawingObjects:=True, Contents:=True, Scenarios:=True
     
     
        ActiveWorkbook.SendMail Recipients:=Range("Z11").Value, Subject:="Planning"
        MsgBox ("Message envoyé")
        Application.DisplayAlerts = False
        ActiveWorkbook.Close ' supprime le classeur créé après l'envoi
        Application.DisplayAlerts = True
    Else
        Exit Sub
    End If
    End Sub

  3. #3
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    Super rapide et efficace merci

    Salut c'est encore moi

    Juste un truc j'ai mis un code Msgbox lorsque le message est envoyé mais par exemple si l'adresse mail est manquante ou fausse il m'ouvre la fenetre pour que j'envoi ce mail manuellement mais cest la que le pb se pose : si je ferme cette fenetre et que je n'envoi pas le mail cette fenetre s'affiche quand même alors que le mail n'est pas parti

    J'aimerai donc que si la procédure ne va pas jusqu'au bout qu'il ne m'affiche rien, une idée ????

    Merciiiii

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 153
    Par défaut
    Bonjour,

    A mon avis, il serait plus simple de ne pas afficher le message à partir du moment où la fenêtre outlook s'ouvre, soit si j'ai bien compris quand la cellule Z11 est vide.

    Peut être que ceci pourrait faire l'affaire:

    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
    Sub envoiMailEtFeuilleActive()
     
    If MsgBox("Confirmer l'envoi?", vbOKCancel, "Confirmation") = vbOK Then
     
    Rows("13:300").EntireRow.AutoFit
    Rows("10:10").RowHeight = 45
    Rows("11:11").RowHeight = 45
    ActiveSheet.Copy ' créée une copie de la feuille active
    ActiveSheet.Protect Password:="x", DrawingObjects:=True, Contents:=True, Scenarios:=True
     
     
    ActiveWorkbook.SendMail Recipients:=Range("Z11").Value, Subject:="Planning"
     
    If range("Z11").value <> "" then
    MsgBox ("Message envoyé")
    end if
     
    Application.DisplayAlerts = False
    ActiveWorkbook.Close ' supprime le classeur créé après l'envoi
    Application.DisplayAlerts = True
    End If
    End Sub
    En espérant que cela puisse aider

  5. #5
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    le truc c'est que c'est pas forcément quand la cellule est vide, ça peut être soit :
    - que l'adresse contient une faute d'écriture ( une virgule, point d'interrogation etc)
    - que la recherchev n'a pas marché et que cela me trouve du coup aucune adresse qui correspond

    à ces moment là, le process s'arrête, j'ai ma copie qui a été créé et la fenetre pour envoyer qui s'ouvre pour que je choisir manuellement mon destinaire.

    Mais si l'utilateur ferme pour relancer la macro ça affiche "message envoyé" et là c'est la panique à bord lol

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If range("Z11").value <> "" OR ... OR ... OR then
    Remplace par tes conditions

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 153
    Par défaut
    Sinon peut être que tu peux poursuivre la procédure uniquement si la cellule Z11 contient au moins un arobas (en supposant que s'il y a un arobas dedans il s'agit d'une adresse mail)

    Par exemple en rajoutant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if instr(1,range("z11").Value,"@",1) = 0 then exit sub
    au début de la procédure

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

Discussions similaires

  1. [AC-2013] ouvrir un mail avant envoi avec sendmail en vba
    Par djibouli dans le forum VBA Access
    Réponses: 0
    Dernier message: 29/04/2015, 11h17
  2. [MySQL] Page de confirmation avant l'envoi du formulaire
    Par stevenP dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 03/12/2012, 10h20
  3. confirmation avant envoi d'un formulaire
    Par sab_etudianteBTS dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 30/03/2008, 11h08
  4. script de confirmation avant un envoie
    Par essono dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 29/01/2007, 16h37
  5. Réponses: 2
    Dernier message: 03/08/2004, 16h24

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