Envoyer plusieurs feuilles masquee par mail

Bonjour, je veux pouvoir envoyer des feuilles qui sont masquer par mail en appuyant sur un bouton dans mon userform

les feuilles masquées que je voudrais envoyer sont : Feuil1 ; Feuil2 et Feuil3

voici le code que j'ai, mais il me permet seulement d'envoyer la feuille non masquée qui est ma feuille LOGIN

Private Sub CommandButton6_Click()
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Dim destwb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim OutApp As Object
Dim OutMail As Object
Dim S As Shape
Dim sNomFic As String, sRep As String, WshShell As Object

With Application
    .ScreenUpdating = False
    .EnableEvents = False
End With

' Créer une instance Windows Script pour retrouver le chemin du bureau
Set WshShell = CreateObject("WScript.Shell")
sRep = WshShell.SpecialFolders("Desktop")
Set WshShell = Nothing
' Définit le nom du fichier à enregistrer
sNomFic = "FICHE DE STOCK.pdf"
' Enregistrer la feuille en PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sRep & "\" & sNomFic, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

Set OutApp = CreateObject("outlook.application")
Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .To = "xxxxxxx@icloud.com"
        .Cc = ""
        .Attachments.Add (sRep & "\" & sNomFic)
        .Subject = "FICHE DE STOCK"
        .Send
    End With

With Application
    .ScreenUpdating = True
    .EnableEvents = True
End With
Kill (sRep & "\" & sNomFic)
End Sub

Merci de bien vouloir m'aider, si possible aussi, j'aimerais qu'on m'affiche une boite de dialogue ou je pourrai choisir la feuille que je veux envoyer (dans le cas ou je veux seulement envoyer une ou deux feuilles)

Bonjour DorelD,

Il serait bien de joindre ton fichier pour plus de facilité

Sinon voici le mien avec tout ce qu'il faut et testé

@+

Bonjour voici mon fichier joint.

le code d'acces est 0 mot de pass 0

j'ai essayé votre code mais il y a eu une erreur

j'attend votre retour

Salut DorelD

Voici ton fichier mis à jour

@+

Merci mais j'ai un soucis, dans le premier code il envoyait directement sans que outlook ne s'affiche,

ici le outlook s'affiche (chose que je ne veux pas) et en plus de cela on me sort un message d'erreur : 440 (impossible d'envoyer cet element, car une boite de dialogue modale est ouverte dans outlook

quand je fais deblogage on me met l'erreur a la ligne de

OutMail.Send

j'ai bricolé ce code et il envoi la feuille (mais une seule)

je veux pouvoir selectionner et envoyer les feuilles

Merci

Private Sub CommandButton6_Click()
  Dim Ind As Integer, NbFeuil As Integer
  Dim sNomFic As String, sRep As String
  Dim TabFeuil() As String
  Dim WshShell As Object
  Dim Sht As Worksheet
  Dim OutApp As Object, OutMail As Object
  '
  ' Demander quelle feuille
  UsF_ChoixImp.Show
  '
  ' Vérifier si au moins 1 feuille a été selectionnée, sinon on sort
  If ListeFeuilSel = "" Then Exit Sub
  '
  ' Définir le tableau des feuilles
  TabFeuil = Split(ListeFeuilSel, ",")
  ' Nombre de feuille sélectionnées
  NbFeuil = UBound(TabFeuil)
  '
  With Application
    .ScreenUpdating = False
    .EnableEvents = False
  End With
  ' Créer une instance Windows Script pour retrouver le chemin du bureau
  Set WshShell = CreateObject("WScript.Shell")
  sRep = WshShell.SpecialFolders("Desktop")
  Set WshShell = Nothing

  ' Ensuite il faut générer les feuilles
  ' Pour chaque feuille
  For Ind = 0 To NbFeuil
    With Sheets(TabFeuil(Ind))
      ' Afficher la feuille
      .Visible = xlSheetVisible
      ' Nom de la feuille comme nom de fichier
      sNomFic = .Name & ".pdf"
      ' L'exporter au format PDF
      .ExportAsFixedFormat Type:=xlTypePDF, Filename:=sRep & "\" & sNomFic, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
      ' Masquer la feuille
      .Visible = xlSheetHidden
    End With
    ' Attacher la feuille au mail
    Set OutApp = CreateObject("outlook.application")
Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .To = "djidji.dorel@icloud.com"
        .Cc = ""
        .Attachments.Add (sRep & "\" & sNomFic)
        .Subject = "FICHE DE STOCK"
        .Send
    End With

With Application
    .ScreenUpdating = True
    .EnableEvents = True
End With
Kill (sRep & "\" & sNomFic)
  Next Ind
  ' Réactiver l'écran et les évènements
  With Application
    .ScreenUpdating = True
    .EnableEvents = True
  End With
  MsgBox ("ENVOYE")
End Sub

Re,

Merci mais j'ai un soucis, dans le premier code il envoyait directement sans que outlook ne s'affiche,

ici le outlook s'affiche (chose que je ne veux pas) et en plus de cela on me sort un message d'erreur : 440 (impossible d'envoyer cet element, car une boite de dialogue modale est ouverte dans outlook

quand je fais deblogage on me met l'erreur a la ligne de

OutMail.Send

Je l'ai indiqué dans le code

J'affiche Outlook pour la signature si tu en as une, maintenant si tu ne veux pas, il suffit de supprimer

OutMail.Display

Maintenant si tu ne veux pas de mon code, je te laisse te débrouiller, d'autres répondront

Oups Oups Bruno, je suis vraiment désolé

je n'avais pas fais attention

Grand merci a toi

je suis vraiment désolé aussi, jespere aussi que tu continuera a m'aider.

Je suis vraiment désolé

Rechercher des sujets similaires à "envoyer feuilles masquee mail"