Hello,
Je voudrais envoyer par mail via outlook un Range après un filtre...
Jusque là pas de problème.
Le problème survient lorsque je fais un filtre sur une de mes colonnes ...
Mon programme ne me prend plus en compte la sélection mais la feuille entière ...
Auriez-vous une soluce ??? Merci.
Mon code + fichier exemple :
Sub Diffusion()
Dim Ligne_En_Tete_VIVIER As Byte
Dim Feuille_VIVIER As Worksheet
Dim Plage_De_Diffusion As Range
'Generer le mail sans cocher la référence OUTLOOK LIBRARY
Dim oAPP As Object
Dim oItem As Object
Const olMailItem As Long = 0
'###########################################################################################
'~~~~~~~~~~~~~~~~ Variables à modifier si la structure change ~~~~~~~~~~~~~~~~~~~
'## Si la ligne de référence de l'en-tete du classeur VIVIER change, modifier cette variable ! ##
Ligne_En_Tete_VIVIER = 10
'## Si la feuille de référence de ce classeur change, modifier cette variable ! ##
Nom_Feuille_VIVIER = "TDB_VIVIER"
'On defitnit la feuille VIVIER
Set Feuille_VIVIER = ThisWorkbook.Sheets(Nom_Feuille_VIVIER)
Dim derlig As Integer
derlig = Feuille_VIVIER.Range("F65000").End(xlUp).Row '//choix de la dernière ligne
'For Each Ligne In Range("A10:L" & derlig).SpecialCells(xlCellTypeVisible).Rows
'Ligne.Select
'Next Ligne
Range("L" & derlig).Select '//choix de l'angle de sélection inférieur droit
Range(Selection, Selection.End(xlUp)).Select
Range(Selection, Selection.End(xlToLeft)).Select '//jusqu'à A1
Selection.SpecialCells(xlCellTypeVisible).Select '// sélectionne que les cellules visible
''On definit la Plage de diffusion
'Set Plage_De_Diffusion = Feuille_VIVIER.Cells(Ligne_En_Tete_VIVIER, 1).CurrentRegion.SpecialCells(xlVisible)
''Copie de la plage
'Plage_De_Diffusion.Select
'ActiveSheet.Range("A10:B15").Select ' la plage de cellules à envoyer
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = "Bonjour," & vbLf & "Vous trouverez ci-joint le VIVIER"
.Item.To = ""
.Item.Subject = "VIVIER RECRUTEMENT"
.Item.Display
End With
End Sub