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 :

Envoi du fichier actif par mail en cachant des feuilles


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 44
    Points : 27
    Points
    27
    Par défaut Envoi du fichier actif par mail en cachant des feuilles
    Bonjour,

    Je vais essayer d'être plus clair que le titre:
    Je fais une macro pour envoyer le fichier actif en PJ à un mail, jusque la pas de soucis. Mais, je voudrais pouvoir envoyer seulement les 2 premiéres feuilles sur 4 de mon fichier.
    La solution qui me conviendrais le mieux serait tout simplement de cacher les feuilles inutiles pour l'envoi du fichier et les réafficher aprés. J'ai essayé en utilisant Sheets("Feuille 1").Visible = xlSheetVeryHidden Puis de réafficher la feuille aprés l'envoi du mail mais ca ne focntionne pas la feuille est présente dans le fichier joint au mail.
    Si vous avez d'autres idées je suis preneur également.

    Voici mon code pour l'envoi du mail.

    Merci par avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    If Not (appOutlook Is Nothing) Then
     
          Set MonMail = appOutlook.CreateItem(olMailItem)
          MonMail.Attachments.Add Monfichier
          MonMail.To = listemail
          MonMail.Subject = "Appel d'offre pour ..."
          'MonMail.Body = "Bonjour, Ci-joint à ce mail"
          MonMail.HTMLBody = strHTML
          MonMail.Display
     
          Set MonMail = Nothing
          Set appOutlook = Nothing
     
       End If

  2. #2
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    pour ne pas cacher les feuilles, il est aisé de sauver une copie des feuilles souhaitée dans un nouveau classeur et d'envoyer ce classeur par email

    Exemple pour envoyer 3 feuilles sélectionnées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Sheets(Array("Tools", "External", "Pivot")).Select
        Selection.Copy
        ActiveWorkbook.SaveAs FileName:= _
            FileName, FileFormat:= _
            xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
            , CreateBackup:=False
        ActiveWorkbook.Close
    Puis la suite de ton code où tu remplaces MonFichier par le nom du saveas (ici FileName).

  3. #3
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Une idée, créer un classeur temporaire sur lequel tu colle tes deux feuilles, tu supprimes les trois autres créées avec le classeur afin de ne pas avoir de feuilles inutiles, tu envoi puis tu supprime le classeur. Enfin, comme dit, c'est une idée.

    Hervé.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    Merci pour les réponses.
    Pour le code donné j'ai testé et j'ai une erreur je ne comprend pas sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ActiveWorkbook.SaveAs Filename:= _
            Filename, FileFormat:= _
            xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
            , CreateBackup:=False
    Pour l'idée du fichier temporaire ca pourrait être bien oui, par contre je ne vois pas trop comment faire. J'ai oublié de précisé je débute en fait dans le vba.
    Merci

    Aprés reflexion le fait de copier des feuilles dans un fichier actif ne va pas convenir car il y a des cellules dans mon fichier qui contiennent plus de 256 caractéres et ces cellules se retrouvent tronqués.

    La solution qu'il me faudrait est donc : Cacher les feuilles inutiles pour l'envoi du mail. Puis réafficher les feuille avant la sauvegarde du fichier.

    Merci

  5. #5
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Re,

    1) Si tu as une erreur ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ActiveWorkbook.SaveAs Filename:= _
            Filename, FileFormat:= _
            xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
            , CreateBackup:=False
    c'est parce que tu dois déclarer la variable Filename et l'initialiser à un contenu valide.

    Qqchose du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim Filename as string
    '....
    Filename = "C:\Classeur_a_envoyer.xls"
    2) pour ceci :
    Aprés reflexion le fait de copier des feuilles dans un fichier actif ne va pas convenir car il y a des cellules dans mon fichier qui contiennent plus de 256 caractéres et ces cellules se retrouvent tronqués.
    Il n'y a pas lieu de se tracasser pour cela. Essaie avant de paniquer.



    Pour ceci :
    J'ai essayé en utilisant Sheets("Feuille 1").Visible = xlSheetVeryHidden Puis de réafficher la feuille aprés l'envoi du mail mais ca ne focntionne pas la feuille est présente dans le fichier joint au mail.
    Il faut sauver ton fichier après avoir changé ton attribut .visible à caché.

    D'autre part, j'espère que tu es conscient que la feuille est présente, quoi qu'elle soit cachée.

    Bonne soirée.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    Merci godzestla pour ta réponse.

    Pour le premier code qui m'a été donné en effet je suis allé un peu vite j'ai pas fait attention qu'il fallait simplement que je déclare la variable.

    Pour ce qui est des 256 caractéres en copiant la feuille, c'est justement en testant que j'ai bien vu que cela ne marchait pas ... Le texte de certaines cellules se retrouvait tronqué...

    Je suis bien conscient que les feuilles sont seulement caché et non supprimé mais cela me convient bien que je l'ai dit. C'est donc ce que j'ai réussi à faire en rajoutant une sauvegarde du fichier en effet.Merci pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] Envoi de fichier pdf par mail
    Par wd_newbie dans le forum Langage
    Réponses: 3
    Dernier message: 22/01/2014, 14h16
  2. Envoi de fichiers attachés par mail
    Par casho dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 28/01/2009, 19h13
  3. Envoi de fichier vide par mail
    Par afrodje dans le forum Langage
    Réponses: 2
    Dernier message: 25/11/2008, 15h43
  4. Envoi de fichier excel par mail automatique
    Par julio02200 dans le forum Excel
    Réponses: 3
    Dernier message: 06/11/2007, 14h31
  5. Envoie d'un fichier excel par mail via un bouton d'action
    Par ghostal dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/07/2006, 08h22

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