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 Envoi Mail - Sélection plusieurs cellules suivant critères


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Chargée QC
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chargée QC
    Secteur : Alimentation

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Par défaut Macro Envoi Mail - Sélection plusieurs cellules suivant critères
    Bonjour à tous,

    Après avoir réussi quelques lignes de code, mon besoin à évoluer...et j'arrive au terme de mes (très) maigres compétences Macro !

    Je me permets donc de solliciter votre expertise pour deux problématiques :

    1/ Je souhaitais initialement recevoir un mail pour chaque ligne qui répondait à un critère. Cela fonctionne parfaitement !
    Aujourd'hui, j'ai besoin, non pas de recevoir un mail pour chaque ligne, mais de recevoir un seul mail contenant une liste des cellules qui répondent au critère défini...et impossible de trouver la solution !

    2/ J'étais initialement également la seule destinataire...Aujourd'hui je dois envoyer un mail à des destinataires différents, avec une liste différentes (For i de 1 à x c'est telle personne), For i de Y à z telle autre personne...

    Le code actuel :
    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
    Private Sub workbook_open()
     
    Dim WS As Worksheet
    Dim i As Long
    Dim OutApp As Object
    Dim OutMail As Object
    Dim strbody As String
     
    Set WS = Sheets("Plan métrologie")
     
    For i = 5 To 22
     
    If WS.Cells(i, 13) > 0 And WS.Cells(i, 13) < WS.Cells(2, 13) Then
    Mbody = "<font style=""color:rgb(0,102,204)"">" & WS.Cells(i, 1) & " " & "(" & _
    WS.Cells(i, 3) & ")"
    Mbody2 = "<font style=""color:rgb(255,0,0)"">" & WS.Cells(i, 13)
     
    Set OutApp = CreateObject("Outlook.Application")
            Set OutMail = OutApp.CreateItem(0)
     
            strbody = "<font size=""3"" face=""Calibri"">" & _
                      "Bonjour,<br>" & _
                      "<br>blabla: " & " " & "<b>" & Mbody & "</b>" & "</font>" & _
                      " à faire avant le  " & "<b>" & Mbody2 & "</b>" & "</font>" & "." & _
                      "<br><br>Cordialement," & _
                      "<br><br>blabbla</font>"
     
    With OutMail
                 .To = ""
                 .CC = ""
                 .BCC = ""
                 .Subject = "Rappel Métrologie"
                 .HTMLBody = strbody
                 .Send
     
             End With
     
             Set OutMail = Nothing
             Set OutApp = Nothing
    End If
     
    End Sub
    Bref mon code simpliste n'est plus au niveau... pourriez-vous avoir la gentillesse de m'aider svp ?

    Merci d'avance !
    Au plaisir,
    Elodie

  2. #2
    Membre chevronné
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 214
    Par défaut
    Bonjour

    il manque le next i
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 5 To 22next i
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If WS.Cells(i, 13) > 0 And WS.Cells(i, 13) < WS.Cells(2, 13) alors mesage => il ne te suffit pas de renseigner les "to" ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i = 5 to 22
    Mbody= Mbody & vblf & ws.cells(i,1) & " " & ws.cells(i,2)next i
    & : concatener deux texte
    vblf : ajouter un retour a la ligne entre les deux texte

  3. #3
    Nouveau candidat au Club
    Femme Profil pro
    Chargée QC
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chargée QC
    Secteur : Alimentation

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Par défaut Popnt n°2 : Check !
    Merci,

    C'était tout bête et ça fonctionne très bien ! Je peux donc maintenant diviser les parties du tableau pour envoyer à des destinataires différents...:-)

    Il nous reste la problématique du point n° 1 : Comment faire pour que ça envoie à chaque fois un seul mail, contenant toutes les données, plutôt que un mail par cellule qui répond aux critères ? Parce que pour l'instant...je reçois 30 ou 40 mails à chaque fois...mes destinataires vont être ravis

    Cdt,
    Elodie

  4. #4
    Membre chevronné
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 214
    Par défaut
    Peut-être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    'Preparer le mail
    for i = 5 to 22
    Mbody= Mbody & vblf & ws.cells(i,1) & " " & ws.cells(i,2)next i
     
    'Send mail

Discussions similaires

  1. [XL-2000] Changer fond de plusieurs cellules selon valeur d'une cellule
    Par JonathanMQ dans le forum Excel
    Réponses: 2
    Dernier message: 28/07/2010, 16h15
  2. Concatener le contenu de plusieurs cellules selon couleurs
    Par ludion62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/05/2010, 21h05
  3. Macro envoi mail excel via office outlook web access
    Par tony020422 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 08/07/2009, 10h31
  4. Comment selection plusieur cellules avec Cells?
    Par darkspoilt dans le forum VBA Access
    Réponses: 1
    Dernier message: 06/07/2007, 13h56
  5. [Javamail] Envoi mail avec plusieurs smtp
    Par igloof dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 02/11/2006, 13h08

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