Nickel, merci beaucoup Phil69970.
je mets le code terminé complet pour sélection des feuilles et envoie par email.
Function WsExist(Nom$) As Boolean
On Error Resume Next
WsExist = Sheets(Nom).Index
End Function
Sub Multiselect()
Dim Feuille As Worksheet
For i = 6 To 58
If Range("V" & i) = "x" Then
If WsExist(Range("X" & i)) Then
Sheets(Range("X" & i).Value).Name = Range("X" & i).Value
Sheets(Range("X" & i).Value).Select Replace:=False
End If
End If
Next i
' Ce code permet de générer un PDF à partir d'une feuille et de le joindre à un mail
' Déclaration des variables utilisées dans le code
Dim sPath As String, sFileName As String, ShtName As String
Dim OutApp As Object, OutMail As Object
'
' Initialisation des variables
' Chemin d'accès du dossier TEMP
sPath = Environ("TEMP") & "\"
' Nom du fichier à envoyer par mail
sFileName = Sheets("SIGNALEMENT MENSUEL").Range("A1")
' Vérifier l'extension du fichier à enregistrer
If Right(sFileName, 4) <> ".pdf" Then sFileName = sFileName & ".pdf"
' Nom de la feuille à exporter en PDF
ShtName = "SIGNALEMENT MENSUEL"
'
'
' 1) Générer le PDF dans le répertoir temporaire de l'utilisateur
Sheets(ShtName).ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & sFileName, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'
' 2) Créer le mail et joindre le fichier
' Création d'une instance Outlook pour envoyer un mail
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(olMailItem)
' Avec mon objet OutMail
With OutMail
.Display ' Afficher le mail pour afficher la signature
' Destinataire(s) du mail
.To = Sheets("DONNEES").Range("Z3")
' Copie du mail
.CC = Sheets("DONNEES").Range("Z4")
' Sujet de l'OutMail
.Subject = Sheets("DONNEES").Range("Z5")
' Corps du mail avec signature à la fin
.HTMLBody = "Bonjour," & "<BR><BR>" _
& Sheets("DONNEES").Range("Z7") & " " & sFileName & "<BR><BR>" & .HTMLBody
' Joindre le fichier précédemment créé
.Attachments.Add sPath & sFileName
' Envoyer l'OutMail
'.Send
End With
' Effacer les variable objet
Set OutMail = Nothing: Set OutApp = Nothing
' Supprimer le fichier du répertoire temporaire
Kill sPath & sFileName
' désélectionne et revient a l'onglet signalement
Sheets("SIGNALEMENT MENSUEL").Select
End Sub