Macro récupérant adresse mail dans cellule Excel [Résolu/Fermé]

Signaler
Messages postés
17
Date d'inscription
mercredi 17 septembre 2014
Statut
Membre
Dernière intervention
20 novembre 2014
-
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
-
Bonjour ! :)

J'ai la macro suivante permettant d'envoyer une feuille excel à une personne. La macro fonctionne et envoie ma feuille au destinataire dont j'indique l'adresse mail. Je voudrais que ma macro aille récupérer l'adresse mail dans une cellule et l'applique à la macro.



Sub SendMail()

' Copy the sheet(1.5)
ThisWorkbook.Sheets(1.5).Copy

' Send Email
With ActiveWorkbook
.SendMail Recipients:=Array("....@....com"), Subject:="DMS" & Format(Date, "dd/mmm/yy")
.Close SaveChanges:=False
End With

End Sub



Ceci afin d'éviter à l'utilisateur de modifier la macro à la main. Les différentes adresses seront listées et il choisira celle qu'il veut utiliser.

Est-ce possible ?

Si quelqu'un pouvait m'aider ce serait super ! Merci d'avance ! :)


12 réponses

Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 061
Bonjour,
Juste au passage sans avoir testé.
Les adresses courriels se trouvent dans la plage A2 :A10 par exemple.
Partie du code :
.........
For Each adrc In Range("A2:A10") ' endroit ou se trouve vos adresse courriel
With ActiveWorkbook
.SendMail Recipients:=adrc, Subject:="DMS" & Format(Date, "dd/mmm/yy")
.Close SaveChanges:=False
End With
Next adrc
..........
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 061
Bonjour,
J'ai mal interprété l'explication.
Il faut créer une liste déroulante (par exemple en D1) et vous lui donnez comme référence la plage A2 :A10 et ainsi l'adresse est choisie en [D1] et dans votre code la ligne :
.SendMail Recipients:=Range("D1").Value ....

Messages postés
17
Date d'inscription
mercredi 17 septembre 2014
Statut
Membre
Dernière intervention
20 novembre 2014

Bonjour,

Merci ce code fonctionne mais j'aimerais que le mail soit envoyé à l'adresse que j'aurais sélectionnée dans ma liste et pas à toute la liste. Je ne vois pas comment faire pour indiquer que j'ai sélectionné une adresse et que je veux que ce soit celle-ci qui soit utilisée. Le numéro de cellule change selon l'adresse que je choisis ( logique ) donc je ne peux pas noter un seul numéro de cellule...

Voici mon code :


Sub SendMail2()
' Copy the sheet(1)
ThisWorkbook.Sheets(1.5).Copy

' Send Email
For Each adrc In Range("B28:B30") ' endroit ou se trouve vos adresse courriel
With ActiveWorkbook
.SendMail Recipients:=adrc, Subject:="DMS" & Format(Date, "dd/mmm/yy")
.Close SaveChanges:=False
End With
Next adrc

End Sub


Merci d'avance et bonne journée :)
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 061
Bonjour,
Avez-vous bien lu mon deuxième message.... ?

Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 061
Bonjour,
Je ne sais pas comment et organisée votre application, donc difficile de ...
Pouvez-vous mettre le fichier comme exemple sur https://www.cjoint.com/ et poster le lien ?

Messages postés
17
Date d'inscription
mercredi 17 septembre 2014
Statut
Membre
Dernière intervention
20 novembre 2014

Bonjour,

Merci pour vos réponses. Mes besoins ont changés, je voudrais que ma macro s'adapte quand je change le numéro de feuille à envoyer. Je vous ai mis mon fichier excel sur ce lien :

https://www.cjoint.com/?0JclvgU8bL6
J'espère qu'il fonctionne !

Bonne journée ! :)
Messages postés
17
Date d'inscription
mercredi 17 septembre 2014
Statut
Membre
Dernière intervention
20 novembre 2014

http://cjoint.com/data/0JclAB6hKej.htm
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 061
Bonjour,
Merci pour le fichier.
Problème fibre optique, une réponse demain matin..... !

Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 061
Bonjour,
Mais ou sont les adresses courriels...... ?
En plus : People 1 correspond toujours à carte 7 et ainsi de suite Oui / Non ?

Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 061
Bonjour,
Pas de nouvelle ..., alors voici ma proposition : https://www.cjoint.com/?3JcxwI96odz
Messages postés
17
Date d'inscription
mercredi 17 septembre 2014
Statut
Membre
Dernière intervention
20 novembre 2014

Bonjour, Merci pour tes réponses! :)

Pour répondre à ta question, les numéros de cartes assignés aux auditeurs changent. La macro que tu m'as envoyée fonctionne mais envoie la carte 2 quand je demande la 4, certainement parce que la carte 2 se trouve dans la 4ème feuille. Comment modifier cela ?

Aussi comment faire pour dupliquer cette macro sur les autres lignes de mon tableau? Je voudrais savoir si c'est possible de faire encore plus rapide : Avoir une seule macro qui envoie à tous mes auditeurs les cartes qui leurs sont destinées ?

Merci beaucoup et bonne journée !
Messages postés
9745
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
24 juillet 2020
1 061
Bonjour,
La macro que tu m'as envoyée fonctionne mais envoie la carte 2 quand je demande la 4, certainement parce que la carte 2 se trouve dans la 4ème feuille.

Ce que vous dite est faux car : avec toutes les explications manquantes j'ai pris pour acquis que le numéro de la carte correspondait au numéro de la feuille soit pour le Peopel 3 carte 4 correspond la feuille 4 du classeur ave Peopel 2 carte 2 la feuille 2 et ainsi de suite.

Aussi comment faire pour dupliquer cette macro sur les autres lignes de mon tableau?

Note : le choix se fait sur la feuille [EnvoiChoix] via la liste déroulante qui a comme référence le tableau de la feuille [tableau]. Donc une macro pour le tout.

Je voudrais savoir si c'est possible de faire encore plus rapide : Avoir une seule macro qui envoie à tous mes auditeurs les cartes qui leurs sont destinées ?
Là vous tournez en rond car je vous l'avais proposé la première fois avec comme résultat ...... mais j'aimerais que le mail soit envoyé à l'adresse que j'aurais sélectionnée dans ma liste et pas à toute la liste.

Salutations.
Le Pingou
Messages postés
17
Date d'inscription
mercredi 17 septembre 2014
Statut
Membre
Dernière intervention
20 novembre 2014

Mon problème est résolu ! :)