- [Mail] - Imbriquer plusieurs plages dans le corps du message.

hOAxB

XLDnaute Nouveau
Bonjour les amis XLDnautes,

J'ai trouve ce code tres concis et tres interessant. Il fonctionne tres bien pour une plage unique.

Neanmoins, je souhaite conserver le titre des colonnes en ligne 4 (voir capture d'ecran de mon projet) et laisser a l'utilisateur le choix des lignes qu'il souhaite envoyer.



J'ai essaye de faire une union de plages:

'Marche po!


Code:
Sub EnvoiPlages()
Dim ligne1 As Integer
Dim ligne2 As Integer

ligne1 = 6 ' Plus tard, je souhaite demander a l'utilisateur de renseigner ces champs
ligne2 = 8 ' par Userform, pour la comprehension, elles sont deja renseignees ici.


Set letout = Union(Range("B4:L4"), Range("B" & ligne1 & ":" & "L" & ligne2))

ActiveSheet.Range("letout").Select ' <== ERREUR
ActiveWorkbook.EnvelopeVisible = True

With ActiveSheet.MailEnvelope
    .Introduction = "Dear Sir," & vbLf & vbLf & "You can see my report as following:" & vbLf & vbLf
    .Item.To = "blabla@blablagroup.net"
    .Item.Subject = "Report"
    .Item.Send
End With
End Sub

L'erreur est renvoyee ici que j'ecrive:
Code:
ActiveSheet.Range("letout").Select
ou
Code:
letout.Select


Comment faire une selection d'une plage non contigue incluant l'entete des colonnes (ou excluant quelques lignes du tableau)?

"J'en aurais demander de l'aide pour ce maudit tableau!"

Merci a tous pour vos propositions.
 

Pierrot93

XLDnaute Barbatruc
Re : - [Mail] - Imbriquer plusieurs plages dans le corps du message.

Bonjour,

essaye comme ceci :
Code:
Dim letout As Range
Set letout = Union(Range("B4:L4"), Range("B" & ligne1 & ":" & "L" & ligne2))
letout.Select

bonne journée
@+
 

hOAxB

XLDnaute Nouveau
Re : - [Mail] - Imbriquer plusieurs plages dans le corps du message.

Bonjour Pierrot,

Merci pour ta reponse.

Alors, oui, en declarant letout comme Range, ca a fonctionne! ...Enfin, ca a eu l'air de fonctionner du moins.

Je me suis dit: "Genial!" et puis quand j'ai ouvert le mail, je me suis dit "$%#$@!":



Dois-je en concluer que je dois changer le script du tout ou tout?
 

hOAxB

XLDnaute Nouveau
Re : - [Mail] - Imbriquer plusieurs plages dans le corps du message.

Solution envisagee: Imbriquer mes plages dans un formulaire cache de l'utilisateur puis envoyer cette nouvelle plage creee.

J'edit mon message avec le code des que ce sera fait.




EDIT:

Code:
Sub EnvoiePlageUni()
Dim ligne1 As Integer
Dim ligne2 As Integer
Dim ecartligne As Integer
Worksheets("Sheet1").Unprotect
Worksheets("Mail").Unprotect
ligne1 = 8
ligne2 = 15
ecartligne = 5 + (ligne2 - ligne1)



Worksheets("Sheet1").Select
Worksheets("Sheet1").Range("B4:L4").Select
Selection.Copy
Worksheets("Mail").Select
Worksheets("Mail").Range("B4:L4").Select
Selection.PasteSpecial
Worksheets("Sheet1").Select
Worksheets("Sheet1").Range("B" & ligne1 & ":" & "L" & ligne2).Select
Selection.Copy
Worksheets("Mail").Select
Worksheets("Mail").Range("B5:" & "L" & ecartligne).Select
Selection.PasteSpecial





Worksheets("Mail").Range("B4:" & "L" & ecartligne).Select
Selection.Font.Size = "8"

ActiveWorkbook.EnvelopeVisible = True

With ActiveSheet.MailEnvelope
    .Introduction = "Dear Sir," & vbLf & vbLf & "You can see my report as following:" & vbLf & vbLf
    .Item.To = "blabla@blabla.bla"
    .Item.Subject = "Report"
    .Item.Send
End With

Worksheets("Sheet1").Select
Worksheets("Sheet1").Range("A1").Select
End Sub

C'est pas tres propre mais ca marche bien.
 
Dernière édition:

Statistiques des forums

Discussions
312 493
Messages
2 088 952
Membres
103 989
dernier inscrit
jralonso