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 :

Import reunions contenues dans un fichier excel vers Outlook


Sujet :

VBA Outlook

  1. #1
    Candidat au Club
    Homme Profil pro
    Specialiste IT
    Inscrit en
    Juin 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Specialiste IT
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Import reunions contenues dans un fichier excel vers Outlook
    Bonjour,

    Je dois importer des reunions contenues dans un fichier Excel vers outlook ...

    Pour ce faire j 'utilise une macro, qui lit ligne par ligne un fichier excel, puis demande une création de réunion à des calendriers de salles.
    Il n'y pas de probleme pour creer les reunions ...
    Par contre, mon souci provient du fait que le créateur se voit systematiquement, ajouter les réunions dans son calendrier et il y en a plus de 1000.
    On souhaite juste injecter les reunions dans les salles ...
    Aucune notification, ni ajouts de réunions de doivent être Ajoutés dans les calendriers des utilisateurs.

    Pouvez vous m'indiquer comment proceder ?


    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
     
    Function CreerReunion(FexcWks As Object, FlngRow As Long) As Object
      ' colonne 1 Reference de la reunion
      ' colonne 2 Date de reservation
      ' colonne 3 Personne concernée
      ' colonne 4 Nom de la salle
      ' colonne 5 creneau réservé date heure
      ' colonne 6 Mofif reunion
      ' colonne 7 Statut de la demande
      ' colonne 8 Nom outlook de la salle
      ' colonne 9 Adreese mail de la salle
      Dim FReference As String
      Dim FDate As String
      Dim FPersConcernee As String
      Dim FNomSalle As String
      Dim FHoraire As String
      Dim FMotif As String
      Dim FnomSalleOutlook As String
      Dim FmailSalleOutlook As String
      Dim FReunion As Object
      Dim FRessourceRequise As Object
      Dim FDateOutlook As Date
     
      FReference = FexcWks.cells(FlngRow, 1)
      FDate = FexcWks.cells(FlngRow, 2)
      FPersConcernee = FexcWks.cells(FlngRow, 3)
      FNomSalle = FexcWks.cells(FlngRow, 4)
      FHoraire = FexcWks.cells(FlngRow, 5)
      FMotif = FexcWks.cells(FlngRow, 6)
      FnomSalleOutlook = FexcWks.cells(FlngRow, 8)
      FmailSalleOutlook = FexcWks.cells(FlngRow, 9)
      'FmailSalleOutlook = "CAP AMPERE-MUT-A00-098-MODULABLE (16p) (26p debout)"  'test
      FDateOutlook = DateHeureDebutVersOutlook(FexcWks.cells(FlngRow, 2), FexcWks.cells(FlngRow, 5))
      Set FReunion = Nothing
     
      Set FReunion = Application.CreateItem(olAppointmentItem)
      FReunion.MeetingStatus = olMeeting
      FReunion.Subject = "Personne concernée : " & FPersConcernee & "--" & FMotif
      FReunion.Location = FNomSalle & " -> " & FnomSalleOutlook
      FReunion.Start = FDateOutlook
      FReunion.Duration = MinutesDiffHoraires(FHoraire)
      FReunion.Organizer = FPersConcernee
      FReunion.Body = "Référence : " & FReference & vbCrLf & _
                      "Personne concernée : " & FPersConcernee & vbCrLf & _
                      "Sujet : " & FMotif & vbCrLf & _
                      "Salle : " & FReunion.Location
     
      Set FRessourceRequise = FReunion.Recipients.Add(FmailSalleOutlook)
      FRessourceRequise.Type = OlRessource
      Set CreerReunion = FReunion
     
    End Function

  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,
    Il faudrait créer un compte OUTLOOK pour la salle et lancer le code à partir de celui-ci.

  3. #3
    Candidat au Club
    Homme Profil pro
    Specialiste IT
    Inscrit en
    Juin 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Specialiste IT
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [OL-2013] Import reunions contenues dans un fichier excel vers Outlook
    bonjour,

    merci de votre reponse ...

    Le compte de messagerie de la salle existe déjà ....
    Par contre étant donné que chez nous les comptes de messageries sont liées aux comptes AD, je pense qu'il faudrait demander la creation d'une association compte AD / compte de messagerie, temporaire, puis lancer la macro a partir d'une session ouverte par cette association.

    Autre solution que j'avais envisagé, passer par la creation d'un calendrier temporaire local, se positionner dans ce calendrier et executer la macro d'importation -
    cela fonctionne en manuel, il m'affiche juste un message me disant que "la reunion ne figure pas dans le calendrier de ce compte", mais me permet de faire la demande de reunion. La suppression du calendrier n'entraine pas la suppression des reunions dans la salle.
    par contre je n'arrive pas a fixer le code VBA pour le faire ....

    les reunions apparaissent toujours mon calendrier lié à mon compte et non pas le calendrier temporaire

    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
     
    "CalTemp" - nom du calendrier temporaire
    Set ObjCal = RechercheCalendrierTemporaire("CalTemp")
    Set objreunion = ObjCal.Application.CreateItem(olAppointmentItem)
    objreunion.MeetingStatus = olMeeting
    objreunion.ResponseRequested = False
    objreunion.Display
    'objreunion.send
    '-----------------------------
    Function RechercheCalendrierTemporaire(FcalendarName As String) As Object
      Dim Fobjpane As Outlook.NavigationPane
      Dim Fobjmodule As Outlook.CalendarModule
      Dim FobjGroup As Outlook.NavigationGroup
     
      Dim FObjcal As Object
     
      Set Fobjpane = Application.ActiveExplorer.NavigationPane
      Set Fobjmodule = Fobjpane.Modules.GetNavigationModule(olModuleCalendar)
     
      For i = 1 To Fobjmodule.NavigationGroups.Count
        Set FobjGroup = Fobjmodule.NavigationGroups.Item(i)
        If FobjGroup = "Mes calendriers" Then
          For j = 1 To FobjGroup.NavigationFolders.Count
            If FobjGroup.NavigationFolders.Item(j).DisplayName = FcalendarName Then
               If FobjGroup.NavigationFolders.Item(j).IsSelected = True Then
                 Set FObjcal = FobjGroup.NavigationFolders.Item(j)
               End If
            End If
          Next j
        End If
      Next i
    Set RechercheCalendrierTemporaire = FObjcal
    End Function
    Cordialement

  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
    Quand je parlais de compte , il s'agit d'un compte OUTLOOK pas de la BAL (EXCHANGE) qui correspond à cette salle.

    Oui la création dans un calendrier temporaire puis un copier coller vers le calendrier commun doit fonctionner.

    Pour cela il faut utiliser une syntaxe différente.

    on se positionne dans le folder qui correspond au calendrier et on fait un ADD sur la collection items
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Additem()
        Dim myNamespace As Outlook.NameSpace
        Dim myFolder As Outlook.Folder
        Dim myItem As Outlook.AppointmentItem
     
     
        Set myNamespace = Application.GetNamespace("MAPI")
        Set myFolder = myNamespace.GetDefaultFolder(olFolderinbox).parent.folders("new calendar")
     
        Set myItem = myFolder.Items.Add
       'etc...
        myItem.Display
    End Sub
    Je pense que ce serait plus efficace à partir d' un fichier PST.

    pour se positionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub folder_in_pst()
    Dim objFolder As Outlook.Folder
    Set objFolder = Application.Session.PickFolder
    MsgBox objFolder.FolderPath
     
     
    'ou
    Set objFolder = Application.Session.Folders("nom de mon pst").Folders("calendrier")
    MsgBox objFolder.FolderPath
    End Sub

  5. #5
    Candidat au Club
    Homme Profil pro
    Specialiste IT
    Inscrit en
    Juin 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Specialiste IT
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [OL-2013] Import reunions contenues dans un fichier excel vers Outlook
    Bonjour,

    Je vous remercie pour cette solution que je ne vais pas manquer de tester lorsque j'aurais un peu temps ...
    Là, le probleme c'est qu'on est dans l'urgence et je ne suis pas certain de pouvoir la mettre en place à temps ...

    J'ai trouvé une solution de contournement qui satisfait l'utilisateur qui va generer les injections, même si, elle n'est pas tres élegante ...

    En premier lieu je tague un des champs contenu dans la demande de reunion (subject ou Body par exemple)
    ensuite, dans le calendrier du compte executant la macro, on va créer un filtre n'affichant pas les reunions dont les champs (sujet ou conversion) qui contiennent ces tagues ...

    Cordialement

Discussions similaires

  1. [XL-2010] VBA - Importer le contenu de différents fichiers Excel vers un unique fiichier
    Par ThibaultBreton dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/12/2015, 09h57
  2. copier le contenu d'un fichier EXCEL vers un autre
    Par john_wili dans le forum Documents
    Réponses: 1
    Dernier message: 26/01/2009, 11h35
  3. Importer des données d'un fichier Excel vers Javascript
    Par rafiq25 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/01/2008, 15h30
  4. exporter contenu d'un fichier excel vers base mysql ?
    Par ouldfella dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/03/2007, 10h31
  5. Importer le contenu d'une cellule Excel vers Access
    Par deaqu1 dans le forum Access
    Réponses: 7
    Dernier message: 05/11/2005, 15h26

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