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]
	
		
			
		
		
	
				
			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]