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 Outlook Discussion :

Problème de transfert d'un programme fait sur VBA Excel à VBA Outlook


Sujet :

VBA Outlook

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème de transfert d'un programme fait sur VBA Excel à VBA Outlook
    Bonjour,

    J'etais en train de faire un petit programme d'envoi de mail sauf que je l'ai programmé sur Excel avant de le mettre sur le VBA d'Outlook. Puis je me suis rendu compte que les commandes ne sont pas les mêmes.

    J'aimerais savoir si quelqu'un peut m'aider, il faudrait trouver une variable de Folder (Excel) sur Outlook. Quand je le mets sur outlook, il cherche dans la plateforme d'outlook or j'aimerai que le programme cherche des dossiers sur mon bureau. Vous trouverez ci dessous un morceau du programme. Merci d'avance!!!

    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
    Sub ParcourtDossier()
        Dim GestionFichier As New Scripting.FileSystemObject
        ' On commence par définir une variable de type Folder :
        Dim Dossier As Folder
        Dim SousDossier As Folder
        Dim oElement As IXMLDOMElement 'la variable du contenu située entre deux balises
        ' Cette boucle parcourt tous les dossiers contenus dans F:\Atelier :
        a = 1
        For Each Dossier In GestionFichier.GetFolder("C:\Users\Laurène\Desktop\Tampon DICT").SubFolders
            ' On affiche le nom du dossier courant dans la fenêtre exécution :
     
            For Each SousDossier In GestionFichier.GetFolder(Dossier.Path).SubFolders
                 ' On affiche le nom du dossier courant dans la fenêtre exécution :
     
     
     
                ' Fichier va contenir le nom du premier fichier rencontré dans le SousDossier
                 Fichier = Dir(SousDossier.Path & "\*.*")
                ' Tant que Fichier est différent de vide (Tant qu'il y a un fichier à lire, simplement)
                While Fichier <> ""
                adresse = ""

  2. #2
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    quel est ton projet au juste ?

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Mon projet est de créer un bouton sur Outlook afin qu'il envoie des mails automatiquement. Pour cela il faut qu'il recherche dans des dossiers et des sous dossier, un fichier xml afin qu'il recupère les différentes adresses mails de destinataire ainsi que les pièces jointes à ajouter dans le mail.

    Par exemple mon dossier de recherche est composé comme ci-dessous:

    Dossier Tampon
    -Dossier Commune 1
    - Sous dossier affaire 1
    -Fichier xml
    -Pieces jointes
    - Sous dossier affaire 2
    -Fichier xml
    -Pieces jointes
    -Commune 2
    - affaire1
    - affaire2
    - affaire3
    ...

    J'ai réussi à le faire sous excel (fin j'ai réussi à récupérer les adresses contenues dans les fichiers xml).
    Mais quand j'ai voulu mettre le programme sur Outlook, il plante dès la premier ligne.
    Donc je pense que le FOLDER sur Excel et Sur Outlook n'a pas la meme signification.

    En lançant le programme pas à pas voici où il plante:

    For Each Dossier In GestionFichier.GetFolder("C:\Users\laurene.stefani\Desktop\Tampon DICT").SubFolders

  4. #4
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Rien ne t’empêche de lancer ton traitement via excel en pilotant par AUTOMATION OUTLOOK.


    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    Sub EmailViaExcel()
        Dim OL As Outlook.Application
        If UCase(Application) = "OUTLOOK" Then
            Set OL = Application
        Else
            Set OL = CreateObject("outlook.application")
        End If
        Set oMail = OL.CreateItem(olMailItem)    '0
     
        Const olFormatHTML = 2
        With oMail
            .To = Adresse
            .BodyFormat = olFormatHTML
            .Subject = "HMTL BODY du " & Date
     
            ' debut du message html
            Const SAUTLIGNE = "<br/>"
     
            .HTMLBody = "<body>"
     
            img1 = "1-4.jpg"
            img2 = "2-4.jpg"
            img3 = "3-4.jpg"
            img4 = "4-4.jpg"
     
    On Error Resume Next
            .Attachments.Add ThisWorkbook.path & "\" & "1-4.jpg", olByValue, 0
            .Attachments.Add ThisWorkbook.path & "\" & "2-4.jpg", olByValue, 0
            .Attachments.Add ThisWorkbook.path & "\" & "3-4.jpg", olByValue, 0
            .Attachments.Add ThisWorkbook.path & "\" & "4-4.jpg", olByValue, 0
     
    On Error GoTo 0
     
     
            'Ecrit bonjour en gras, calibri, taille 40
            .HTMLBody = .HTMLBody & "<font face=""calibri"" size =""40"" color=""black""> hello <b>Bonjour ! " & prenom & " " & Nom & "</b></font>"
            'Saute deux lignes
            .HTMLBody = .HTMLBody & SAUTLIGNE & SAUTLIGNE
            'Ecrit le reste de l'entete
     
            .HTMLBody = .HTMLBody & SAUTLIGNE & SAUTLIGNE
            .HTMLBody = .HTMLBody & "<div align='center'><table>"
            .HTMLBody = .HTMLBody & "<tr>"
            .HTMLBody = .HTMLBody & "<td valign='middle'><b>test : <input type='text'>Ligne 1 - cols 1</input></b></td>"
            .HTMLBody = .HTMLBody & "<td valign='middle'><b><img src='" & img1 & "'>"
            .HTMLBody = .HTMLBody & "Ligne 1 - cols 2</b></td>"
            .HTMLBody = .HTMLBody & "<td valign='middle'><b><img src='" & img2 & "'>"
            .HTMLBody = .HTMLBody & "Ligne 1 - cols 3</b></td>"
            .HTMLBody = .HTMLBody & "</tr>"
     
            .HTMLBody = .HTMLBody & "<tr>"
            .HTMLBody = .HTMLBody & "<td valign='middle'><b><img src='" & img3 & "'>"
            .HTMLBody = .HTMLBody & "Ligne 2 - cols 1</b></td>"
            .HTMLBody = .HTMLBody & "<td valign='middle'><b><img src='" & img4 & "'>"
            .HTMLBody = .HTMLBody & "Ligne 2 - cols 2</b></td>"
            .HTMLBody = .HTMLBody & "<td valign='middle'><b>Ligne 2 - cols 3</b></td>"
            .HTMLBody = .HTMLBody & "</tr>"
     
            .HTMLBody = .HTMLBody & "</table></div>"
     
            .HTMLBody = .HTMLBody & "</body>"
     
            .Display
            DoEvents
            .Send
        End With
    End Sub

  5. #5
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    pour que ça fonctionne en l'état sur Outlook, il faut au choix (je vais à l'essentiel) :

    - en liaison tardive : déclarer tes variables liées à FSO et DOM en tant qu'objet et les créer via un CreateObject

    - en liaison précoce : quand même déclarer tes variables dossiers As Object ou préfixer le type pour le rattacher à la bonne librairie (car l'objet Folder existe aussi dans le modèle objet outlook pour désigner les dossiers contenant des mails) + cocher les références relatives à FSO et DOM (tu as déjà dû les cocher dans Excel)

Discussions similaires

  1. Réponses: 7
    Dernier message: 04/06/2011, 19h06
  2. [XL-2007] Problème sur l'aide VBA excel
    Par Airone784 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/05/2011, 09h37
  3. [XL-2007] Problème Contôle DTPicker présent dans une frame sur feuille Excel
    Par Cyberseb87 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 31/08/2010, 16h59
  4. [MySQL] Ajout d'un programme fait sur vb.net
    Par feldi dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/06/2010, 11h19

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