Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Outlook > VBA Outlook
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/09/2008, 13h01   #1
Membre actif
 
Inscription : octobre 2006
Messages : 354
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 354
Points : 159
Points : 159
Par défaut Erreur lors de l'ajout de la signature

Bonjour,

je connais très peu VBA et je suis en train d'écrire un code créant un mail dans outlook, mais je n'arrive pas à ajouter la signature automatiquement.
J'ai utilisé le code suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
    SigString = "D:\LocalPackage\User\Applications\Microsoft\Signatures\Sig1.htm"
 
    If DIR(SigString) <> "" Then
        Signature = GetBoiler(SigString)
    Else
        Signature = ""
    End If
 
'Create an Outlook object
  Dim Outlook 'As New Outlook.Application
  Set Outlook = CreateObject("Outlook.Application")
 
  Dim Message 'As Outlook.MailItem
  Set Message = Outlook.CreateItem(olMailItem)
  With Message
    .Display
    .Subject = Sujet
    .Body = Body & SigString
    .Attachments.Add (PriceOffer)
    .Recipients.Add (Address)
  End With
A l'exécution, j'ai "Type incompatible: 'DIR'"

Pourriez vous me dire pourquoi ?

Accessoirement, quand je crée un mail à la main dans outlook, la signature est ajoutée automatiquement. Ne peut-on pas reproduire ce comportement, c'est à dire créer par script un mail qui soit conforme au template (j'imagine que c'est un template ?) utilisé lors de la création manuelle ?

Merci d'avance
nox75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2008, 13h08   #2
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 202
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 202
Points : 14 410
Points : 14 410
Envoyer un message via Skype™ à Pierre Fauconnier
Bonjour

C'est étonnant que Dir soit tout en majuscules...

N'aurais-tu pas une variable ou une fonction qui s'appellerait DIR?

Peux-tu préciser ta version?
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2008, 13h43   #3
Membre actif
 
Inscription : octobre 2006
Messages : 354
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 354
Points : 159
Points : 159
Merci de ta réponse.

J'ai essayé Dir, ca n'a rien changé.

Et non je n'ai aucune variable appelée DIR

Je suis en Outlook 2003 (SP3)
nox75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2008, 14h51   #4
Membre actif
 
Inscription : octobre 2006
Messages : 354
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 354
Points : 159
Points : 159
Par défaut Fusion de messages, merci d'éditer

Bon, je viens de comprendre.

Je suis en VBS, et la syntaxe Dir n'existe pas...

J'ai donc fait ca
Code :
1
2
3
4
 
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(SigString).OpenAsTextStream(1, -2)
    Signature = ts.readall
Et ca roxxx


Actualisation du problème (dsl pour le petit troll '-_- ).

L'insertion de signature + HTMLBody ne fonctionne que si on desactive l'utilisation de Word comme éditeur...

Ca m'embête de devoir demander à tout le monde de décocher cette option.

Sauriez vous s'il y a un moyen de désactiver cette option par script ?
J'ai vu (solution de raccroc, mais bon) qu'il était possible de modifier la base de registre via VB. Mais je ne trouve pas l'endroit où est stockée cette propriété.
nox75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 10h03   #5
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
SAlut,
ca doit être là dans le registre

HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Options\Mail\UseWordMail = 1
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 11h06   #6
Membre actif
 
Inscription : octobre 2006
Messages : 354
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 354
Points : 159
Points : 159
Ok !

Et donc il y a moyen de modifier cette valeur avant l'exécution du code et de la remettre ensuite ?

Quelqu'un a deja essayé ?

Je suis assez frileux avec les modifications de base de registre à la sauvage : /
nox75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2008, 12h01   #7
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
Salut,

Quand on fait du html il faut tenir compte des balise HTML.

Voici un code qui fonctionne avec word comme éditeur.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub test()
Dim Outlook 'As New Outlook.Application
  Set Outlook = CreateObject("Outlook.Application")
 
  Dim Message 'As Outlook.MailItem
  Set Message = Outlook.CreateItem(olMailItem)
  With Message
 
    Sujet = "test"
    sigstring = "signature"
    .subject = Sujet
    .Body = "bonjour"
    .HTMLBody = "<HTML><HEAD></HEAD> " & vbCr & _
                "<BODY bgColor=#ffffff>" & vbCr & _
                "<DIV><FONT face=Arial size=2>Bonjour,</FONT></DIV>" & vbCr & _
                "<DIV><FONT face=Arial size=2>Ceci est un <STRONG>test</STRONG> en " & vbCr & _
                "HTML</FONT></DIV></BODY></HTML>"
    .HTMLBody = Replace(.HTMLBody, "</BODY>", sigstring & "</BODY>")
    '.Attachments.add (PriceOffer)
    '.Recipients.add (Address)
    .Display
  End With
End Sub
Cependant il faudrait que tu expliques le but de ton code car tu indiques utiliser un script vbs ? tu dois donc avoir un avertissement de sécurité ? il y a des méthodes pour éviter cela notamment en utilisant cdo si c'est juste pour envoyer un mail.
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2008, 14h01   #8
Membre actif
 
Inscription : octobre 2006
Messages : 354
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 354
Points : 159
Points : 159
Ma signature est deja un .htm

Du coup ca ne marche plus : /

Mais c'est une bonne piste. Je vais essayer de m'en sortir

EDIT : c'est ok
avec .HTMLBody = Replace(Signature, "<BODY>","<BODY>" & Body)

Merci à tous !
nox75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2008, 12h35   #9
Membre actif
 
Inscription : octobre 2006
Messages : 354
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 354
Points : 159
Points : 159
Re-Salut à tous

Je rouvre ce petit topic, car je me retrouve avec un problème de nouveau sur ce point :
Lorsque ma signature contient une image, elle n'est pas affichée dans Outlook, ni à l'envoi, ni à la réception.
Pourtant en ouvrant le .htm de signature, l'image est bien là donc le lien est bon.
L'option dans outlook pour l'affichage des images est bien activée, le corps du mail est bien en HTML...

De plus, en sélectionnant "à la main" mon fichier htm en tant que signature dans outlook, l'image apparaît bien.

Quelqu'un aurait-il deja eu le même probleme ?
nox75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h23.


 
 
 
 
Partenaires

Hébergement Web