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 :

Macro pour envoyer des mails avec Thunderbird [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 158
    Points : 61
    Points
    61
    Par défaut Macro pour envoyer des mails avec Thunderbird
    Bonjour

    Pourriez-vous m'aider car je ne sais pas du tout comment faire.
    Même en regardant sur les sites, je ne trouve pas ma solution.

    Voilà, j'ai un fichier dans lequel en col A j'ai des adresses mails et en B des codes.
    Avec Thunderbird, j'aimerai envoyer un mail individuel à chaque destinataire de la col A avec dans le message son code respectif.

    Ex*toto@gmail.com*en a2 et son code dans le message qui est en B2.

    Tous les codes sont sur la même ligne que les destinataire et il n'y a pas de doublons.

    Voici ce que j'ai trouvé pour le début mais rien ne se

    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
     
     
    Sub envoi_mail()
    Application.ScreenUpdating = False
     
    Dim destinataire As String
    Dim sujet As String
    Dim body As String
    Dim i As Integer*** 
    *** 
    With Sheets("feuille1")
    *** For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row*
    ******* destinataire =Cells(i, 1)*
    *
    sujet = """Demande xxxxx"""
    body = """Bonjour & vbCr & vbCr &** Je vous remercie de bien vouloir nous adresser vos fiches d'interventions finalisées. & vbCr & vbCr &* Je vous remercie de votre aimable collaboration. & vbCr & vbCr &* Cordialement."""
     
    strcommand = "C:\Program(x86)\Mozilla Thunderbird\thunderbird.exe"
    strcommand = strcommand & " -compose " & "to='" & destinataire & "'"
    strcommand = strcommand & "," & "subject=" & sujet & ","
    strcommand = strcommand & "body='" & body & ","
     
    i = i + 1
     
    Next i
     
    End With
     
    Application.ScreenUpdating = True
     
    End Sub
    Merci beaucoup pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 661
    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 661
    Points : 5 785
    Points
    5 785
    Par défaut
    Bonjour,
    Citation Envoyé par zaza45 Voir le message
    Voici ce que j'ai trouvé pour le début mais rien ne se
    Je suppose que tu voulais écrire "rien ne se passe"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.ScreenUpdating = False
    Cette instruction bloque l'affichage de l'écran, enlève-là et tu verra ce qui se passe
    Si besoin tu peux aussi lancer ton code en mode pas à pas via la touche F8
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 158
    Points : 61
    Points
    61
    Par défaut
    Bonjour Halaster

    J'ai désactivé l'affichage et quand j'exécute avec f8, il reste sur la première adresse en a2 mais rien ne se passe.
    Et il reste sur A2 quand je continu l'exécution avec f8

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    je sais pas si ça va aider mais je crois il manque un point ici devant Cells??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    destinataire =Cells(i, 1)*
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 158
    Points : 61
    Points
    61
    Par défaut
    Bonjour Bennars
    Oui effectivement j'ai rajouté le point mais ça ne change rien.
    J'ai fait un essai avec 5 lignes
    Quand je passe le curseur sur le i de i=2 il mets i=5.
    J'ai l'impression que la boucle n'est pas correcte

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 661
    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 661
    Points : 5 785
    Points
    5 785
    Par défaut
    C'est normal toutes les * dans ton code ?

    Citation Envoyé par zaza45 Voir le message
    J'ai désactivé l'affichage
    Justement c'est le contraire qu'il faut faire si tu veux voir ce qui se passe

    et quand j'exécute avec f8, il reste sur la première adresse en a2 mais rien ne se passe.
    Et il reste sur A2 quand je continu l'exécution avec f8
    Ton code n'agit pas sur les cellules, il ne fait qu'en lire le contenu pour préparer tes mails, et pour ce faire il n'a pas besoin de changer de cellule active
    Ce qui est important c'est de regarder ce qui passe a la ligne 18, il se passe quoi ? il ouvre bien Thunderbird ou pas ?
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 158
    Points : 61
    Points
    61
    Par défaut
    Normalement dans mon code il n'y a pas * .

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 158
    Points : 61
    Points
    61
    Par défaut
    Rien ne se passe. Pourtant Thunderbird est ouvert

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 158
    Points : 61
    Points
    61
    Par défaut
    Quand je mets un msgbox pour vérifier les adresses que le codes choisi il me mets le mail de A2 puis le mal de A4 et ai etc. A3 et a5 n'est pas pris en compte.
    Premier problème

    Puis aucun mail n'est ouvert

  10. #10
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 661
    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 661
    Points : 5 785
    Points
    5 785
    Par défaut
    Quand tu copie un code, essaye de ne pas oublier le principal, tu n'as pas mis la commande qui demande a thunderbird d'envoyer le mail
    strcommand n'est qu'un chaine de caractère elle ne fait rien toute seule

    Call Shell(strcommand, vbNormalFocus)
    rajoute cette ligne avant ton next d'après ce que j'ai vu, et ça devrait le faire
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  11. #11
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Le code que vous avez publié, ne semble pas être un véritable copier/coller de votre procédure me semble t'il car je vois les lignes 10, 12, 13 et 14 qui débutent par des astérisques alors qu'il n'y a pas d'apostrophe qui les précède ce qui signifie que vous devriez avoir un message d'erreur

    Si c'est réellement une boucle que vous avez utilisée bien que la ligne 10 *** For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row* me laisse perplexe, il faudrait enlever l'instruction de la ligne 23 i = i + 1. La variable d'une boucle For...To...Next s'incrémente d'elle même
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 158
    Points : 61
    Points
    61
    Par défaut
    L'instruction call shell devient jaune.
    Quand je passe le curseur dessus il met "c:\Program (x86)\mozilla Thunderbird \thunderbird.exe,destinataire

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 158
    Points : 61
    Points
    61
    Par défaut
    Merci Philippe pour ton info
    La boucle est bonne maintenant

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 158
    Points : 61
    Points
    61
    Par défaut
    Bonjour

    Après de nombreux essais le CALL fonctionne bien.

    Mais maintenant que les message s'ouvrent bien jen'ai aucun retour à la ligne
    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
     
    Sub envoi_mail()
     
    'Application.ScreenUpdating = False
     
    Dim destinataire As String
    Dim strcommand As String
    Dim sujet As String
    Dim body As String
    Dim i As Integer
    Dim texte As String
     
     
    With ActiveWorkbook
    *** 
    *** With Sheets("loyers non payes")
    *** 'For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row ' ligne 2 jusqu'à la dernière ligne remplie col A
    *** 
    ******* For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row Step 1 ' ine pas mettre i=i+1 car ctte formule incremente directement
    ******* 
    ******* 
    ******* 'destinataire = destinataire & .Cells(i, 1)
    ******* 
    ******* destinataire = .Cells(i, 1)
    **** 
    ** 
    *********** If destinataire <> "" Then
    *** 
    *********** 'MsgBox destinataire
     
    sujet = "Demande facturation des loyers pour les redevance ses sites de radiocommunications de la DSIC-SUD au SGAMI"
     
     
    Texte1 = " Bonjour," & vbCrLf & vbCrLf
    Texte2 = " Je vous remercie de bien vouloir déposer sur le ." & vbCr & vbCr
    Texte3 = " Vous trouverez ci-après les données nécessaires vous permettant de  :" & vbCr & vbCr
    Texte4 = " - tititi" & vbCr
    Texte5 = " - Service " & vbCr
    Texte6 = " - Destination " & vbCr
    Texte7 = " - N° :*** " & Cells(i, 6) & " & vbCr"
    Texte8 = " - Ce numéro sera* " & " & vbCr & vbCr"
    Texte9 = " En effet, nous seront très  ." & vbCr & vbCr
    Texte10 = " Je reste à votre disposition pour tout renseignement complémentaire." & vbCr & vbCr
    Texte11 = " Cordialement." & vbCr & vbCr
     
    Body = Texte1 & Texte2 & Texte3 & Texte4 & Texte5 & Texte6 & Texte7 & Texte8 & Texte9 & Texte10 & Texte11
    'body = Texte1 & vbCrLf & vbCrLf & Texte2 & Texte3 ne fonctionne pas
    'body = Texte1 & Chr(13) & Chr(10) & Texte2 & Texte3 ne fonctionne pas
     
    strcommand = "C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe"
    strcommand = strcommand & " -compose " & "to='" & destinataire & "'"
    strcommand = strcommand & "," & "subject='" & sujet & "',format='1',"
    strcommand = strcommand & "body='" & body & "'"
    'MsgBox strcommand
     
     
    Call Shell(strcommand, vbNormalFocus)
     
    *********** End If
     
    ******* Next i
     
    *** End With
     
    End With

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 158
    Points : 61
    Points
    61
    Par défaut
    Ne pas faire attention aux * et nr de lignes car je dois passer par la messagerie pour transférer le code sur ma tablette.
    De l'ordinateur je n'ai pas accès à ce site.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 158
    Points : 61
    Points
    61
    Par défaut
    J'ai remplacer VBCR, CHR(13) et (10),etc par <br>
    Cela fonctionne bien pour les texte 1,2 et 3 mais pas pour les autres lignes

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 158
    Points : 61
    Points
    61
    Par défaut
    J'ai remplacer VBCR, CHR(13) et (10),etc par <br>
    Cela fonctionne bien pour les texte 1,2 et 3 mais pas pour les autres lignes

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 158
    Points : 61
    Points
    61
    Par défaut
    Ça y est la macro fonctionne bien après de nombreux essais
    Si cela intéresse quelqu'un voici le code.
    J'avais un problème car une partie du message était un lien HTHL et je ne connaissais absolument pas cette balise.
    Donc voici

    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
     
    Sub envoi_mail()
     
    Application.ScreenUpdating = False
     
    Dim destinataire As String
    Dim strcommand As String
    Dim sujet As String
    Dim body As String
    Dim i As Integer
     
    With ActiveWorkbook
     
        With Sheets("loyers non payes")
     
            For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row Step 1 
     
            destinataire = .Cells(i, 1)
     
                If destinataire <> "" Then
     
    sujet = "Demande xxxxx"
     
    'texte du message
     
    body1 = " Bonjour," & "<br>" & "<br>"
    body2 = " Je vous remercie de bien vouloir xxx." & "<br>" & "<br>"
    body3 = " Vous trouverez ci-après les données nécessaires :" & "<br>" & "<br>"
     
    '<a href='https://www.toto.xx.fr/'>'https://www.toto.xx.fr/'</a>" permet d'insérer un line http
     
    body4 = "<a href='https://www.toto.xx.fr/'>'https://www.toto.xx.fr/'</a>" & "<br>" & "<br>"
     
    body5 = " Service " & "<br>" & "<br>"
     
    body6 = " toto" & "<br>" & "<br>"
     
    body7 = " N° :    " & Cells(i, 6) & "<br>" & "<br>"
     
    body8 = " Ce numéro xxx." & "<br>" & "<br>"
     
    body9 = " Je reste à votre disposition pour tout renseignement complémentaire." & "<br>" & "<br>"
     
    body10 = " Cordialement." & "<br>" & "<br>"
     
    body = body1 & body2 & body3 & body4 & body5 & body6 & body7 & body8 & body9 & body10
     
     
    strcommand = "C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe"
     
    strcommand = strcommand & " -compose " & "to='" & destinataire & "'"
     
    strcommand = strcommand & "," & "subject='" & sujet & "',format='1',"
     
    strcommand = strcommand & "," & "body='" & body & "'"
     
     
    Call Shell(strcommand, vbNormalFocus)
                End If
            Next i
     
        End With
    End With
    Application.ScreenUpdating = True
     
    End Sub
    Merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/03/2018, 14h05
  2. Réponses: 20
    Dernier message: 31/08/2015, 20h08
  3. Classe pour envoyer des mails avec des template
    Par RobertP dans le forum Langage
    Réponses: 1
    Dernier message: 24/12/2011, 10h49
  4. adresse d'un serveur SMTP. pour envoyer des mail avec labview
    Par abdellatif gasmi dans le forum LabVIEW
    Réponses: 1
    Dernier message: 12/03/2010, 09h51

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