IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

Problème création doc [WD-2007]


Sujet :

VBA Word

  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2010
    Messages : 32
    Par défaut Problème création doc
    Bonjour,

    plutôt débutant sur vba, je tente de créer une macro permettant de récupérer les données d'un mail Outlook, puis de le transférer dans un document Word afin de l'imprimer. Evidemment si je poste c'est que cela ne marche pas, le problème venant de la création du document.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
     
    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
     
        Dim olApp As New Outlook.Application
        Dim wdApp As Word.Application
        Dim fax As Word.Document
        Dim mail As Object
        Dim ActivePrinter As Object
     
     
    'If (myItem.SentOnBehalfOfName = "fax@amg.lan") Then
        If MsgBox("Vous allez envoyer un fax. Continuer ?", vbQuestion + vbOKCancel) = vbCancel Then
            Cancel = True
        Else
            Cancel = True
            Set mail = olApp.ActiveInspector.CurrentItem
     
            Set wdApp = CreateObject("Word.Application")
            wdApp.Visible = False
            Set fax = wdApp.Documents.Add
     
            With fax.Selection
                .TypeText Text = mail.Subject
                .TypeText Text = mail.Body
            End With
     
            fax.PrintOut (ActivePrinter = "\\TAZ-WINSERV2K3\c360fax sur Ne01:")
     
        End If
    'End If
     
    End Sub
    Et voici la liste des références cochées :
    - Visual basic for Apps
    - MS Outlook 12.0 object library
    - MS Word ""
    - MS Office ""
    - MS Scripting Runtime
    - OLE Automation
    - MS Exchange 1.0 type library
    - Mail message ""
    - PrintUI objects ""
    - Print Management Console 1.0 type library

    Ayant bien activé la librairie Word, et ayant pris le code depuis la FAQ vba Word je ne vois pas du tout pourquoi j'ai ce problème.
    Evidemment étant débutant, j'ai sûrement dû rater quelque chose d'évident.
    Bref si vous avez des suggestions/corrections je suis preneur !
    Merci par avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Tu fais des mélanges.

    Si tu utilises du Early Binding, c'est ce que tu fais quand tu ajoutes des références à ton projet. On déclare directiement les bons objets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim wApp as Word.Application
    Dim Fax As Word.Document
    Ensuite, on affecte directement les objets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set wApp = New Word.Application
    Set Fax = wApp.Documents.Add

    Pour mettre du texte dans le document,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            With fax.Selection
                .TypeText Text = mail.Subject
                .TypeText Text = mail.Body
            End With
    ce code ne fonctionne pas, l'objet Selection appartient à l'objet application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With wApp.Selection
        .Typetext mail.Subject
        .TypeText mail.Body
    End With
    Et ce code ne me dit rien dansla FAq Word.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2010
    Messages : 32
    Par défaut
    Merci pour votre réponse, effectivement il y'avait 'quelques erreurs'. Malheureusement malgré vos corrections, j'ai une erreur ActiveX disant qu'il ne peut créer le composant. La librairie Word est pourtant toujours activée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    [...]
        Dim olApp As New Outlook.Application
        Dim wdApp As Word.Application
        Dim wdfax As Word.Document
        Dim mail As Object
        Dim ActivePrinter As Object
     
    [...]
            Set mail = olApp.ActiveInspector.CurrentItem
     
            Set wdApp = New Word.Application
            Set wdfax = wdApp.Documents.Add
     
            With wdApp.Selection
                .TypeText mail.Subject
                .TypeText mail.Body
            End With
    Ah et le code concernant la création du doc Word venait d'ici.

    Merci du temps consacré à ce sujet =)

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2010
    Messages : 32
    Par défaut
    Mea culpa, le DD de ma machine virtuelle était saturée ce qui évidemment empêchait de créer un nouveau doc.

    Merci pour votre aide ! =)

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Effectivement, je n'avais jamais revu ce code.

    La méthode CreateObject est principalement utilisée en Late Binding (c'est à dire lorsque l'on ne déclare pas la bibliothèque au projet.


    Ton problème d'ActiveX ne provient pas du bout de code que tu nous donnes.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème création de process
    Par skaii dans le forum MFC
    Réponses: 6
    Dernier message: 01/06/2005, 18h24
  2. .htaccess problème création sous windows
    Par Leviathan_72 dans le forum Apache
    Réponses: 2
    Dernier message: 18/05/2005, 21h29
  3. Problème création et destruction de processus.
    Par loupdeau dans le forum MFC
    Réponses: 5
    Dernier message: 08/04/2005, 14h33
  4. Problèmes création de procédures et de triggers
    Par missllyss dans le forum SQL
    Réponses: 2
    Dernier message: 06/11/2003, 11h42
  5. Problème création de DLL
    Par monsieur.voie.lactee dans le forum C++Builder
    Réponses: 4
    Dernier message: 12/08/2003, 17h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo