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 :

Filtrer les doublons sans les supprimers lors de l'envoi d'un mail automatique


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Filtrer les doublons sans les supprimers lors de l'envoi d'un mail automatique
    Bonjour à tous,

    Je suis débutant en VBA.

    J'ai réussi à créer une macro qui permet d'envoyer un mail identique et automatique a la colonne d'adresse mails dés qu'ils ont été selectionné par une croix dans la colonne suivante. Mon problème est qu'il y a des adresses en double voir en triple et que ma macro envoi le même nombre de mails qu'il y a de doublons.
    J'aimerais donc que la macro me filtre les doublons avant l'envoi du mail mais sans les supprimer de mon tableau excel.

    J'espère m'être fait comprendre.

    Voici ma macro :


    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
    Sub Envoyer_Mail_Outlook()
    ' Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"
     
    Dim ObjOutlook As New Outlook.Application
    Dim oBjMail
    Dim Nom_Fichier As String
    Dim Plage As Range, R As Range
    Dim ListeMails As String
     
        Set ObjOutlook = New Outlook.Application
        Set oBjMail = ObjOutlook.CreateItem(olMailItem)
     
    '---------------------------------------------------------
       'Exemple pour envoyer un classeur en pièce jointe
       'Nom_Fichier = Application.GetOpenFilename("Fichier excel (*.xls;*.xlsx;*.xlsm), *.xls;*.xlsx;*.xlsm")
       'If Nom_Fichier = "Faux" Then Exit Sub
    '---------------------------------------------------------
       'Ou bien entrer le path et nom du fichier autrement
       Nom_Fichier = Application.GetOpenFilename("Copie de Projets ASD 3 4 FAE(*.xls;*.xlsx;*.xlsm), *.xls;*.xlsx;*.xlsm")
        If Nom_Fichier = "Faux" Then Exit Sub
    '---------------------------------------------------------
    'Collecte les cellules contenant une croix en colonne E
        Set Plage = Range("H5:H326").SpecialCells(xlCellTypeConstants, 2)
        'Pour chaque cellule collectée
        For Each R In Plage
            'On récupère l'adresse mail en colonne précédente(D)
            ListeMails = ListeMails & IIf(Len(ListeMails) > 0, ";", "") & R.Offset(0, -1).Text
        Next R
     
         With oBjMail
            .To = ListeMails ' le destinataire
           .Subject = "test"          ' l'objet du mail
           .Body = "essai essai essai"
           .Attachments.Add Nom_Fichier '"C:\Data\essai.txt" ' ou Nomfichier
           .Display  '   Ici on peut supprimer pour l'envoyer sans vérification
           .Send
        End With
     
        Set oBjMail = Nothing
        Set ObjOutlook = Nothing
     
     
    End Sub

    Merci pour vos réponse.

    Cordialement,

  2. #2
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Bonjour et bienvenue au forum
    Je pense que le plus simple est de procéder comme cela :
    1. Copier la liste des mails et autres données importantes pour envoyer le mail (à copier dans une nouvelle feuille du classeur)
    2. Eliminer les doublons en les supprimant grâce à l'outils de suppression des doublons d'Excel *
    3. Envoyer les mails avec cette nouvelle liste sans doublons
    4. Supprimer la feuille avec la liste intermediaire.


    * Suppression des doublons en "manuel" sur Excel : Données > Outils de données > Supprimer les doublons (sur Excel2016, mais ça doit être au même endroit +/- sur Excel2010). Pour avoir le code correspondant, utiliser l'enregistreur de macro et adapter le code obtenu.

    J'espère que tu pourras avancer comme cela !

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Re Bonjour,

    Alors j'ai encore un petit souci. J'ai suivi tes conseils en créant une macro qui m'extrait les adresses mails sans les doublons dans une nouvelle feuille du classeur. Maintenant mon probléme est que je n'arrive pas à ce que ma macro d'envoi de mail automatique utilise les adresses mail sans doublons extraite dans la nouvelle feuille. J'ai essayer de rajouter dans mon code VBA : Sheets("nom de la nouvelle feuille").select et Sheets("nom de la nouvelle feuille").activate
    mais ça ne fonctionne pas.

    Help please,

    Cordialement,

Discussions similaires

  1. Compter les fournisseurs sans les doublons
    Par Mathsdeb dans le forum Excel
    Réponses: 14
    Dernier message: 26/02/2015, 20h12
  2. [AC-2010] Filtrer les doublons sans suppression
    Par Goose- dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/11/2012, 22h23
  3. Réponses: 7
    Dernier message: 20/10/2010, 19h05
  4. Supprimer les doublons sans tri préalable des données
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 20/12/2007, 08h16

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