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 :

Macro pour envoyer un message (excel) [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 15
    Points : 9
    Points
    9
    Par défaut Macro pour envoyer un message (excel)
    Bonjour,
    s'il vous plais j'aimerai que quelqu'un un m'écrit un macro excel qui envoie un message automatiquement a partir une cellule. je vais être plus claire.
    en fait c'est un fichier excel (suivi de projets), on a quatre colonne la première renvoi a un projet, la deuxième est la date d envoi du projet a un organisme pour l'approuver ou non, la troisième est la date de retour et enfin la dernière est le nombre de jours (la différence entre AUJOURDHUI() et la date d envoi) en cas ou on a pas la date de retour. le macro devra se déclencher si une des cellule de cette quatrième colonne dépasse 20 jours elle doit envoyer un message a une email bien précis. le contenu du mail devra contenir "le nombre de jour du projet qui correspond a la même cellule a dépassé 20 jours". enfin la boite de messagerie utilisé est lotus note. j'espère que je suis bien claire. et merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Citation Envoyé par jinane13 Voir le message
    s'il vous plais j'aimerai que quelqu'un un m'écrit un macro excel qui envoie un message automatiquement a partir une cellule
    DVP est un forum d'entraide et non pour faire tous le travail des autres, merci d'abord de regardes cela :

    Lotus

    Philippe

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 15
    Points : 9
    Points
    9
    Par défaut question
    merci pour votre aide je vais utuliser ce macro.mais s'il vous plait pouvez vous me dire ou je peux placer cette condition:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          dim lig as long, drlig as long
           drlig= range ("A"  &lig).value >20 then 
           msgBox "les jours du projet a dépassé 20 jours " :"&lig
    end if
    Next

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 922
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    Il me semble difficile au vu du peu de lignes de code que tu donnes de te donner une réponse.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    bonjour corona et philippe

    jinane 13
    je suis parfaitement d'accord avec phillippe on est pas la pour faire le travail des autres
    et quand on demande le code déjà écrit pour voir si l'on peut t'aider
    çà n'est pas la peine de copier coller n'importe quoi

    bien que dans tes trois lignes tu a résolu le problème de comptage de lignes


    regarde du coté de la fonction "datediff" pour l'écart de date
    ensuite pour lotus tu a des pistes dans la faq
    au plaisir

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    bonjours
    Monsieur patrick comme j'ai deja explique a monsieur philipe je vous ai pas demande de faire mon travail c juste une partie qu'il me faut pour faire mon projet. je m'excuse de ne pas etre capable d'ecrire un programme tout d'abord ce language sera etudie jusqu'a la prochaine année. ensuite je suis en stage de decouverte et on m'a demander de faire une application ou j'ai besoin de ce macro. je me suis adressé a ce forum pour m'aider et pas pour me faire mon travail. il m'ai dificille de comprendre la philosophie de ce language c a d ou place les fonction la declaration.

    voila jai réfelechi a faire une matrice en sein de ce 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    'Envoi d'un mail avec Lotus Notes
    'Subject : sujet du mail
    'Attachment : nom d'une pièce jointe
    'Recipient : adresse e-mail du destinataire principal
    'ccRecipient : destinataire en copie
    'bccRecipient : destinataire en copie invisible
    'BodyText : corps du mail
    'SaveIt : mettre à True pour que le mail soit sauvegardé
    'Password : mot de passe
     
    Public Sub SendNotesMail(ByVal Subject As String, ByVal Attachment As String, _
                             ByVal Recipient As String, ByVal ccRecipient As String, _
                             ByVal bccRecipient As String, ByVal BodyText As String, _
                             ByVal SaveIt As Boolean, ByVal Password As String)
     
        Dim Maildb As Object      'La base des mails
        Dim UserName As String    'Le nom d'utilisateur
        Dim MailDbName As String  'Le nom de la base des mails
        Dim MailDoc As Object     'Le mail
        Dim AttachME As Object    'L'objet pièce jointe en RTF
        Dim Session As Object     'La session Notes
        Dim EmbedObj As Object    'L'objet incorporé
     
        'Crée une session notes
        Set Session = CreateObject("Notes.NotesSession")
     
        '*** Cette ligne est réservée aux versions 5.x et supérieur : ***
        Session.Initialize (Password)
     
        'Récupère le nom d'utilisateur et crée le nom de la base des mails
        UserName = Session.UserName
        MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
     
        'Ouvre la base des mails
        Set Maildb = Session.GETDATABASE("", MailDbName)
        If Not Maildb.ISOPEN Then Maildb.OPENMAIL
     
        'Paramètre le mail à envoyer
        Set MailDoc = Maildb.CREATEDOCUMENT
        MailDoc.Form = "Memo"
        MailDoc.sendto = Recipient
        MailDoc.CopyTo = ccRecipient
        MailDoc.BlindCopyTo = bccRecipient
        MailDoc.Subject = Subject
        MailDoc.Body = BodyText
        MailDoc.SAVEMESSAGEONSEND = SaveIt
     
        'Prend en compte les pièces jointes
        If Attachment <> "" Then
            Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
            Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
            MailDoc.CREATERICHTEXTITEM ("Attachment")
        End If
     
        'Envoie le mail
        MailDoc.PostedDate = Now()
        MailDoc.SEND 0, Recipient
     
        Set Maildb = Nothing
        Set MailDoc = Nothing
        Set AttachME = Nothing
        Set Session = Nothing
        Set EmbedObj = Nothing
    End Sub
    cette matrice indiquera dans le message la ligne ou le nombre de jours a dépasse 20 jours.
    j'ai pensé au tableau mais je n'ai trouvé que la déclaration, je ne sais pas comment le remplir.

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    je vais etre plus claire:

    par exemple si la colonne 4 indique ou se trouve le nombre de jours
    (je vais ecrire seulement algorithme)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    with Range(8)
           for i= 1..N faire
                 if T[i][8] >20 then sendmail 
                               else ne rien faire
            end;
        end with;

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Ton algorithme ressemble de loin à du code VBA ?? (mais de loin) et n'est pas plus clair que ton texte... essai d'écrire en français...


    c'est quoi Range(8) ...?

    Tu utilise le mot clef With, mais sait-tu comment il fonctionne, je ne vois ensuite aucune variable dont le nom commence par un point (.) voir aide en ligne pour with.

    Il faut décomposer ton projet ... tu as une fonction (SendNotesMail ) pour envoyer un mail lotus (le client lotus Note doit être installé sur ton PC), as tu testé l'utilisation de ce code ..?

  9. #9
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 922
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    je m'excuse de ne pas etre capable d'ecrire un programme
    Tu dis que tu ne comprends pas le language mais qui a écrit la procédure SendNotesMail ?
    Bien que tes explications soient très embrouillées, voici une petite routine qui t'aidera peut-être à réaliser ce que tu souhaites.

    Cette procédure parcourt les cellules de la colonne 4 ("D") de la feuille nommée feuil1 du classeur où est écrit le code (ThisWorkbook) et ce de la deuxième ligne, parce-que je suppose qu'il y a une étiquette (nom d'un champs) en première ligne, jusqu'à la dernière remplie.
    Dès qu'une cellule a une valeur égale ou supérieur à 20, on fait appel à la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Dim sht As Worksheet: Set sht = ThisWorkbook.Worksheets("Feuil1")
     Dim r As Long
     With sht
      For r = 2 To .Cells(Rows.Count, 4).End(xlUp).Row
       If .Cells(r, 4) >= 20 Then SendNotesMail  ' doit suivre les arguments à passer à la procédure SendNotesMail 
      Next
     End With

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    merci pour votre aide cet macro me serai utile. c pas moi qui a ecrit le macro de sendmail j'ai juste copié collé.
    merci une autre fois c très gentille de votre part


    Range(8) correspond à la colonne 8 ou se trouve le nombre de jours qui ne dois pas depasser 20 jours
    jessaye seulement detre claire de ce que je ve faire. Pour le VB je ne suis pas encore arrive a le maitriser je viens de debuter il y a meme pas une semaine.

  11. #11
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 922
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'avais décodé au fil des interventions que c'était la colonne 8 mais dans ta première intervention tu parles de la 4ème. Y a t'il eu un glissement entretemps ?
    si une des cellule de cette quatrième colonne dépasse 20 jours elle doit envoyer un message a une email bien précis.
    Si c'est sur les cellules de la colonne 8, qu'il faut faire le test, il faut juste modifier le 4 en 8 mais j'imagine que tu as fait la rectification.

    [EDIT] Pour éviter des catastrophes, je te conseille pour débuter de prendre le temps de lire les didacticiels que tu trouveras à cette page

  12. #12
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Pour "Range" cela ne se traduit pas par colonne mais par plage .. avec ton 8 tu n'est pas cohérent avec ta description initiale ou tu parle de la colonne 4...


    sinon Corona t'as donné un code permettant de boucler sur toutes tes lignes , tu peu tester ce code en remplaçant le "SendMail.." par une instruction debug.print qui permet d'écrire dans la fenêtre exécution de VBA (accessible par CTRL+G)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      If .Cells(r, 4) >= 20 Then Debug.print "Dépassement pour : " &  .Cells(r, 1) & " | " & .Cells(r, 2) & " | " & .Cells(r, 3) & " | " & .Cells(r, 4) &
    ensuite il ne te resteras qu'as créer une fonction (ou procédure) qui appelle ton sendMail... dis-nous ci s'est bon pour la boucle et l'on part sur le sendmail.. ensuite..

  13. #13
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    merci monsieur Philipe pour votre aide
    je prendrai le soin de lire cette page pour bien maitriser le language VB.
    pour les colonne je donne juste des exemple quand je terminerai mon travail je vais joindre le fichier avec le code que j'ai suivi ainsi il sera a la disposition de tout les membre de forum et une aide pour les débutants.

    je vous prie de m'excuser

    j'ai pas bien saisi. pourquoi faire le dépassement??

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour corona et bill


    bonjour jinane13 après les indications de corona et la macro "sendmail"

    tu devrais pouvoir trouver tout seul comment associer cette condition sur la colonne 8

    tu a le mérite en tout cas d'avoir fait un peu de recherche

    maintenant il y a un petit détail et pas des moindres qui me chiffonne

    pour que ça fonctionne il faut que le fichier soit ouvert en effet ton ordi ne peu pas deviner ce que tu veux faire des que tu l'allume

    peut être que tu va devoir créer une tache qui ouvrirais ton fichier a certaine heure en invisible au cas ou tu ne travaillerais pas dessus

    et a l'open du workbook
    lancer la vérification de la colonne 8 sur toute les lignes


    enfin a mon avis tu devrais commencer par le début pour apprendre a manipuler le vba il y a des tutoriels pour ça

    ici

    ou la


    bon courage


    il faut juste modifier le 4 en 8 mais j'imagine que tu as fait la rectification.
    Il est dur ce corona!!!!

  15. #15
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    oui monsieur Patrick j'ai deja pensé à cela. je suis encore entrain de chercher une facon qu il s ouvre d'une maniere invisible. mais en attendant d'arriver à cela j'ai placé le fichier dans le demarage c a d qu il s'ouvre une fois le demarage de lord.

    j'ai compris le depassement cad qu il va depasse les trois premiere colonne pour faire la boucle sur la quatrieme colonne

  16. #16
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    a ouis !!!!

    et si tu a des heures de poses dans ta journée( repas ,pose syndicales,changement de personnel ect..... )

    combien de message va tu envoyer

    remarque!!!: au moins le destinataire est sur de savoir la situation du jour


    et pour la rendre invisible c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.visible=false
    ' tu met ca a l'open du workbook ,a manipuler avec précaution

    mais il te faudra metre un raccourci clavierpour le rerendre visible pour une utilisation manuelle

    ou une autre solution en mode reduit mais il te faudra utilisé les apis

    au plaisir

    au plaisir

    re

    allez sans les api tu reduit ta fenetre au demarrage du fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    Application.WindowState = xlMinimized
    End Sub

    au plaisir

  17. #17
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    merci monsieur patrick. cela me sera utile pour reduire la fenetre c'est ce que je cherchai.ça me fait plaisir de trouver la solution de ce problème.
    pour la colonne des nombre de jours elle comporte la date d'envoi -AUJOURDHUI()- le nombre de dimanche . le message sera envoyer le jours ou une des cellule depasse 20 jours

    rebonjour,

    monsieur Patrick, j'ai essaé avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    Application.WindowState = xlMinimized
    End Sub
    toutefois cela ne fonctionne pas je ne sais pas ou se trouve le problème

    après avoir lu les document que monsieur Patrick m'a passé je suis arrivé à faire ce code pourvu qu'il marche car il faut que j'attend jusqu'à demain pour voir si le message va être envoyé. pouvez vous voire si j'ai commis d'erreur ??
    merci d'avance



    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    sub Macro()
     Dim sht As Worksheet: Set sht = ThisWorkbook.Worksheets("Feuil1")
     Dim r As Long
     With sht
      For r = 2 To .Cells(Rows.Count, 4).End(xlUp).Row
     If .Cells(r, 4) >= 20 Then Debug.print "Dépassement pour : " &  .Cells(r, 1) & " | " & .Cells(r, 2) & " | " & .Cells(r, 3) & " | " & .Cells(r, 4) &
        then call SendNotesMail(Subject,Recipient, ccRecipient,bccRecipient,BodyText,SaveIt,Password)
      Next
     End With
     
     
    'Envoi d'un mail avec Lotus Notes
    'Subject : sujet du mail
    'Attachment : nom d'une pièce jointe
    'Recipient : adresse e-mail du destinataire principal
    'ccRecipient : destinataire en copie
    'bccRecipient : destinataire en copie invisible
    'BodyText : corps du mail
    'SaveIt : mettre à True pour que le mail soit sauvegardé
    'Password : mot de passe
     
    Public Sub SendNotesMail(ByVal Subject As String,ByVal Recipient As String,_
                             ByVal ccRecipient As String,ByVal bccRecipient As String,_
                             ByVal BodyText As String,ByVal SaveIt As Boolean,_
                             ByVal Password As String)
     
        Dim Maildb As Object      'La base des mails
        Dim UserName As String    'Le nom d'utilisateur
        Dim MailDbName As String  'Le nom de la base des mails
        Dim MailDoc As Object     'Le mail
        Dim Session As Object     'La session Notes
        Dim EmbedObj As Object    'L'objet incorporé
     
        'Crée une session notes
        '*** Cette ligne est réservée aux versions 5.x et supérieur : ***
        Session.Initialize (Password)
     
        'Récupère le nom d'utilisateur et crée le nom de la base des mails
        UserName = Session.UserName
        MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
     
        'Ouvre la base des mails
        Set Maildb = Session.GETDATABASE("", MailDbName)
        If Not Maildb.ISOPEN Then Maildb.OPENMAIL
     
        'Paramètre le mail à envoyer
        Set MailDoc = Maildb.CREATEDOCUMENT
        MailDoc.Form = "Memo"
        MailDoc.sendto = Recipient
        MailDoc.CopyTo = ccRecipient
        MailDoc.BlindCopyTo = bccRecipient
        MailDoc.Subject = Subject
        MailDoc.Body = BodyText
        MailDoc.SAVEMESSAGEONSEND = SaveIt
     
        'Envoie le mail
        MailDoc.PostedDate = Now()
        MailDoc.SEND 0, Recipient
     
        Set Maildb = Nothing
        Set MailDoc = Nothing
        Set Session = Nothing
        Set EmbedObj = Nothing
    End Sub

  18. #18
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tu n'as pas besoin d'attendre demain .. modifie une ligne dans ta colonne D et remplace la formule par 21 .. puis lance ta macro ... voir...

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour

    un truc a savoir

    c'est quand tu te sert de variable en argument de l'apel a la fonction
    il faut que ces arguments soit bien distinct avant

    exemple

    call mafunction(la_date as string )
    si la date n'est pas determinée avant sa ne sert a rien de se ballader avec ses argument entre la sub et la function

    tient deja un premier jet

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    Sub Macro()
     Dim sht As Worksheet: Set sht = ThisWorkbook.Worksheets("Feuil1")
     Dim r As Long
     With sht
      For r = 2 To .Cells(Rows.Count, 4).End(xlUp).Row
     If .Cells(r, 4) >= 20 Then 'on ne met qu'un seul "then" avec une condition  amoins d'utiliser un "or ou xor"
     Debug.Print "Dépassement pour : " & .Cells(r, 1) & " | " & .Cells(r, 2) & " | " & .Cells(r, 3) & " | " & .Cells(r, 4)
        '!!!! mais sache que Subject, Recipient, ccRecipient, bccRecipient, BodyText, SaveIt, Password doit etre detreminé ici
     
     
      'soit comme ca
      'Subject= ce que tu veux
      'Recipient= ce que tu veux
      'ccRecipient= ce que tu veux
      'ect.....
     
     
      'soit comme ca
      'le body text
        'bonjour c'est moi
      ' je t'envoie ce mail pour
      'te dire que je suis rentré
      'de vacance plut to que prevu
     
     
     
      'SendNotesMail "bonjour c'est moi "," destinataire@msn.com", maboite@msn.com, bccRecipient, BodyText, SaveIt, Password
     
     
     
      'on envoie le tout a la macro SendNotesMail
       SendNotesMail Subject, Recipient, ccRecipient, bccRecipient, BodyText, SaveIt, Password
     
     
      Next
     End With
     End Sub
     
    'Envoi d'un mail avec Lotus Notes
    'Subject : sujet du mail
    'Attachment : nom d'une pièce jointe
    'Recipient : adresse e-mail du destinataire principal
    'ccRecipient : destinataire en copie
    'bccRecipient : destinataire en copie invisible
    'BodyText : corps du mail
    'SaveIt : mettre à True pour que le mail soit sauvegardé
    'Password : mot de passe
     
     
    'mais il me faudrais plus sur ton fichier pour le rendre operationnel
     
    ' A PARTIR DE LA JE NE PEUT PAS T'AIDER CAR JE N'UTILISE PAS LOTUS!!!!
     
     Sub SendNotesMail(Subject As String, Recipient As String, _
     ccRecipient As String, bccRecipient As String, BodyText As String, _
     SaveIt As Boolean, Password As String)
     
        Dim Maildb As Object      'La base des mails
        Dim UserName As String    'Le nom d'utilisateur
        Dim MailDbName As String  'Le nom de la base des mails
        Dim MailDoc As Object     'Le mail
        Dim Session As Object     'La session Notes
        Dim EmbedObj As Object    'L'objet incorporé
     
        'Crée une session notes
        '*** Cette ligne est réservée aux versions 5.x et supérieur : ***
        Session.Initialize (Password)
     
        'Récupère le nom d'utilisateur et crée le nom de la base des mails
        UserName = Session.UserName
        MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
     
        'Ouvre la base des mails
        Set Maildb = Session.GETDATABASE("", MailDbName)
        If Not Maildb.IsOpen Then Maildb.OPENMAIL
     
        'Paramètre le mail à envoyer
        Set MailDoc = Maildb.CREATEDOCUMENT
        MailDoc.Form = "Memo"
        MailDoc.sendto = Recipient
        MailDoc.CopyTo = ccRecipient
        MailDoc.BlindCopyTo = bccRecipient
        MailDoc.Subject = Subject
        MailDoc.Body = BodyText
        MailDoc.SAVEMESSAGEONSEND = SaveIt
     
        'Envoie le mail
        MailDoc.PostedDate = Now()
        MailDoc.SEND 0, Recipient
     
        Set Maildb = Nothing
        Set MailDoc = Nothing
        Set Session = Nothing
        Set EmbedObj = Nothing
    End Sub

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

Discussions similaires

  1. Probleme macro pour envoyer mail d'excel
    Par semarokaben dans le forum Excel
    Réponses: 2
    Dernier message: 15/01/2014, 07h55
  2. Réponses: 4
    Dernier message: 26/09/2012, 17h08
  3. [Mail] Codage d'une page pour envoyer des messages.
    Par cyrilmarc dans le forum Langage
    Réponses: 5
    Dernier message: 21/11/2006, 21h53
  4. Réponses: 4
    Dernier message: 28/03/2005, 19h42

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