Macro récupérant adresse mail dans cellule Excel

Résolu
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

  1. 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
    ..........
    0
    1. 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 ....

      0
      1. 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 :)
        0
        1. Bonjour,
          Avez-vous bien lu mon deuxième message.... ?

          0
          1. 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 ?

            0
            1. 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 ! :)
              0
              1. http://cjoint.com/data/0JclAB6hKej.htm
                0
                1. Bonjour,
                  Merci pour le fichier.
                  Problème fibre optique, une réponse demain matin..... !

                  0
                  1. Bonjour,
                    Mais ou sont les adresses courriels...... ?
                    En plus : People 1 correspond toujours à carte 7 et ainsi de suite Oui / Non ?

                    0
                    1. 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 !
                      0
                      1. 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
                        0
                    2. Mon problème est résolu ! :)
                      0