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 :

Envoi de mail en fonction d'initial et d'une valeur de cellule. [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2019
    Messages : 3
    Par défaut Envoi de mail en fonction d'initial et d'une valeur de cellule.
    Bonjour,

    Je suis débutant en VBA je souhaiterai dans un fichier envoyer un mail en fonction de la valeur d'une cellule je m'explique :

    par exemple :

    J'ai des initial en A1 "MP" ou "JC" ou "CD" et en C1 une valeur "en commande" ou "reçu".

    Je voudrais pouvoir envoyer un mail à la personne concernée en fonction des initiale et lorsque le statut de la commande change par exemple quand il passe de en commande a reçu.

    J'arrive à envoyer le mail mais sans les conditions des initiale et a une seule adresse mail voici mon début de 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
    Private Sub Worksheet_Change(ByVal target As Range)
        Dim Adresse As String, olApp As Object, M As Object
            If target.Column = 11 And target.Row > 1 Then
                Adresse = "@"
            Set olApp = CreateObject("Outlook.Application")
            Set M = olApp.CreateItem(olMailItem)
            With M
                .Subject = "Statut commande modifié"
                .Body = "Le statut de votre commande ligne " & target.Row & " de l'onglet RS est " & target.Value & ""
                .Recipients.Add Adresse
                .Send
            End With:D
        End If
        End Sub
    Merci pour vos réponses Nom : Capture.PNG
Affichages : 625
Taille : 12,6 Ko

  2. #2
    Membre éprouvé
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juillet 2018
    Messages
    973
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Juillet 2018
    Messages : 973
    Par défaut
    Bonjour,

    concernant la condition d'envoi, tu utilises ton "target.value" dans le corps de ton mail, il te suffit donc, avant de réaliser ta procédure d'envoi de mail, de vérifier si ta variable contient bien "reçu" avec un simple IF (ou d'incorporer le test dans ton IF de départ).

    Pour l'adresse mail, la macro ne peut pas deviner seule à qui l'envoyer en fonction des initiales, il faut donc que tu ais un tableau de correspondance qui dit pour chaque initiale possible, l'adresse à qui envoyer le mail.

    Une fois le tableau créé sur un de tes onglets, lorsque tes conditions d'envoi sont vérifiées, il te suffit d'aller chercher l'adresse dans le tableau à l'aide de la fonction VLookUp par exemple (RechercheV) :

    https://docs.microsoft.com/fr-fr/off...nction.vlookup


    Cordialement.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2019
    Messages : 3
    Par défaut
    Bonjour,

    Tout d'abord merci pour la réponse,

    J'ai crée mon tableau avec la correspondance des initiales, par contre je n'arrive pas à déterminer la cellule de la colonne A correspondante a la ligne de la cellule active (par exemple K5) et de ce faite récupérer la valeur de initiales pour ensuite sélectionner la bonne adresse mail.

    Pouvez vous m'aider ?

    Merci d'avance

  4. #4
    Membre éprouvé
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juillet 2018
    Messages
    973
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Juillet 2018
    Messages : 973
    Par défaut
    Citation Envoyé par Zapuro Voir le message
    Bonjour,

    Tout d'abord merci pour la réponse,

    J'ai crée mon tableau avec la correspondance des initiales, par contre je n'arrive pas à déterminer la cellule de la colonne A correspondante a la ligne de la cellule active (par exemple K5) et de ce faite récupérer la valeur de initiales pour ensuite sélectionner la bonne adresse mail.

    Pouvez vous m'aider ?

    Merci d'avance

    Alors c'est tout simple, vous savez déjà récupérer la ligne active, puisque vous utilisez Target.Row dans le corps de votre mail, vous avez donc déjà fait la moitié du chemin.

    Il ne reste plus qu'à préciser la colonne, et là deux solutions :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    variable = Range("A" & Target.Row)
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    variable = Cells(Target.Row, 1)

    Une fois que vous avez mis cela en place, faites déjà quelques essais de votre côté pour récupérer l'adresse mail, avec la fonction VLookUp, et si cela ne fonctionne pas, venez poster ce à quoi vous serez arrivé, et l'on essaiera de voir où se situe l'erreur.


    Cordialement.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2019
    Messages : 3
    Par défaut
    Bonjour,

    Merci pour l'aide j'ai réussit.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Envoi de mail un par un à un avec liste + texte personnalisé dans cellule
    Par Barth1309 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2017, 15h13
  2. [XL-2010] Problème envoi de mail avec Lotus lors du lancement d'une Macro via une tache planifiée
    Par Banjalex59 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/03/2015, 20h19
  3. Envoi de mail en fonction d'une valeur
    Par Technicus dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 26/10/2012, 16h07
  4. Création d'une fonction qui prend en argument une liste de cellule
    Par Dereck07 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/12/2007, 20h49
  5. Fonction ne retournant pas toujours une valeur
    Par mastochard dans le forum C
    Réponses: 14
    Dernier message: 25/05/2006, 12h13

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