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 :

Envoi d'un courriel à partir d'Excel. le 1er Ok le 2e KO [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut Envoi d'un courriel à partir d'Excel. le 1er Ok le 2e KO
    Bonjour,
    J'ai un formulaire de supervision de dossier. s'il n'est pas conforme, je veux envoyer un rapport à l'intéressé.
    Dans ce dernier, je reprend tous les motifs passés en revue et les commentaires apportés.

    Le 1er courriel se déroule parfaitement bien. mais s'il y a un deuxième dossier non conforme, Excel bloque l'envoi au niveau "With Fl.MailEnvelope.Item"
    au motif
    La méthode 'MailEnveloppe' de l'objet '_Worksheet' a échoué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Fl.MailEnvelope.Item
        .To = [K1].Value   'Fl.Range("R1").Value  'Destinataire Agent
        .cc = [K2].Value   'Fl.Range("L8").Value  'Copie Superviseur
        .Subject = "SuperV - " & Mid(Sheets("Saisies").Range("I1"), 13) 'Objet
        .Send                           'Envoi du mail
    End With
    La feuille qui reprend l'ensemble des éléments du corp du mail est bien complétée.
    Est-ce que qq'1 peut m'aider, svp ?
    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Citation Envoyé par mouftie Voir le message
    Le 1er courriel se déroule parfaitement bien. mais s'il y a un deuxième dossier non conforme, Excel bloque l'envoi au niveau "With Fl.MailEnvelope.Item"
    Il faudrait que tu montre aussi le reste de la macro
    Si ça fonctionne une fois mais pas deux, il y a surement un élément lors du premier passage qui interfère avec le second
    Par exemple peut-être désaffectes-tu ta variable F1, mais voir toute la macro ce n'est qu'une supposition

  3. #3
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut
    Bonjour halaster08,
    Merci de me proposer ton aide, j'ai mis en commentaire les 3/4 de ma macro pour ne laisser que le principal (Avec cette version abrégé, le problème est le même, le 1er message part normalement, le second est bloqué)
    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
    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    'Procédure permettant d'envoyer un mail dans le corps d'un message
    '*************************************************************************
    Sub EnvoiMail() 'mis dans la feuille à envoyer
    Dim Fl As Worksheet, NbLg As Integer, Ht As Integer
    Dim DestAgt As String, cc As String
    Application.ScreenUpdating = False 'désactivation du raffaichissement de l'écran
    'on crée une nouvelle feuille
        Sheets.Add After:=Sheets("Données")
        If Len(CbxAgt) < 30 Then
            ActiveSheet.Name = CbxAgt
        Else    '/!\ si feuil existe
            On Error GoTo GestErr
            ActiveSheet.Name = Left(CbxAgt, 8)
            On Error GoTo 0
        End If
        Set Fl = ActiveSheet
        If Sheets("Données").Visible = False Then Call DeProtegAll
        'on récupère les coordonnées des destinataires
        Sheets("Données").Range("S4") = CbxAgt
        Range("J1") = CbxAgt
        Range("K1") = Sheets("Données").Range("T4").Value
        Sheets("Données").Range("S4") = CbxSup
        Range("J2").FormulaR1C1 = CbxSup
        Range("K2") = Sheets("Données").Range("T4").Value
        DestAgt = [K1]
        cc = [K2]
            DestAgt = InputBox("Confirmer le destinataire ?", _
                "DESTINATAIRES DU RAPPORT", DestAgt)
                [K1] = DestAgt
                    Application.DisplayAlerts = False
                If DestAgt = "" Then
                    Fl.Delete
                    Exit Sub
                End If
            cc = InputBox("Confirmer votre mail ?", _
                "DESTINATAIRES DU RAPPORT", cc)
                [K2] = cc
                If cc = "" Then
                    Fl.Delete
                    Exit Sub
                End If
                    Application.DisplayAlerts = True
    ' Mise en forme
        Columns("A:A").ColumnWidth = 100
     
    ''' mis dans call
        'Corp du mail
        [A1] = "Bonjour"
    '::: Coupure
    Fl.Range("A1:B" & NbLg + 3).Select 'plage à copier
    'avec l'objet MailEnveloppe on envoie dans le corps du mail.
    With Fl.MailEnvelope.Item
        .To = [K1].Value   'Fl.Range("R1").Value  'Destinataire Agent
        .cc = [K2].Value   'Fl.Range("L8").Value  'Copie Superviseur
        .Subject = "SuperV - " & Mid(Sheets("Saisies").Range("I1"), 13) 'Objet
    '    .Attachments.Add "CheminFichier"    'Pièce jointe
    '    .Display                        'Affiche du mail
        .Send                           'Envoi du mail
    End With
    MsgBox "votre rapport a été adressé ; vérifiez qu'il n'a pas été rejeté dans vos envois Outlook.", _
            vbInformation + vbOKOnly, "CONFIRMATION ENVOI MAIL"
    Application.DisplayAlerts = False
    Fl.Delete   'on supprime la feuille du message
    If Sheets("Données").Visible = True Then Call ProtegAll
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Exit Sub
    GestErr:
    Call MsgBox("Une feuille portant le même nom est présente dans le fichier." _
                & vbCrLf & "" _
                & vbCrLf & "Veuillez la supprimer et si vous voulez renvoyer le courriel, double-cliquer sur le Nir concerné." _
                & vbCrLf & "" _
                & vbCrLf & "Merci" _
                , vbCritical, "SuperV - Envoi courriel")
        Exit Sub
    End Sub
    PS : j'ai également vérifier qu'au moment du blocage, la variable Fl est toujours valide
    J'ai aussi refait toute la procédure depuis l'ouverture du formulaire, jusqu'à l'envoi du mail, en mode pas à pas, lors du 2ème mail, toutes les variables sont bien renseignées.
    Merci pour ton aide

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    J'avais cru comprendre que ta macro envoyais plusieurs mail a la suite, mais comme je ne vois aucune boucle dedans ce n'est pas le cas, donc quand tu dis que le second envoi est KO tu parles d'une seconde utilisation de la macro, bien distincte de la première, on est d'accord ?

    Que sous entends-tu par dossier non conforme ?
    A plusieurs endroit dans ton code sous certaine condition tu supprime ta feuille F1, le problème est peut être là, si tu as supprimé la feuille tu ne peux plus envoyé le mail.

  5. #5
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut
    Bonjour halaster08,
    Effectivement : j'ai des dossiers à contrôler ; en double cliquant sur un dossier, j'ouvre un formulaire avec des items pour lesquels je choisis conforme ou pas. à la fin du formulaire, si un item a été non conforme, le dossier est considéré comme non conforme et j'envoie un rapport par mail à la personne qui a instruit le dossier ; le formulaire se ferme.
    je passe au dossier suivant en rouvrant un nouveau formulaire (le formulaire remonte les informations du dossier).

    A plusieurs endroit dans ton code sous certaine condition tu supprime ta feuille F1
    cela se produit 3 fois, les 2 premières au cas ou les adresses courriels sont erronées, auquel cas je n'envoie pas de courriel et une dernière fois après l'envoi du courriel pour ne rien laisser dans le dossier et ne pas avoir de conflit de nom de feuille.

    Merci de ton aide

  6. #6
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut
    Bonjour,
    J'ai abandonné cette méthode au profit de celle-ci
    https://excel-malin.com/codes-source.../#comment-3773

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

Discussions similaires

  1. Envoi d'un mail à partir d'excel
    Par Daan94 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/10/2019, 10h11
  2. Envoi de mail Outlook à partir d'Excel
    Par Daejung dans le forum VBA Outlook
    Réponses: 8
    Dernier message: 19/12/2008, 23h37
  3. envoi de mail via Lotus Notes 6 a partir d'excel
    Par gilbisti dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/06/2007, 13h41
  4. Envoi mail à partir d'Excel (pb de fonctionnement)
    Par bybelos33 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/03/2007, 15h46

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