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 :

Envoyer par mail mon fichier modifié


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Points : 40
    Points
    40
    Par défaut Envoyer par mail mon fichier modifié
    Bonjour à tous,

    Je tente d'ouvrir un fichier texte dont je fais la mise en forme.
    Ensuite, je fais une recherche des valeurs supérieures à 99 dans la colonne E.
    Enfin, je veux envoyer mon fichier avec les modifications enregistrées par mail.

    En lançant la macro, je rencontre le message : "l'indice n'appartient pas à la sélection" et de plus, je souhaiterais que le message soit envoyé automatiquement sans que j'ai à appuyer sur le message envoyer dans ma messagerie (Lotus Notes dans mon cas).

    Pouvez-vous SVp m'apporter votre aide sur le sujet.
    Merci.

    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
     
    Sub Macro1()
     
        ChDir "C:\Documents and Settings\moi\Desktop"
        Workbooks.OpenText Filename:= _
            "C:\Documents and Settings\moi\Desktop\Usage.txt", Origin:=xlMSDOS, _
            StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
            , Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
            TrailingMinusNumbers:=True
        Columns("A:A").ColumnWidth = 33.57
        Columns("C:C").EntireColumn.AutoFit
        Columns("D:D").EntireColumn.AutoFit
        Columns("E:E").EntireColumn.AutoFit
        Columns("E:E").ColumnWidth = 16.86
        Columns("E:E").Select
        Selection.AutoFilter
        Selection.AutoFilter Field:=1, Criteria1:=">99", Operator:=xlAnd
        Range("A1").Select
        ActiveWorkbook.SaveAs Filename:= _
            "C:\Documents and Settings\moi\Desktop\Usage.xls", FileFormat:=xlNormal _
            , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False
        ActiveWindow.Close
     
        End Sub
     
    Sub EnvoiMail()
      Workbooks("Usage.xls").SendMail Recipients:="moi@moi.com", _
                              Subject:="Test envoi classeur", _
                              ReturnReceipt:=True
    End Sub

  2. #2
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Fais une recherche sur ce forum,

    il y a plusieurs exemples relativement récents avec Lotus Notes.

    Bonne journée

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Points : 40
    Points
    40
    Par défaut
    Salut,

    Merci pour ta réponse. Mais mon code est relativement simple contrairement à ce que j'ai pu trouver en faisant une recherche.

    C'est juste la dernière partie du code qui plante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub EnvoiMail()
      Workbooks("Usage.xls").SendMail Recipients:="moi@moi.com", _
                              Subject:="Test envoi classeur", _
                              ReturnReceipt:=True
    Je pense que ça vient de Workbooks("Usage.xls").
    En fait, je voudrais que ça aille cherche le fichier Excel dans un emplacement spécifié (par Ex : c:\temp\Usage.xls) et que ça envoi le message (avec le fichier joint) automatiquement sans que j'ai à cliquer sur Envoyer dans Lotus Notes.

  4. #4
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    bonjour,

    sans lire plus loin ton code :

    désigne le classeur déjà ouvert dans excel de nom Usage.xls.
    il va falloir peu-être ouvrir ton fichier excel..

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Points : 40
    Points
    40
    Par défaut
    Ok, Merci ! Maintenant le code fonctionne.
    Par contre, je ne parviens pas à automatiser l'envoi...
    Il faut toujours que je clique sur "envoyer" dans Lotus pour que le mail parte.

    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
     
    Sub Macro1()
     
        Workbooks.OpenText Filename:= _
            "C:\Documents and Settings\moi\Desktop\Usage.txt", Origin:=xlMSDOS, _
            StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
            , Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
            TrailingMinusNumbers:=True
        Columns("E:E").Select
        Selection.AutoFilter
        Selection.AutoFilter Field:=1, Criteria1:=">99", Operator:=xlAnd
        Cells.Select
        Selection.Copy
        Windows("Classeur1.xls").Activate
        Range("A1").Select
        ActiveSheet.Paste
     
          ThisWorkbook.SendMail Recipients:="moi@moi.com", _
                              Subject:="Test envoi classeur", _
                              ReturnReceipt:=True
     
    End Sub

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Points : 40
    Points
    40
    Par défaut
    Bon, j'avance...
    Maintenant, tout fonctionne.
    Mais le problème, c'est que j'ai automatisé ma macro avec Auto_open.

    Donc, le fichier envoyé contient la macro auto_open !
    La macro se lance quand on ouvre le fichier envoyé...
    Comment faire ??

    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
     
    Sub auto_open ()
     
        Cells.Select
        Selection.ClearContents
        Range("A1").Select
     
     
    Workbooks.OpenText Filename:= _
            "C:\Documents and Settings\brunautma\Desktop\Usage.txt", Origin:=xlMSDOS, _
            StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
            , Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
            TrailingMinusNumbers:=True
        Columns("E:E").Select
        Selection.AutoFilter
        Selection.AutoFilter Field:=1, Criteria1:=">99", Operator:=xlAnd
        Cells.Select
        Selection.Copy
        ThisWorkbook.Activate
        Range("A1").Select
        ActiveSheet.Paste
     
        ActiveWorkbook.Save
     
    On Error Resume Next
     
     
        Dim Maildb As Object 'The mail database
        Dim UserName As String 'The current users notes name
        Dim MailDbName As String 'THe current users notes mail database name
        Dim MailDoc As Object 'The mail document itself
        Dim AttachME As Object 'The attachment richtextfile object
        Dim Session As Object 'The notes session
        Dim EmbedObj As Object 'The embedded object (Attachment)
     
        Set Session = CreateObject("Notes.NotesSession")
        UserName = Session.UserName
        MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
        'Open the mail database in notes
        Set Maildb = Session.GetDatabase("", MailDbName)
         If Maildb.IsOpen = True Then
              'Already open for mail
         Else
     
         Maildb.OPENMAIL
     
         End If
        'Set up the new mail document
        Set MailDoc = Maildb.CreateDocument
        MailDoc.Form = "Memo"
        MailDoc.Subject = "Envoi Automatique ......"
        MailDoc.body = "message....."
        MailDoc.SAVEMESSAGEONSEND = saveit
     
        Attachment = ThisWorkbook.FullName
    If Attachment <> "" Then
            Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
            Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
            MailDoc.CREATERICHTEXTITEM ("Attachment")
        End If
     
        'Send the document
        MailDoc.PostedDate = Now()
        MailDoc.Send 0, "moi@moi.com"
        'Clean Up
        Set Maildb = Nothing
        Set MailDoc = Nothing
        Set AttachME = Nothing
        Set Session = Nothing
        Set EmbedObj = Nothing
     
        Excel.Application.Quit
        Application.DisplayAlerts = False
     
    End Sub

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Points : 40
    Points
    40
    Par défaut
    Bon, ça avance...
    Maintenant, j'ai ajouté dans la feuille MACRO la liste des destinataires.
    Pour moi
    Cells(1, 1) = Cellule A,1
    Cells(1, 2) = Cellule A,2
    mais je ne suis pas sure...

    Donc, j'ai mis les deux destinataires respectivement dans les cellules A1 et A2.
    Ce que je ne comprends pas, c'est que seul le destinataire de la cellule A1 reçoit le message.
    Pouvez-vous m'aider SVP, je sèche complément là...


    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
     
    Sub Sendmail()
     
        Cells.Select
        Selection.ClearContents
        Range("A1").Select
     
     
    Workbooks.OpenText Filename:= _
            "C:\Documents and Settings\moi\Desktop\Usage.txt", Origin:=xlMSDOS, _
            StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
            , Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
            TrailingMinusNumbers:=True
        Columns("E:E").Select
        Selection.AutoFilter
        Selection.AutoFilter Field:=1, Criteria1:=">99", Operator:=xlAnd
        Cells.Select
        Selection.Copy
        ThisWorkbook.Activate
        Range("A1").Select
        ActiveSheet.Paste
     
        Dim Maildb As Object 'The mail database
        Dim UserName As String 'The current users notes name
        Dim MailDbName As String 'THe current users notes mail database name
        Dim MailDoc As Object 'The mail document itself
        Dim AttachME As Object 'The attachment richtextfile object
        Dim Session As Object 'The notes session
        Dim EmbedObj As Object 'The embedded object (Attachment)
        Dim dest As String
        Dim monTab() As String
     
        Set Session = CreateObject("Notes.NotesSession")
        UserName = Session.UserName
        MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
        'Open the mail database in notes
        Set Maildb = Session.GetDatabase("", MailDbName)
         If Maildb.IsOpen = True Then
              'Already open for mail
         Else
     
         Maildb.OPENMAIL
     
         End If
        'Set up the new mail document
        Set MailDoc = Maildb.CreateDocument
        MailDoc.Form = "Memo"
        MailDoc.Subject = "Envoi Automatique Alerte Quota FS01"
        MailDoc.body = "Alerte de Quota sur FS01"
        MailDoc.SAVEMESSAGEONSEND = saveit
     
        Attachment = ThisWorkbook.FullName
    If Attachment <> "" Then
            Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
            Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
            MailDoc.CREATERICHTEXTITEM ("Attachment")
        End If
     
        'Send the document
        MailDoc.PostedDate = Now()
     
     
        dest = Sheets("MACRO").Cells(1, 1).Value & ", " & Cells(1, 2).Value
        monTab = Split(dest, ",")
        MailDoc.Send 0, monTab()
     
        'Clean Up
        Set Maildb = Nothing
        Set MailDoc = Nothing
        Set AttachME = Nothing
        Set Session = Nothing
        Set EmbedObj = Nothing
     
        Excel.Application.Quit
        Application.DisplayAlerts = False
     
    End Sub
    Help please.

  8. #8
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    Je ne sais pas si ton probléme viens de la mais dans cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dest = Sheets("MACRO").Cells(1, 1).Value & ", " & Cells(1, 2).Value
    tu précise la feuille de calcul pour le 1° Destinataire (ce qui est trés bien..) mais tu ne la précise pas pour le second, ce qui fait que tu utilise la cellule A2 de la feuille active si c'est MACRO tu as de la chance sinon tanpis..

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Points : 40
    Points
    40
    Par défaut
    Merci ! Ca vient surement de ca !
    Je vais tester. Par contre tjrs le fait que mon fichier envoyé contient la macro auto_open. Comment faire pour que dans le fichier attaché dans le mail, la macro n'apparaisse pas ?
    Peut-etre unr commande juste avant la fermeture pour supprimer la macro qui vient de s'executer (dans la macro elle-meme).

  10. #10
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    C'est comme tu le sens, mais tu trouveras ici une solution propre et qui fonctionne.

    Pour Auto_Open, il suffit de bouger ton code ailleurs et de l'a ssocier par exemple à un bouton d'action.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Points : 40
    Points
    40
    Par défaut
    Merci mais j'ai déjà lu le post dans ton lien et je m'en suis très largement inspiré pour mettre en place mon code.
    D'ailleurs maintenant il fonctionne.

    En fait, je n'ai pas besoin de bouton d'action, car je veux scheduler le lancement de ma macro donc je dois garder le auto_open.
    Reste juste à le retirer avant l'envoi du fichier par mail.

    Ca doit bien être possible, je pense.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par JackOuYA Voir le message
    Je ne sais pas si ton probléme viens de la mais dans cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dest = Sheets("MACRO").Cells(1, 1).Value & ", " & Cells(1, 2).Value
    tu précise la feuille de calcul pour le 1° Destinataire (ce qui est trés bien..) mais tu ne la précise pas pour le second, ce qui fait que tu utilise la cellule A2 de la feuille active si c'est MACRO tu as de la chance sinon tanpis..
    Ca ne fonctionne pas non plus...
    J'ai pourtant modifié ma ligne comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dest = Sheets("MACRO").Cells(1, 1).Value & ", " & Sheets("MACRO").Cells(1, 2).Value
    J'ai positionné dans ma feuille MACRO en A1 et A2 (qui correspond à Cells(1, 1) et Cells(1, 2) ??? pouvez-vous me le confirmer SVP ?) les adresses EMAIL concernées.
    Mais ça ne marche tjrs pas.

    Voici mon code complet pour info :


    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
     
    Sub Sendmail()
     
        Cells.Select
        Selection.ClearContents
        Range("A1").Select
     
     
    Workbooks.OpenText Filename:= _
            "C:\Documents and Settings\moi\Desktop\Usage.txt", Origin:=xlMSDOS, _
            StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
            , Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
            TrailingMinusNumbers:=True
        Columns("E:E").Select
        Selection.AutoFilter
        Selection.AutoFilter Field:=1, Criteria1:=">99", Operator:=xlAnd
        Cells.Select
        Selection.Copy
        ThisWorkbook.Activate
        Range("A1").Select
        ActiveSheet.Paste
     
    On Error Resume Next
     
        Dim Maildb As Object 'The mail database
        Dim UserName As String 'The current users notes name
        Dim MailDbName As String 'THe current users notes mail database name
        Dim MailDoc As Object 'The mail document itself
        Dim AttachME As Object 'The attachment richtextfile object
        Dim Session As Object 'The notes session
        Dim EmbedObj As Object 'The embedded object (Attachment)
        Dim dest As String
        Dim monTab() As String
     
        Set Session = CreateObject("Notes.NotesSession")
        UserName = Session.UserName
        MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
        'Open the mail database in notes
        Set Maildb = Session.GetDatabase("", MailDbName)
         If Maildb.IsOpen = True Then
              'Already open for mail
         Else
     
         Maildb.OPENMAIL
     
         End If
        'Set up the new mail document
        Set MailDoc = Maildb.CreateDocument
        MailDoc.Form = "Memo"
        MailDoc.Subject = "Envoi Automatique Alerte Quota FS01"
        MailDoc.body = "Alerte de Quota sur FS01"
        MailDoc.SAVEMESSAGEONSEND = saveit
     
        Attachment = ThisWorkbook.FullName
        If Attachment <> "" Then
            Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
            Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
            MailDoc.CREATERICHTEXTITEM ("Attachment")
        End If
     
        'Send the document
        monTab = Split(dest, ",")
        dest = Sheets("MACRO").Cells(1, 1).Value & ", " & Sheets("MACRO").Cells(1, 2).Value
        MailDoc.PostedDate = Now()
        MailDoc.Send 0, monTab()
     
        'Clean Up
        Set Maildb = Nothing
        Set MailDoc = Nothing
        Set AttachME = Nothing
        Set Session = Nothing
        Set EmbedObj = Nothing
     
        Excel.Application.Quit
        Application.DisplayAlerts = False
     
    End Sub

  13. #13
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    il me semble que cette partie du code est un peu.... foireuse, ou alors tu aime les choses un peu spéciales car la ligne en gras ne sert... a rien...:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        'Send the document
        monTab = Split(dest, ",")
        dest = Sheets("MACRO").Cells(1, 1).Value & ", " & Sheets("MACRO").Cells(1, 2).Value
        MailDoc.PostedDate = Now()
        MailDoc.Send 0, monTab()

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Points : 40
    Points
    40
    Par défaut
    Merci pour ton aide.
    Ce que je comprends pas, c'est comment va t'il chercher mes destinataires qui sont dans la feuille MACRO en A1 et A2 si la ligne n'est pas renseignée ??

  15. #15
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Re,
    je crois que tu es un peu fatigué.

    Regarde les 2 lignes suivantes. Es-tu certain qu'elles sont dans le bon ordre ? moi pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        monTab = Split(dest, ",")
        dest = Sheets("MACRO").Cells(1, 1).Value & ", " & Sheets("MACRO").Cells(1, 2).Value
    Puisque plus loin il y a la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MailDoc.Send 0, monTab()
    Tu me suis maintenant ?

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Points : 40
    Points
    40
    Par défaut
    Je dois être très très fatigué...
    Euh, je vois pas trop l'erreur là...

  17. #17
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Citation Envoyé par mattwarend Voir le message
    Je dois être très très fatigué...
    Euh, je vois pas trop l'erreur là...
    je dirais même plus, mourrant...

    C'est pourtant évident :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       'Send the document
        monTab = Split(dest, ",")   '(1)
        dest = Sheets("MACRO").Cells(1, 1).Value & ", " & Sheets("MACRO").Cells(1, 2).Value '(2)
        MailDoc.PostedDate = Now()
        MailDoc.Send 0, monTab() '(3)
    (1) Montab = split de dest (que vaut dest, personne ne le sait, même pas toi !)
    (2) Tu initialises dest. Bonne idée, mais un peu tard.
    (3) Tu fais un send à montab, qui vaut ...... ??????? rien de bon...

    Es-tu réveillé ou alors tu veux un cawa ?

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Points : 40
    Points
    40
    Par défaut
    En fait, débutant (gros débutant), j'ai tenté d'adapter tant bien que mal le code d'un lien que tu m'as indiqué précédemment.

    Le fait est que je n'y comprends pas grand chose et que ça ne semble pas fonctionner.

    Tout ce que je veux, c'est que la macro aille chercher mes destinataires en A1 et A2 dans la feuille MACRO, mais je ne sais pas comment faire et mon code est effectivement foireux et je n'arrive pas à l'adapter pour répondre à mon besoin.

  19. #19
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bon,

    pour faire quelquechose qui fonctionne, il faut comprendre sinon ... garanti.

    petite explication basique de ce qu'il faut faire pour que ta zone destinataire soit bien initialisée, tout en sachant que cet exemple est complexe puisque plusieurs destinataire :

    Etape 1 : initialiser dest avec "A1, A2". Note bien la présence de la virgule qui sépare les 2 destinataires. S'il y avait 50 destinataires, il faudrait 40 virgules.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        dest = Sheets("MACRO").range("A1") & ", " & Sheets("MACRO").range("A2")
    Etape 2 : la zone destinataire pour Lotus doit être formattée comme un table, sans les virgules et avec 1 destinataire par entrée de la table. c'est ce que fait l'instruction split qui découpe Dest en splittant à chaque virgule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        monTab = Split(dest, ",")   '(1)
    Après cette instruction, Montab contient 2 nom : montab(0) = contenu de "A1", Montab(1) = contenu de "A2"

    Etape 3 : passer le tableau comme destinataire à lotus, sans préciser le nombre d'élements, et lotus fait avaec comme un grand.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        MailDoc.Send 0, monTab()
    merci de faire l'effort de comprendre et de comparer avec ce que tu avais écrit qui était bien différent.

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Points : 40
    Points
    40
    Par défaut
    OK, maintenant, je viens de modifier mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    'Send the document
    dest = Sheets("MACRO").Cells(1, 1).Value & ", " & Sheets("MACRO").Cells(1, 2).Value
        monTab = Split(dest, ",")
        MailDoc.Send 0, monTab()
        MailDoc.PostedDate = Now()
    Maintenant, il envoi bien au destinataire indiqué dans la cellule A1 mais pas à celui indiqué dans la cellule A2 de ma feuille MACRO...

Discussions similaires

  1. Envoyer par mail x fichiers excel qui viennent d'une table oracle
    Par philcphilc dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 05/03/2014, 18h20
  2. Réponses: 2
    Dernier message: 03/09/2013, 16h04
  3. Comment modifier le corps d'un message envoyé par mail
    Par nico le noob dans le forum Langage
    Réponses: 8
    Dernier message: 15/05/2010, 18h00
  4. fichiers zipés à envoyer par mail
    Par jano_dave dans le forum Web & réseau
    Réponses: 6
    Dernier message: 19/09/2009, 02h08
  5. Réponses: 1
    Dernier message: 11/12/2008, 14h44

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