Envoi en CC mail liste en colonne D sans doublons
Résolu/Fermé
PYGOS69
Messages postés
452
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
10 octobre 2023
-
Modifié le 27 nov. 2018 à 13:46
danielc0 Messages postés 1408 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 18 janvier 2025 - 27 nov. 2018 à 18:37
danielc0 Messages postés 1408 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 18 janvier 2025 - 27 nov. 2018 à 18:37
A voir également:
- Envoi en CC mail liste en colonne D sans doublons
- Liste déroulante excel - Guide
- Yahoo mail - Accueil - Mail
- Liste déroulante en cascade - Guide
- Déplacer une colonne excel - Guide
- Formule somme excel colonne - Guide
1 réponse
danielc0
Messages postés
1408
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
18 janvier 2025
166
27 nov. 2018 à 12:57
27 nov. 2018 à 12:57
Bonjour,
Non testé : j'ai mis ci-dessous les deux macros que j'ai modifié. Chaque ligne modifiée est suivie de 3 astérisques. J'ai supposé que la liste des adresses des responsables commençait en D1 :
Daniel
Non testé : j'ai mis ci-dessous les deux macros que j'ai modifié. Chaque ligne modifiée est suivie de 3 astérisques. J'ai supposé que la liste des adresses des responsables commençait en D1 :
Sub filtre() Dim plg As Range Dim strbody As String Dim fich As Variant Dim ShT As Worksheet Dim Copies As String '*** Dim C As Range '*** fich = Application.GetOpenFilename("Tous les fichiers (*.xlsx),*.xlsx") If fich = False Then Exit Sub Workbooks.Open fich Application.ScreenUpdating = False With Sheets(1) For Each C In .Range("D1", .Cells(.Rows.Count, 4).End(xlUp)) '*** Copies = Copies & ";" & C.Value '*** Next C '*** Copies = Right(Copies, Len(Copies) - 1) '*** Sheets.Add Set ShT = ActiveSheet 'définition de la plage de données initiale Set plg = .Range("A4:l" & .Cells(Rows.Count, 1).End(xlUp).Row) 'copie dans une colonne provisoire le nom des mails qu'il faudra creer/filtrer .[C:C].Copy .[O1] 'supprime doublons .[O:O].RemoveDuplicates Columns:=Array(1), Header:=xlYes 'utilisation de deux cellules provisoires une pour l'entete de recherche .[P1] = .[C4] 'on passe en revu toutes les participations à dispo For i = 4 To .[O65536].End(xlUp).Row ShT.[A1].CurrentRegion.Delete 'l'autre les participants à rechercher .[p2] = .Range("O" & i) 'filtre avancé avec copie immédiate plg.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.[P1:P2], CopyToRange:=ShT.[A1] ShT.Range("A:l").EntireColumn.AutoFit ShT.Rows(1).Insert ShT.[A1] = "" strbody = "<b><font color=cornflowerblue>" & "<i>Bonjour,</i><p><i><font color=cornflowerblue></i>" & "<b><font color=cornflowerblue>" & "<p>Je vous prie de trouver ci-après, le récapitulatif de votre participation à XXXX!" & "<A href=" & "file://..........." & "<p>Délégation électronique à signer svp !</A>" & "<b><font color=cornflowerblue>" & RangetoHTML(ShT.Range("A1:l" & ShT.Cells(Rows.Count, 1).End(xlUp).Row)) & "<p>Bien cordialement," EnvoiAutomatiqueMail strbody, .[p2], Copies Next i End With ActiveWorkbook.Close False End Sub Public Sub EnvoiAutomatiqueMail(strbody As String, adresse As String, Copies As String) '*** Dim OutlookApp As Object Dim OutlookMail As Object Dim adresse2 As String Dim message As String Dim sujet As String Dim i As Integer Dim delegation As String delegation = "" sujet = "Récapitulatif participation à XXXX + lien vers délégation électronique" Set OutlookApp = CreateObject("outlook.application") Set OutlookMail = OutlookApp.createitem(0) With OutlookMail .Subject = sujet 'sujet du mail .To = adresse 'adresse mail destinataire .cc = Copies '*** .HTMLBody = strbody .Display 'affiche le mail '.send 'on envoie le mail créé End With End Sub
Daniel
Modifié le 27 nov. 2018 à 15:57
Merci pour L'évolution du script....
la liste des adresses des responsables commence en D5 (j'ai modifié...)
Comment procéder pour enlever les doublons comme pour la colonne C ?
Encore merci !
27 nov. 2018 à 16:15
Daniel
27 nov. 2018 à 18:29
Pour chaque participant , un mail doit être transmis à son responsable et non à tous les responsables ....
Le participant 1 reçoit dans son mail un récapitulatif = une invitation à signer la délégation électronique.
+ copie à son responsable
Le participant 2 reçoit dans son mail un récapitulatif = une invitation à signer la délégation électronique.
+ copie à son responsable
Cela fonctionne pour le récapitulatif avec le filtre mais pas pour le responsable...
Comment effectuer le filtre pour les responsables ?
27 nov. 2018 à 18:37
Daniel