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 :

Envois par mail, ligne utilisée d'un classeur excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    amateur
    Inscrit en
    Juin 2015
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Juin 2015
    Messages : 71
    Par défaut Envois par mail, ligne utilisée d'un classeur excel
    Bonjour,

    J'ai un tableau avec 12 colonnes, de A à L.
    Quand je rempli la ligne x dans la colonne L, Je souhaite envoyer par mail les 5 cellules de la ligne x correspondant aux colonnes de A à E.

    Je gère l’envoi du mail avec le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Dim ol As Object, myItem As Object
    Dim des As String
    Dim cop As String
     
    Set ol = CreateObject("outlook.application")
     
    Set myItem = ol.CreateItem(olMailItem)
    myItem.To = InputBox("Destinataire : ", "Destinataire", "toto@gmail.com")
    myItem.CC = InputBox("Destinataire copie : ", "Destinataire", "toto@gmail.com")
    myItem.Subject = "Envoi des tâches hebdo ..... " & Sheets("Taches récurentes").Range("B2").Value
    myItem.Body = "Vous trouverez ci-joint le fichier contenant les taches hebdomadaires ...... " & Sheets("Taches récurentes").Range("B2").Value & " à traiter." 'je dois mettre les cellules à envoyer ici elles 
    'doivent correspondre à la ligne dont la cellule de la colonne L est concernée par le remplissage et uniquement lors de cette action, pas les autres lignes dont la colonne L est déjà remplie.......
     
    myItem.Attachments.Add ActiveWorkbook.FullName 'fichier en cours d'utilisation envoyé en attaché:
    CommandButton2.Caption = "Rapport envoyé le " & Now()
    CommandButton2.Enabled = False
    myItem.Send
    Set ol = Nothing
    MsgBox ("Message envoyé")


    Comment faire pour que ce mail soit envoyé automatiquement quand la cellule de la colonne L de cette ligne est remplie et seulement avec les bonnes infos ?

    Merci pour vos réponses....

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Bonjour,

    Comment faire pour que ce mail soit envoyé automatiquement quand la cellule de la colonne L de cette ligne est remplie
    En déclenchant la macro quand une cellule de la colonne L est modifié, voir https://silkyroad.developpez.com/VBA...Feuille/#LII-E

    et seulement avec les bonnes infos

    C'est quoi les bonnes infos ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if les_bonnes_infos = true then ...

  3. #3
    Membre confirmé
    Homme Profil pro
    amateur
    Inscrit en
    Juin 2015
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Juin 2015
    Messages : 71
    Par défaut
    En fait les bonnes infos sont simplement quand la cellule de la colonne L est "non vide"...

    Je viens de regarder le lien fournis mais comment l'appliquer uniquement à la colonne L et retrouver l'index pour n'extraire que la ligne concernée ?

    Edit :

    En rajoutant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        If Target.Count > 1 Then Exit Sub
     If Target.Column = 12 Then
        MsgBox "Vous venez de modifier la cellule " & Target.Address & " (" & Target.Value & ")"
     End If
    Je ne prend en compte que les changement dans la colonne L, comment extraire la ligne ?

    Edit :

    Je viens de trouver il suffit de prendre comme référence:

    target.row !

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Citation Envoyé par merymad69 Voir le message
    Je viens de regarder le lien fournis mais comment l'appliquer uniquement à la colonne L et retrouver l'index pour n'extraire que la ligne concernée ?
    Il faut utiliser la variable Target (qui est de type Range), regarde les différents exemples proposés
    Pour l'appliquer uniquement à la colonne L, il suffit de vérifier quel est la colonne de Target si c'est la bonne on continue, sinon on arrête la macro

    edit:
    comment extraire la ligne ?
    Comme tu l'a compris, Target.column te donne la colonne de Target, Target.row te donnera la ligne

    edit2:
    Donc pour ta plage de A à E de mémoire, ça donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range("A" & Target.row &":E" & Target.row )

  5. #5
    Membre confirmé
    Homme Profil pro
    amateur
    Inscrit en
    Juin 2015
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Juin 2015
    Messages : 71
    Par défaut
    Merci Halaster08, j'avais pas vu ta réponse.

    J'ai trouvé une autre écriture mais cela fonctionne. Merci.

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

Discussions similaires

  1. [XL-2003] Transfert d'une ligne vers formulaire excel + envoi par mail
    Par coolman53 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/09/2012, 12h05
  2. envoi par mail
    Par natie_49 dans le forum Access
    Réponses: 6
    Dernier message: 29/06/2006, 08h57
  3. Envoi par mail d'une page asp existante
    Par killerhertz dans le forum ASP
    Réponses: 10
    Dernier message: 22/06/2006, 13h31
  4. Récupérer adresse erronnée + envoi par mail
    Par Cid67 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/04/2006, 11h17
  5. [Mail] envoi par mail : pb de point d'exclamation
    Par Faure dans le forum Langage
    Réponses: 12
    Dernier message: 20/03/2006, 12h02

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