IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Envoyer feuille par mail lorsqu'on a deux classeurs pour un userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2020
    Messages : 90
    Par défaut Envoyer feuille par mail lorsqu'on a deux classeurs pour un userform
    Bonjour comment allez vous ? je gere deux classeur avec un userform.
    je voudrais pouvoir envoyer des feuilles au choix par mail
    j'ai ma formule habituelle qui est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    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
     
      ' Créer une instance Outlook et mail
      Set OutApp = CreateObject("outlook.application")
      Set OutMail = OutApp.CreateItem(0)
      ' Afficher le mail pour la signature et définir les éléments souhaités
      With OutMail
     
        .To = "dj@icloud.com"
        .Cc = ""
        .Subject = "FICHE DE STOCK"
      End With
      ' 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
        OutMail.Attachments.Add sRep & "\" & sNomFic
        ' Une fois attacher, on peut le supprimer
        Kill sRep & "\" & sNomFic
      Next Ind
      ' Uns fois terminé, on peut envoyer le mail
      OutMail.Send
      ' Réactiver l'écran et les évènements
      With Application
        .ScreenUpdating = True
        .EnableEvents = True
      End With
    End Sub
    j'ai un code dans le userform qui gere les deux classeur qui me permet d'imprimer la feuille au choix en fonction des selections des combobox
    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If ComboBox2.Value = "" Or ComboBox1.Value = "" Then
         MsgBox " Veuillez selectionner la feuille a imprimer svp"
        Exit Sub
        End If
    wb_avions.Sheets(Me.ComboBox2.Value).PrintOut
    wb_clients.Sheets(Me.ComboBox1.Value).PrintOut
    je voudrais pouvoir adapter mon premier code afin de pouvoir envoyer la feuille que je veux dans les deux classeurs

    un classeur est AVIONS et l'autre CLIENTS


    meRCI

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Dorel.D Voir le message
    Bonjour,

    Soit une variable publique WbChoisi de type Workbook, et WbChoisi instanciée dans Private Sub CommandButton6_Click en fonction du fichier choisi pour sélectionner les onglets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     For Ind = 0 To NbFeuil
        With WbChoisi.Sheets(TabFeuil(Ind))
        '....
     Next Ind

Discussions similaires

  1. [XL-2010] Envoyer une feuille par mail outook
    Par yoyo-tns dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/10/2013, 13h21
  2. Envoyer image par Mail
    Par soft_57 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/05/2011, 11h05
  3. Amélioration du code de l'envoi d'une feuille par mail via LotusNotes
    Par alex830001 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 03/11/2008, 14h39
  4. [Access 97] Envoyer Formulaire par mail
    Par 6ril25 dans le forum VBA Access
    Réponses: 14
    Dernier message: 18/10/2007, 11h14
  5. Envoi d'une feuille par mail
    Par yjouin dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/07/2007, 10h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo