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

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 :p) 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

  • Excel-dwnld - VBA.xlsm
    69.6 KB · Affichages: 114

adel53

XLDnaute Occasionnel
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
 

Bichonnet

XLDnaute Junior
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 :)
 

adel53

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

Est ce que tu filtres sur une seule colonnes ou plusieurs? tu peux utiliser ton foreach mm si tu as plusieurs lignes avec le principe de la feuille temporaire
 

Bichonnet

XLDnaute Junior
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.
 

adel53

XLDnaute Occasionnel
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
 

adel53

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

Effectivement les lignes sont visibles lors du reply.
Je ne sais pas à quoi c'est du en faisant une copie sur un tableau intermédiaire tu évites ce problème
 

Bichonnet

XLDnaute Junior
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 ?
 

adel53

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

en accédant au fichier temporaire on se rend vite compte que les lignes sont juste masquées. du coup outlook doit surement les afficher par erreur lors du reply
 

Discussions similaires

Réponses
2
Affichages
112
Réponses
22
Affichages
750

Statistiques des forums

Discussions
312 161
Messages
2 085 843
Membres
103 003
dernier inscrit
Maxmarie14