Bonjour les XlDnautes !
je reviens vers vous pour un petit problème de code, qui me travaille depuis un bon bout de temps.
mes compétences en vba étant encore un peu limitées je me tourne vers vous....
j'aimerais à partir d'un tableau excel creer un mail en automatique, jusque là mon code fonctionne,
mon problème est que je fait une recherche sous conditions et que dans mon mail, je ne vois apparaitre que la dernière ligne de mon tableau après la boucle, hors je voudrais voir afficher l'ensemble des données répondant à ma condition.
Ci-dessous mon code:
Sub Crea_msg()
Sheets("bdd").Select
Dim i As Integer 'déclare la variable i
With Sheets("bdd")
Set Plage = .Range("A2:A" & .Range("A65536").End(xlUp).Row) 'définit la variable Plage
End With
'******************************************************************************************
For Each Cel In Plage
If Cel.Offset(0, 1).Value Like "PM" Then 'si la deuxième colonne correspond au PM alors
'**********************CREATION DU MESSAGE pour le PM************************************************
Dim msgCorps As String 'declaration de la variable msg Corps
msgCorps = "<table>" 'Ouverture d'un tableau en html"
msgCorps = msgCorps & "<tr><td>" & Cel.Offset(0, 0).Value & "</td><td>" & Cel.Offset(0, 1).Value & "</td></tr>"
msgCorps = msgCorps & "<tr><td>" & Cel.Offset(0, 2).Value & "</td><td>" & Cel.Offset(0, 3).Value & "</td></tr>"
msgCorps = msgCorps & "</table>"
End If
Next Cel
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = Range("A1").Value
.Subject = Range("A1").Value
.HTMLBody = msgCorps
.Display '.Send
'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display)
End With
End Sub
quelqu'un aurait il la solution miracle à mon bug afin que l'ensemble des donnees apparaissent?
d'avance merci aux Xldnautes !
je reviens vers vous pour un petit problème de code, qui me travaille depuis un bon bout de temps.
mes compétences en vba étant encore un peu limitées je me tourne vers vous....
j'aimerais à partir d'un tableau excel creer un mail en automatique, jusque là mon code fonctionne,
mon problème est que je fait une recherche sous conditions et que dans mon mail, je ne vois apparaitre que la dernière ligne de mon tableau après la boucle, hors je voudrais voir afficher l'ensemble des données répondant à ma condition.
Ci-dessous mon code:
Sub Crea_msg()
Sheets("bdd").Select
Dim i As Integer 'déclare la variable i
With Sheets("bdd")
Set Plage = .Range("A2:A" & .Range("A65536").End(xlUp).Row) 'définit la variable Plage
End With
'******************************************************************************************
For Each Cel In Plage
If Cel.Offset(0, 1).Value Like "PM" Then 'si la deuxième colonne correspond au PM alors
'**********************CREATION DU MESSAGE pour le PM************************************************
Dim msgCorps As String 'declaration de la variable msg Corps
msgCorps = "<table>" 'Ouverture d'un tableau en html"
msgCorps = msgCorps & "<tr><td>" & Cel.Offset(0, 0).Value & "</td><td>" & Cel.Offset(0, 1).Value & "</td></tr>"
msgCorps = msgCorps & "<tr><td>" & Cel.Offset(0, 2).Value & "</td><td>" & Cel.Offset(0, 3).Value & "</td></tr>"
msgCorps = msgCorps & "</table>"
End If
Next Cel
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = Range("A1").Value
.Subject = Range("A1").Value
.HTMLBody = msgCorps
.Display '.Send
'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display)
End With
End Sub
quelqu'un aurait il la solution miracle à mon bug afin que l'ensemble des donnees apparaissent?
d'avance merci aux Xldnautes !