XL 2013 Envoie groupé de mails contenant login et mdp uniques ... Mais pourquoi un espace en plus !?

Cecinerock

XLDnaute Nouveau
Bonjour,

La macro ci-dessous permet d'envoyer un email à plusieurs destinataires. Le corps de l'email est un string obtenu par la concaténation de plusieurs cellules (Même ligne, à partir de Cinq colonnes).
L'email est envoyé avec un lien vers une application de sondage, il contient un login et un mot de passe uniques par lignes / répondants.

Le fichier en PJ est structuré comme suite :
- Colonne A : Noms destinataires
- Colonne B : adresses email
- Colonne C : envoyer ou non l'email (YES or NO)
- Colonne D : Login
- Colonne E : Mot de passe
- Colonne H, I et J : respectivement corps email partie 1, 2 et 3.
- Colonne G : la formule =CONCATENER($H$2;$D$2;$I$2;$E$2;$J$2) = Corps de l'email

La macro marche bien, car elle permet d'envoyer en un clic un email avec un login et mot de passe uniques pour chaque destinataire. Néanmoins, elle génère automatiquement un espace après le mot de passe et login (Espaces qui n'existe en dur dans les colonnes D et E), ce qui génère des problèmes d'accès à la plateforme de sondage.

Quelqu'un pourrait-il me dire comment faire pour que cet espace ne soit plus généré ?
En vous remerciant :)

Peace

Code:
Sub EnvoiMailGroupe_Sondage()

  Dim OutApp As Object
    Dim OutMail As Object
    Dim cell As Range 'cell représente la variable à laquelle sont affectées les adresses email
    'Dim CorpsMail As String
    'Dim i As Integer
    'Pour affecter les colonnes à des variables
 
    Dim n As String

    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")

    On Error GoTo cleanup
                   
    For Each cell In Columns("B").Cells.SpecialCells(xlCellTypeConstants)
       
                    d = Cells(cell.Row, "d").Value
                    e = Cells(cell.Row, "e").Value
                    h = Cells(cell.Row, "h").Value
                    Colonnei = Cells(cell.Row, "i").Value
                    j = Cells(cell.Row, "j").Value
                    n = Cells(cell.Row, "n").Value
     
        'copie du contenu concaténé en valeur dans la colonne N
            Columns("G:G").Select
            Selection.Copy
            Columns("N:N").Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False

        If cell.Value Like "?*@?*.?*" And _
           LCase(Cells(cell.Row, "C").Value) = "yes" Then
                   
            Set OutMail = OutApp.CreateItem(0)
            On Error Resume Next
                 
                With OutMail
                    .To = cell.Value
                    .Subject = "Sondage BFR"
                    
                    .Body = "Cher / Chère " & Cells(cell.Row, "A").Value & vbNewLine & vbNewLine & n
                    .Send
                End With
            On Error GoTo 0
            Set OutMail = Nothing
        End If
    Next cell
    
cleanup:
    Set OutApp = Nothing
    Application.ScreenUpdating = True
   
End Sub


[/code]
 

Pièces jointes

  • Test_envoie_plusieurs mails avec liens pour sondage.xlsm
    20.1 KB · Affichages: 19

Discussions similaires

Statistiques des forums

Discussions
312 097
Messages
2 085 256
Membres
102 839
dernier inscrit
Tougtoug