VBA - copier un tableau filtré dans un mail Outlook HTML

  • Initiateur de la discussion Initiateur de la discussion Bichonnet
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Bichonnet

XLDnaute Junior
Bonjour le Forum !

Cela fait une semaine que je suis sur une macro...et grâce au forum j'ai pu combiner différents codes et arriver à quelque chose qui répond parfaitement à mes attentes :

Le fichier ci-dessous :
1. Quand on double clique dans une des colonnes "Rappel", la macro nous ouvre une fenêtre de sélection. Il faut sélectionner des lignes sous les colonnes bleues (de A à I).
En cliquant sur OK
2. Il ouvre un mail Outlook (2010) où il colle la zone sélectionnée + l'en-tête des colonnes

Ca marche nickel...SAUF (ben oui s'il y'avait pas de SAUF, il n'y aurait pas besoin de votre aide 😛) que si j'utilise le filtre sur la colonne A et que je fais la manip du double clique dans la colonne RAPPEL,..il va me coller dans mon mail outlook les lignes visibles (ligne de code qui le demande)

--> Où est le souci me demanderez-vous ? Lorsque j'envoie le mail à ma propre adresse, je le reçois comme il faut mais quand je fais un Forward ou un Reply, toutes mes lignes apparaissent dans le mail (enfin disons les lignes non visibles due au filtre sur la colonne A)

Par quel mystère ces lignes apparaissent alors que je fais un coller des cellules visibles ?
Y a-t-il une solution ?
Ne pas les coller en html mais en bitmap ?

Heeelp please 😉

Merci d'avance !!
 

Pièces jointes

Re : VBA - copier un tableau filtré dans un mail Outlook HTML

Bonjour

A mon avis pour résoudre ton problème tu devrais créer un onglet temporaire où tu reprends ton entête et à partir du moment ou tu doubles cliques la ligne se copie automatiqument et se colle dans A2 de l'onglet temporaire. si j'ai bien compris tu n'auras jamais plus d'une ligne
Après ton rangetohtml pointra sur la feuille temporaire.
Penses à utiliser xlCalculationManual afin d'accélérer ton code tu n'as aucune raison de calculer à chaque fois.

Cordialement
 
Re : VBA - copier un tableau filtré dans un mail Outlook HTML

Hello adel53 !

Si je peux avoir plusieurs lignes (d'où mon problème que, si je filtre, les lignes que je peux sélectionner ne sont pas toutes à la suite les une des autres) --> j ai un projet plus grand pour cette macro d'automatiser le filtre sur la colonne "réponse" puis un filtre automatique par boucle For Each dans la colonne A et envoie automatique des lignes visibles (pas encore au point mais je préfère d'abord résoudre mon souci de lignes non visibles dans un premier mail qui apparaissent en faisant reply :-()

Par contre je vais me renseigner sur le xlCalculationManual, ça m'intéresse !!

Merci 🙂
 
Re : VBA - copier un tableau filtré dans un mail Outlook HTML

Re,


Mais je vois pas en quoi la feuille temporaire est différente de mon classeur temporaire que je créepour transformer ma sélection en html ?
Je filtre sur la colonne "réponse" et sur la colonne A 🙂

Ca copie mes lignes visibles, ca les colle et par le plus grand des mystères, en faisant un reply à mon mail, les lignes non visibles et inclues dans ma sélection deviennent visible.
 
Re : VBA - copier un tableau filtré dans un mail Outlook HTML

Si jamais tu risques d'utiliser ton fichier sur différentes machines je pense qu'il serait préférable d'utiliser ce qu'on appel le late binding en gros tu transforme cette partie de ton code
Code:
   Dim OlApp As Outlook.Application
    Dim OlItem As Outlook.MailItem

en

Code:
 Dim ol As Object
        Set OlApp = CreateObject("Outlook.Application")
        Dim OlItem As Object
        Set OlItem = OlApp .Application.CreateItem(olMailItem)

Ceci fais en sorte de ne plus utiliser des références et donc d'éviter les problèmes de version etc
 
Re : VBA - copier un tableau filtré dans un mail Outlook HTML

Mais la ligne suivante :

.ActiveWorkbook.PublishObjects.Add(SourceType:=xlSourceRange, Filename:="C:\Temp\XLRange.htm", Sheet:=rngeSend.Parent.Name, Source:=rngeSend.Address, HtmlType:=xlHtmlStatic).Publish True

créze bien un tableau intermédiaire avant de l'envoyer dans mon mail non ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
447
Retour