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

Macros et VBA Excel Discussion :

Modifier Outlook avec Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de amerex
    Homme Profil pro
    Analyste Support et Développement
    Inscrit en
    Septembre 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste Support et Développement
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 246
    Par défaut Modifier Outlook avec Excel
    Bonjour!
    J'ai eu une idée... et j'ai besoin de professionnels pour m'aider à arriver à mes fins. J'ai fait des images afin de mieux vous communiquer mon idée.

    Voilà, j'aimerais, dans Excel, inscrire dans la colone A, le titre d'un fichier, et dans la colone B, le chemin vers ce fichier; comme cette image:



    Y aurait-il un moyen, par je-ne-sais quel moyen VBA, que je crée un menu personnalisé dans Outlook, avec les titres inscrits reliés aux chemins spécifiés dans le fichier; comme sur cette image:



    Cette actions de Excel vers Outlook permettrait d'éviter de créer manuellement chacun des éléments du menu personnalisé pour chacun des postes sur lesquels j'aimerais les créer.

    Bref, si jamais vous connaissez un moyen révolutionnaire, je suis ouvert à toute propositions!!

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Visiblement excel ne sert qu'a stocker des info et tu va principalement utilisé outlook. Du coup a mon avis tu auras plus de chance d'avoir une réponse pertinente dans le forum VBA Outlook

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour le Québec,

    J'ai développé un programme qui fait ce que vous avez demandé mais, comme il est plutôt compliqué à expliquer, j'hésite à le publier.

    Si vous êtes toujours intéressé, faites le moi savoir, je ferai l'effort de fournir les explications.

    Cordialement.

    PMO
    Patrick Morange

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Je suis très curieux de savoir la façon dont vous vous y êtes pris pour faire ce que je cherche à faire...
    Bonjour,

    CE QUE J'AI FAIT
    1) Création dans C: d'un dossier nommé AMEREX QUEBEC et DANS ce dossier…
    2) Création d'un classeur nommé "Sources_ Excel2Outlook.xls" et dans la feuille 1
    en A1 le titre "Titre" et en B1 le titre "Chemin" (bref, la reproduction de ce qu'il y a dans votre 1ère image)
    En colonne A, les différents titres et, en colonne B, les chemins (du style C:\AMEREX QUEBEC\Déf.doc)
    3) Dans le dossier AMEREX QUEBEC, j'ai ajouté différents fichiers (.doc, .xls, .pdf, .txt)

    OUTLOOK
    4) Ouvrez Outlook, faites menu Outils/Macro/Visual Basic Editeur
    5) Faites Ctrl+R et double cliquez sur ThisOutlookSession
    6) Dans la fenêtre de code de ThisOutlookSession, copiez le code suivant
    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
     
    '/// Nécessite la référence suivante
    /// Microsoft Excel xx.0 Object Library
    '/// C:\Program Files\Microsoft Office\OFFICExx\EXCEL.EXE
     
    '### Constantes à adapter ###
    Const SOURCE_MENU As String = "Sources_ Excel2Outlook.xls"
    Const CHEMIN As String = "C:\AMEREX QUEBEC\"
    Const NOM_MENU As String = "Menu personnalisé"
    '############################
     
    Dim TabControls() As clsCommandBarButtonEvents
     
    Sub Application_Startup()
    Dim EXP As Outlook.Explorer
    Dim menuBar As Office.CommandBar
    Dim myMenu As Office.CommandBarPopup
    Dim WB As Excel.Workbook
    Dim R As Excel.Range
    Dim var
    Dim i&
    On Error Resume Next
    Set WB = GetObject(CHEMIN & SOURCE_MENU)
    If Err <> 0 Then Exit Sub
    On Error GoTo 0
    Set R = WB.Sheets(1).[a1].CurrentRegion
    var = R
    Set R = Nothing
    WB.Close False
    Set WB = Nothing
    Set EXP = Outlook.ActiveExplorer
    Set menuBar = EXP.CommandBars.Item("Menu Bar")
    Set myMenu = menuBar.Controls.Add(Type:=msoControlPopup, _
        before:=menuBar.Controls.Count, temporary:=True)
    myMenu.Caption = NOM_MENU
    ReDim TabControls(1 To UBound(var, 1) - 1)
    For i& = 2 To UBound(var, 1)
      Set TabControls(i& - 1) = New clsCommandBarButtonEvents
      Set TabControls(i& - 1).myControl = myMenu.Controls.Add(Type:=msoControlButton, temporary:=True)
      With TabControls(i& - 1).myControl
        .Caption = var(i&, 1)
        .Tag = var(i&, 2)
      End With
    Next i&
    End Sub
    7) Faites menu Insertion/Module de classe
    8) Dans la fenêtre de code du Module de classe, copiez le code suivant
    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
     
    Public WithEvents myControl As Office.CommandBarButton
     
    Private Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" ( _
        ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
        ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)
    Private Declare Function FindWindow& Lib "user32" Alias "FindWindowA" ( _
        ByVal lpClassName As String, ByVal lpWindowName As String)
     
    Private Const SW_SHOWNORMAL = 1
    Private Const SW_RESTORE As Long = 9
    Private Const gcClassnameMSOutlook = "rctrl_renwnd32"
     
    Private Sub myControl_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
    ShellExecute FindWindow(gcClassnameMSOutlook, vbNullString), vbNullString, Ctrl.Tag, vbNullString, vbNullString, SW_RESTORE
    End Sub
    9) Faites F4 et dans le fenêtre de propriétés, changez le Name de la classe (qui doit-être Class1 par défaut) par clsCommandBarButtonEvents
    10) Faites menu Outils/Références… et, dans la boîte de dialogues Références, recherchez et cochez la référence "Microsoft Excel xx.0 Object Library" (xx est le numéro de version disponible sur votre machine)
    11) Enregistrez et quittez Outlook

    Si tout c'est bien passé (et si je n'ai rien omis) chaque fois que vous ouvrirez Outlook, un nouveau menu apparaîtra
    et si vous cliquez sur un de ses sous-menus, le fichier correspondant s'ouvrira et vous pourrez copiez une partie ou l'entièreté de son contenu pour l'afficher dans le mail.

    Ouf !!! J'espère n'avoir rien oublié et que tout est compréhensible.
    En pièce jointe, le dossier AMEREX QUEBEC et quelques fichiers.

    Cordialement.

    PMO
    Patrick Morange

Discussions similaires

  1. [OL-2010] Comment modifier un Rendez vous dans Outlook avec une macro Excel
    Par Paritec dans le forum VBA Outlook
    Réponses: 5
    Dernier message: 13/06/2014, 17h27
  2. Automatiser le déplacement de mails dans outlook avec EXCEL
    Par Guiggs dans le forum Général VBA
    Réponses: 0
    Dernier message: 09/07/2013, 09h30
  3. [XL-2007] Automatiser le déplacement de mails dans outlook avec EXCEL
    Par Guiggs dans le forum Excel
    Réponses: 3
    Dernier message: 08/07/2013, 13h24
  4. [XL-2003] Traitement mails outlook avec Excel
    Par sdispro dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/11/2011, 18h39
  5. [XL-2003] de l'usage de message Outlook avec Excel
    Par setepenre dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/09/2011, 15h08

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