NadQc
Messages postés2Date d'inscriptionjeudi 21 février 2008StatutMembreDernière intervention22 février 2008
-
21 févr. 2008 à 22:02
NadQc
Messages postés2Date d'inscriptionjeudi 21 février 2008StatutMembreDernière intervention22 février 2008
-
22 févr. 2008 à 17:36
Bonjour,
Je suis toute nouvelle sur la planète programmation sous vb 6.3.
J'ai pu, avec un copain informaticien et en mettant des bouts de code d'autres développeurs, faire qu'une plage de données déterminées sous excel soit envoyée dans le corps d'un courriel sous Lotus Notes 6.5.4...et ça fonctionne!!!
Le trouble vient du fait que chaque cellule est encadrée...même si sous Lotus j'enlève les encadrés, la personne qui reçoit le courriel aura les cellules encadrées.
La solution que j'ai trouvé serait de lier toutes les cellules sous Lotus Notes(je n'ai qu'une colonne donc pas de trouble pour la mise en page) car à ce moment là, la personne qui reçoit aurait un gros encadré...mais un seul pour tout le tableau!!! Ce qui visuellement, passera mieux dans ma hiérarchie!
J'ai essayé de mettre le code mais cela ne fonctionne pas, alors j'ai mis ' devant les lignes qui fonctionnent pas...pour les neutraliser. Le code ajouté est tout en bas du code en pink.
Si quelqu'un avait une solution ou une idée pour résoudre ce problème, cela serait fort apprécié.
Merci!!!
CODE UTILISÉ :
' Ce module permet l'envoi d'un mail par le logiciel client SMTP par défaut du système
'
' le principe est de créer un lien de type "mailto:"
' et de demander au programme appelant de suivre ce lien
'
' Les arguments Adresse, Objet, Corps et Adresses de copie et de copie cachés sont fournis à la procédure
' qui les utilise pour définir l'hyperlien qui sera activé par la méthode
' FollowHyperLink du classeur actif
'
' le problème est que VB suit le lien
' (ici il lance le programme de messagerie en lui fournissant les infos nécessaires)
' puis se désintéresse du problème
' c'est donc à l'utilisateur de finir le travail :
' choix éventuel de la pièce jointe et envoi du message.
'
' pour automatiser complètement le processus,
' on utilise une méthode un peu simpliste mais efficace :
' simuler l'appui sur les touches à utiliser pour envoyer le message
' à l'aide de l'instruction SendKeys.
' en temporisant les envois successifs de touches, on y arrive très bien
'
' Inconvénient de la méthode : chaque logiciel de messagerie utilise ses propres
' menus (donc touches) pour joindre un fichier et envoyer le message
' par exemple : Outlook Express utilise le menu Intsertion (touche : Alt-I)
' puis le sous menu Pièce (touche : P)
' et l'envoi du message se fait par Alt-Entrée
'
' pour pallier à cet inconvénient, je propose de stocker dans 2 tableaux
' TouchesPJ() et TouchesEnvoi()
' l'enchaînement de touches à utiliser
' il suffit donc d'activer l'initialisation qui va bien pour le client utilisé.
' Procédure principale qui compose les éléments du message
' et effectue la demande d'envoi
' c'est cette procédure qui sera appelée par le programme principal (ici Excel)
'
Sub EnvoiEmail(Adresse As String, Objet As String, Corps As String, ClientMessagerie As Integer, Optional ZoneACopierColler As Object, Optional PJ As String, Optional Cc As String, Optional Bcc As String, Optional Collage As Boolean, Optional CollageTexteRiche As Boolean)
' Remarques : les arguments : Adresse, Objet, Corps et ClientMessagerie sont obligatoires
' ClientMessagerie prend les valeurs suivantes à l'heure actuelle :
' 1=Outlook Express
' 2=Mozilla Thunderbird
' 3=Office Outlook
' 4=Une autre version pour Outlook2003
' 5=Incredimail
' 6=Office Outlook 2007
' 7=Office2000OutLook
' 8=LotusNotes
' 9=...à vous d'ajouter d'autres clients
' l'argument PJ (pièce jointe) est optionnel. S'il est fourni,
' c'est le chemin complet du fichier à joindre qui doit être fourni
' pour joindre plusieurs pièces,
' les arguements Cc (copie) et Bcc (copie cachée) sont également facultatifs
' l'argument Collage permet d'indiquer à la procédure si elle doit coller
' le contenu du presse papier dans le corps du message
' Si ZoneACopierColler est renseigné, c'est cet argument qui est collé dans le corps du message
' POUR LOTUS NOTES EXCLUSIVEMENT (pour le moment...)
' l'argument CollageTexteRiche permet de spécifier si l'on souhaite que les données dans ZoneACopierColler
' Initialisation des tableaux de touches pour Incrédimail
' Pour une pièce jointe
TouchesPJ(0) = 1 ' Nombre de touches nécessaires
TouchesPJ(1) = "^+a" 'Appel du menu Insertion Fichier par la touche Ctrl+Shift+A
' Pour l'envoi du mail
TouchesEnvoi(0) = 1 ' Nombre de touches nécessaires
TouchesEnvoi(1) = "%s" 'Envoi du message avecAlt-s
End Sub
Sub Office2003OutLookV2()
' Version corrigée par CLARK1978 à essayer si la version d'origine ne gère pas
' la touche Alt-i correctement
' Initialisation des tableaux de touches pour Office Outlook 2003
' Pour une pièce jointe
TouchesPJ(0) = 3 ' Nombre de touches nécessaires
TouchesPJ(1) = "%a" 'Appel du menu Insertion par la touche Alt-a (affichage)
TouchesPJ(2) = "{RIGHT}" ' puis flèche à droite
TouchesPJ(3) = "f" ' appel du sous-menu fichier par la touche f
' Pour l 'envoi du mail
TouchesEnvoi(0) = 1 ' Nombre de touches nécessaires
TouchesEnvoi(1) = "%v" ' Envoi du message avecAlt-v
End Sub
Sub Office2007OutLook()
' Contribution de PC512 pour Office 2007
' Initialisation des tableaux de touches pour Office Outlook 2007
' Pour une pièce jointe
TouchesPJ(0) = 2 ' Nombre de touches nécessaires
TouchesPJ(1) = "%s" ' Appel du menu Insertion par la touche Alt-i
TouchesPJ(2) = "jf" ' appel du sous-menu fichier par la touche f
' Pour l'envoi du mail
TouchesEnvoi(0) = 1 ' Nombre de touches nécessaires
TouchesEnvoi(1) = "%v" 'Envoi du message avec Alt-v
End Sub
Sub Office2000OutLook()
' Contribution de TANATLOC92 pour Office Outlook 2000
' Initialisation des tableaux de touches pour Office Outlook 2000
' Pour une pièce jointe
TouchesPJ(0) = 2 ' Nombre de touches nécessaires
TouchesPJ(1) = "%i" ' Appel du menu Insertion par la touche Alt-i
TouchesPJ(2) = "f" ' appel du sous-menu fichier par la touche f
' Pour l'envoi du mail
TouchesEnvoi(0) = 1 ' Nombre de touches nécessaires
TouchesEnvoi(1) = "^{ENTER}" ' Envoi du message avec Ctrl-Entrée
End Sub
Sub LotusNotes()
' Initialisation des tableaux de touches pour LotusNotes
' Pour une pièce jointe
TouchesPJ(0) = 2 ' Nombre de touches nécessaires
TouchesPJ(1) = "%f" ' Appel du menu Fichier avec la combinaison Alt-f
TouchesPJ(2) = "r" ' appel du sous-menu Rattachement par la touche r
' Pour la copie en texte riche
TouchesCRT(0) = 3 ' Nombre de touches nécessaires
TouchesCRT(1) = "%e" ' Appel du menu Edition avec la combinaison Alt-e
TouchesCRT(2) = "s" ' appel du sous-menu Copie Spéciale par la touche s
TouchesCRT(3) = "{DOWN 1}" ' appuie de la touche vers le bas (1 fois)
' Pour sélectionner les cellules du tableau
' TouchesCRT(0) = 2 ' Nombre de touches nécessaire
'TouchesCRT(1) = "%" ' Appel des raccourcis par la touche Alt
'TouchesCRT(2) = "b" ' Appel du menu Tableau par la touche b
'TouchesCRT(3) = "b" ' Appel du sous-menu Sélectionner dans Tableau par la touche b
'TouchesCRT(4) = "t" ' Appel du sous-sous-menu Toutes les cellules par la touche t
'Pour lier les cellules du tableau
' TouchesCRT(0) = 5 ' Nombre de touches nécessaire
' TouchesCRT(1) = "%" ' Appel des raccourcis par la touche Alt
' TouchesCRT(2) = "b" ' Appel du menu Tableau par la touche b
' TouchesCRT(3) = "i" ' Appel du sous-menu Lier cellules par la touche i
' Pour l'envoi du mail
TouchesEnvoi(0) = 2 ' Nombre de touches nécessaires
' Mettre à 1 si il n'y a pas de verification automatique de l'orthographe du mail
TouchesEnvoi(1) = "%&" ' Envoi du message avec Alt-1
TouchesEnvoi(2) = "%v" ' Vérification de l'orthographe du mail (Option facultative....)
' A mettre exclusivement si la verification de l'orthographe du mail est automatique....
NadQc
Messages postés2Date d'inscriptionjeudi 21 février 2008StatutMembreDernière intervention22 février 2008 22 févr. 2008 à 17:36
Bonjour,
En y travaillant je pense que j'ai trouvé une solution. Cela ne peux s'appliquer malheureusement que au tableau excel ayant une seule colonne!!! Dans mon cas présent, cela me suffit. De même, il reste un encadré autour du tableau mais je pense qu'il restera à part si une âme charitable trouve une solution. Je n'ai testé le code que pour le passage de excel vers Lotus Notes. Je ne sais pas si l'envoie via d'autres gestionnaires de messagerie fonctionne mais comme le code reprends en majeure partie ceux d'autres personnes (plus calées que moi) je pense que ça fonctionne probablement.
Je vous mets le code à ajouter dans le code de mon 1er message. Il faut supprimer aussi dans mon 1er message les lignes qui ne servent à rien tout en bas du code dans la section Lotus Notes car je tatonnais et cela ne convenait pas.
Code :
If Collage Then
' colle puis insère le texte du message au début du message
SendKeys "{TAB}", True ' passage sur le corps du message ==> Nécessaire pour Lotus notes
If Not (TypeName(ZoneACopierColler) = "Nothing") Then
ZoneACopierColler.Copy
If CollageTexteRiche And TouchesCRT(0) <> "" Then
For i = 1 To TouchesCRT(0) ' dans TouchesCRT(0) on a stocké le nombre de touches
' à envoyer au programme pour joindre une pièce
SendKeys TouchesCRT(i), True ' Envoie les touches de copie en texte riche