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

Bichonnet

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

hééé oui on en a jamais fini :p

J avais commencé avec ma boucle for each a proposer un MsgBox pour voir si oui ou non le mail devait etre envoyé (si pas de ligne visible --> pas d envoie de mail).

La question de la date...celle là...j'y ai bien pensé (c'est une des raisons aussi pour laquelle la sélection manuelle permet de choisir les lignes qu'on envoie) mais c'est la prochaine étape, envoyer au relais pipette si "non" et si "date rappel = empty"..

De quoi tenir encore quelques jours :-D
 

adel53

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

Yep encore du boulot mais réalisable. pense aussi à l'histoire si on double cliques sur date rappel 3 alors que le rappel 2 n'a pas été fait par exemple.
Est ce que tu penses réaliser un onglet dans le menu excel avec l'ensemble de tes fonctions une fois le projet fini?
 

Bichonnet

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

Oui l'histoire des dates rappel 3,...est ce à quoi je pensais en effet ! Ca va être passionant !


"Est ce que tu penses réaliser un onglet dans le menu excel avec l'ensemble de tes fonctions une fois le projet fini?" -_> qu'entends-tu par "onglet dans le menu excel" ?
 

Bichonnet

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

Ah ok customiser mon ruban pour y mettre mes macro (ou bien je n'ai décidément pas compris ? :p)

Non je ne pense pas vu que la macro est appelée par double clique et qu'il vaut mieux que les utilisateurs n'aient pas accès au code (fichier partagé sur un serveur)

Mais je me dis que tu ne poses sans doute pas cette question par hasard :D, tu as une idée derrière la tête ?
 

adel53

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

Personnellement l'ensemble de mes fichiers sont utilisés par plusieurs utilisateurs. Le fichier est sur un serveur comme toi l'histoire du ruban c'est de donner une meilleure visibilité à ce qu'on peut réaliser avec le fichier en gros tu mets en avant les fonctionnalités. En gros pour chaque macro tu auras une icone qui en survolant donne une aide sur ce que fait la macro.
As tu déjà réfléchis à l'ensemble des tâches et actions qu'auront à faire les utilisateurs finaux?

Je t'ai envoyé en mp un exemple d'un onglet personnalisé
 
Dernière édition:

Bichonnet

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

Ah oui je vois l'idée, mais c'est parce que tu as plusieurs macro différentes à appliquer sur le fichier en question ?

Pour ma part il n'y a qu'une seule macro à faire tourner, c'est celle de l'envoie du mail...

Mais ça m'était déjà arrivé d'en avoir plusieurs et j'avoue que la solution du ruban est plus esthétique que des boutons sur la sheet ! :p
 

Bichonnet

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

Yes, j'espère que j'aurai encore le temps les jours qui viennent de plancher sur la condition "pas de rappel déjà envoyé,..." + noter la date du jour dans toutes les cases de rappel !

Je ne manquerai pas de faire signe si j'ai un souci, tu m'as été d'une grande aide !

J espère un jour pouvoir à mon tour aider d'autres users :-D
 

Bichonnet

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

Hello !

J'ai eu un peu de temps pour essayer d'améliorer le code :
1. J ai fait en sorte d'afficher la date du jour dans la colonne Rappel en rajoutant une condition que la colonne 1 doit etre égale à la variable "reponse" + "non" + cellule(i,17)=" "
Ca marche très bien

Code:
For i = 2 To dlg
        'MsgBox MaColonne
            If Cells(i, 1) = reponse And Cells(i, 12) = "Non" And Cells(i, 17) = "" Then
                Cells(i, 17) = Now()
                With Sheets("Temporaire")
                    dlg2 = .Range("A9999").End(xlUp).Row
                    If Not .Cells(dlg2, 1) = "" Then dlg2 = dlg2 + 1
                    wksSource.Range("A" & i, "W" & i).Copy
                    .Cells(dlg2, 1).PasteSpecial xlPasteValues
                End With
            End If
        Next i

Mais pour que ce soit possible d'analyser la colonne "rappel" où il y a le double clique, je m'étais dit qu'il me suffisait de déclarer une variable MaColonne=ActiveCell.Row et d'adapter le code :

Code:
For i = 2 To dlg
        'MsgBox MaColonne
            If Cells(i, 1) = reponse And Cells(i, 12) = "Non" And Cells(i, MaColonne) = "" Then
                Cells(i, MaColonne) = Now()
                With Sheets("Temporaire")
                    dlg2 = .Range("A9999").End(xlUp).Row
                    If Not .Cells(dlg2, 1) = "" Then dlg2 = dlg2 + 1
                    wksSource.Range("A" & i, "W" & i).Copy
                    .Cells(dlg2, 1).PasteSpecial xlPasteValues
                End With
            End If
        Next i

En mettant un MsgBox avant le If, il me donne bien le bon numéro de colonne mais il fait un bug à la première ligne du If... Je ne comprends pas trop pourquoi ? Tu aurais une idée ?:confused:

EDIT :

Ca fonctionne si je mets dans le code, à la place de "MaColonne", "ActiveCell.Column"...mais pourquoi il veut pas de ma variable"MaColonne" ? :-(
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
113
Réponses
22
Affichages
758

Statistiques des forums

Discussions
312 185
Messages
2 086 009
Membres
103 089
dernier inscrit
johnjohn1969