Problème envoi des cellules sélectionnées VBA

Résolu/Fermé
Miguel - 23 mars 2011 à 14:24
 Miguel - 28 mars 2011 à 09:59
Bonjour,

je m'adresse à vous car j'ai un petit souci.
En effet, j'ai une feuille excel contenant un tableau avec des informations que je souhaiterai filtrer et envoyer par la suite par mail.
Le soucis est que lorsque je lance mon script, celui-ci m'envoit toutes les données par mail et non seulement celles que j'ai sélectionné au préalable :s

Je souhaiterai donc si possible qu'une âme charitable me vienne t'en aide, je lui en serais vraiment reconnaissant.

Merci par avance,

Miguel

Voilà mon code :

Sub SendMail_Outlook(nomdest As String)

'Constantes à modifier si le tableau évolue
'Nombre de Colonnes
Const DCOL = 14

'Colonne du Demandeur
Const DCOLD = 9

'Définition des variables
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Dim Selection As Range
Dim lastcell As String
Dim vtab As String
Dim vrow As Integer

'Instanciation de l'objet Outlook
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)

'Recherche du nombre de lignes dans le tableau pour calcul du Range
vrow = 1
While Sheets("Basedonnées").Cells(vrow, 1) <> ""
vrow = vrow + 1
Wend

'Selection du Tableau

With Sheets("Basedonnées")

Range(Cells(1, 1), Cells(vrow, DCOL)).AutoFilter Field:=DCOLD, Criteria1:=nomdest
Range(Cells(1, 1), Cells(vrow, DCOL)).Select

End With


'Paramêtrage de l'objet Mail en vue d'envoie

With olmail

.To = "email destinataire"
.Subject = "Tâche à réaliser"
.BodyFormat = olFormatHTML

.HTMLBody = PH(Sheets("Basedonnées").Range(Cells(1, 1), Cells(vrow, DCOL)))
.Send
End With
End Sub

Function PH(LaPlage As Range) As String

' transforme une plage en tableau HTML

Dim l As Long, c As Long
PH = "<html><table width='100%'>" 'balises de début du code HTML et de début de table

For l = 1 To LaPlage.Rows.Count ' pour chaque ligne de la plage

PH = PH & "<tr>" ' balise de début de ligne

For c = 1 To LaPlage.Columns.Count 'pour chaque colonne de la ligne

' balise début de colonne + contenu de la cellule + balise fin de colonne
PH = PH & "<td>" & LaPlage.Cells(l, c) & "</td>"
Next c
PH = PH & "</tr>" ' balise fin de ligne
Next l
PH = PH & "</table></html>" ' balises de fin de table et de fin de code HTML

End Function





3 réponses

Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
23 mars 2011 à 15:24
Salut,

Regarde cette discussion voir si elle s'approche de tes attentes

https://forums.commentcamarche.net/forum/affich-21042611-envoi-mail-en-vba-avec-corps-message#p21322430
0
Merci Mike, je viens de jeter un coup d'oeil mais cela ne répond malheureusement pas à mon problème :(
Mon souci est de pouvoir envoyer les données filtrées uniquement dans mon corps de message alors que là j'ai la totalité de ma feuille excel qui se retrouve dans le corps du message :(

Je commence à désespérer là... :(

Merci quand même :)
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
Modifié par Mike-31 le 24/03/2011 à 11:27
Re,

Non pas tout à fait la totalité de la feuille, seulement de A1 à AK32 sans les boutons ni code.

Dans la soirée je te fais un code, avec envoi sans passer par une messagerie comme Outlook, mais directement par le SMTP

Par contre donnes moi des détails sur la structure de ton fichier, la colonne à filtrer et sur quel critères, ou poste nous ton fichier sans notes confidentielles

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Bonjour Mike,

désolé je viens tout juste de prendre connaissance de ton mail.
Voici le lien où tu pourras trouver mon fichier : http://www.cijoint.fr/cjlink.php?file=cj201103/cijelhrbid.xlsm

J'ai retiré les infos confidentielles.

En fait, je souhaiterais filtrer la colonne I (Référent(s)), et une fois celle-ci filtrée je voudrais que les infos présentes alors dans ma feuille excel filtrée me soit envoyé par mail.
Mon système d'envoi de mail fonctionne, mon souci est que lorsque je fais mon filtre et que je m'envois le mail, je n'ai pas seulement les données filtrées mais l'ensemble de ma feuille excel :(

Si tu pouvais m'aider je t'en serais vraiment reconnaissant.

Bien cordialement,

Miguel
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
27 mars 2011 à 18:11
Re,

Je me suis absenté quelques jours, les données filtrée veux tu les envoyer en format Excel ou PDF
0
Merci Mike,

Mais c'est bon j'ai résolu mon problème :)

Bien cordialement,

Miguel
0