XL 2013 Avec un tableau croisé dynamique envoyer un mail seulement à une sélection

Estellepokis

XLDnaute Nouveau
Bonjour,

Je suis débutante en Excel, macro, VBA...

J'ai une question pour connaitre une procédure à un projet que j'ai.

J'ai un tableau croisé dynamique avec 3 filtres. A la sortie il va m'afficher le nom, prénom et adresse mail de différentes personnes.
Jusqu'à présent, on pouvait appuyer sur l'adresse mail d'une personne et grâce à une macro et VBA ça nous renvoyer sur outlook pour lui envoyer un mail.
Or, j'aimerais quand il m'affiche les différentes personnes en fonction du filtre que j'ai choisi, en sélectionner plusieurs (peut-être grâce à des cases à cocher ?) et leur envoyé un mail groupé en copie caché.

Je pensais pour ça, DANS MA BDD :
> Ajouter une colonne "MAIL" avec seulement une case à cocher dans chaque ligne correspondant à une personne
> Faire apparaître le champ "MAIL" dans mon tableau croisé dynamique
Mais je n'arrive pas à faire apparaître les cases à cocher dans le tableau dynamique ? Il y a écrit "vide" ?

Ensuite en cochant les cases, l'idée était d'appuyer sur un bouton "Envoyer mail" qui serait relié au case coché et voilà.

Mais je ne sais pas si j'ai la bonne procédure ? Avez-vous des indications pour une novice comme moi en Excel ?
 

Estellepokis

XLDnaute Nouveau
Au lieu d'employer une case à cocher dans la colonne Mail,, utilise plutôt un caractère d'une police Wingdings ou autre qui affichera le symbole voulu (Wingdings 254 est parfait). Ca sera inclus dans le TCD.

Désolée je débute... je n'ai pas bien compris ?
Dans la BDD je mets un symbole ? Mais comment dans le TDC comprendre que cette ligne a été sélectionné ?
 

Estellepokis

XLDnaute Nouveau
Dans la BDD, tu mets un caractère qui apparaît comme un symbole. La macro traitera ce caractère comme un caractère quelconque dont on peut tester la valeur.
Si tu ne veux pas de symbole, tu peux mettre VRAI ou FAUX dans la colonne Mail.
D'accord.
Donc dans la BDD j'ai mis le Wingdings 254 à toutes les lignes de la colonne mail, j'ai créé une macro qui le change de couleur dans le TDC.

Dans VBA il faut maintenant que je fasse un code :
Si j'appuie sur le Wingdings 254 de telle ligne dans le TDC => la macro s'active => le Wingdings 254 devient donc rouge

Et à la fin je fais un code qui envoie un mail à tous les Wingdings 254 qui sont rouges ?

C'est possible ? J'essaye de suivre cette procédure ?
 

Estellepokis

XLDnaute Nouveau
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("N:N")) Is Nothing Then

Sub Macro1()
    Range("N:N").Select
    With Selection.Font
        .Color = -16776961
        .TintAndShade = 0
    End With
End Sub
End If

End Sub

J'ai fait ça pour l'instant
Le Range("N:N") c'est pour dire que cette commande n'est possible que sur la colonne N, c'est bon ou pas ça ? Je ne suis pas sûre.
Et si je veux qu'en re-cliquant sur la case le Wingdings 254 redevienne noir je rajoute un If ?
 

Estellepokis

XLDnaute Nouveau
Essaie de remplacer cette ligne par:
if target.column = 14 then
Effectivement avec cela ça marche !

Maintenant il faut que je code la macro qui permet de récolter toutes les adresses mails qui sont sur une ligne ou le windings 254 est rouge.
Pour ça j'ai créé le bouton "Envoyer mail", je vais (essayer) de coder la macro. Mais je vais avoir des macros imbriqués dans des macros non ?
 

Discussions similaires

Statistiques des forums

Discussions
312 083
Messages
2 085 189
Membres
102 809
dernier inscrit
Sandrine83