Cherche bon dev VBA

Bonjour j'ai un fichier qui me sers pour mon boulot que j'aimerai améliorer pour l'optimiser.

Je bosse avec une version d'excel 32 bits, je ne sais pas si c'est ça le problème mais quand je le partage personne n'arrive jamais à l'ouvrir.

C'est pour cela que je ne le partage pas directement.

Ma demande : J'ai un fichier dans lequel pour chaque ligne de mon tableau, je souhaite pouvoir créer automatiquement des réunions dans Outlook (j'avais réussi en Excel 2010 mais mon code ne fonctionne plus avec ma version d'Excel actuel imposée par mon éditeur progiciel / office 365 business) quand on rempli un certain nombre de critères (Date de la réunion, heure de début, heure de fin, sujet, corp de la réunion).

Si quelqu'un est intéressé contre rémunération il peut e contacter en MP.

D'avance merci

Eric

Bonjour,

Le code étant dispo sur le site officiel en libre accès, je trouve ça bête de payer pour ça, il suffit de l'adapter à votre fichier (ici il créé un rendez vous pour chaque ligne de mon classeur joint). Je l'ai commenté à cet effet :

Sub REUNION()
Dim olApp As Outlook.Application
Dim olAppItem As Outlook.AppointmentItem
Dim DEBUT, FIN, L&
Set olApp = CreateObject("Outlook.Application") 'Créé une instance Outlook
With Worksheets("Feuil1") 'Avec la feuille 1
    L = 2 'On débute à la ligne 2
    While .Cells(L, 1) <> "" 'Tant que la cellule de la ligne L et la colonne 1 n'est pas vide
        DEBUT = DateValue(.Cells(L, 1)) + .Cells(L, 2) 'On défini la date et heure de début
        FIN = DateValue(.Cells(L, 1)) + .Cells(L, 3) 'On défini la date et heure de fin
        Set olAppItem = olApp.CreateItem(olAppointmentItem) 'On créé un nouvel objet rendez vous
        With olAppItem 'Avec l'objet rendez-vous
            .Body = Worksheets("Feuil1").Cells(L, 5) 'On attribue le corps de texte comme la colonne E, ligne L
            .ReminderSet = True 'On active les rappel
            .BusyStatus = olFree 'On attribuele statut comme libre
            '.RequiredAttendees = "" A modifier si souhaite ajouter des participants via leur adresse mail
            .Start = DEBUT 'On attribue la date de début définie plus haut
            .End = FIN 'On attribue la date de fin définie plus haut
            .Subject = Worksheets("Feuil1").Cells(L, 4) 'On attribue le sujet comme la colonne D, ligne L
            '.Attachments.Add ("c:\temp\somefile.msg") A adapter si souhaite ajouter pièce jointe
            .Save 'On sauvegarde
        End With
        L = L + 1 'On passe à la ligne suivante et recommence les mêmes étapes
    Wend 'Boucle tant que les cellules ne sont pas vides
End With
Set olAppItem = Nothing 'Décharge les objets évènemenys
Set olApp = Nothing 'Décharge l'instance Outlook
End Sub

Cdlt,

8reunion.xlsm (15.35 Ko)

Re Ergotamine,

je viens d'adapter le code à mon fichier, mais je manque de compétence, peux-tu m'éclairer STP ?

- Dans mon projet VBA sur la Feuil1, j'ai déjà du code (celui sur lequel tu as déjà travaillé tout à l'heure, encore merci). Du coup lLe bout de code que tu m'a envoyé et que j'ai adapté, je l'ajoute à la suite ?

- Comment ton code se déclenche-t'il ?

- Enfin, quand j'essaye d'exécuter le code,, dès la deuxième ligne une fenêtre pop up "erreur de compilation : type défini par l'utilisateur non défini" s'affiche (pour Dim olApp As Outlook.Application)

D'avance merci !

Eric

Bonjour,

Alors pour répondre aux diverses questions, comment voyez vous la chose ? Évitez de préférence les procédures événementielles. Je conseillerai "On sélectionne le ou les RDV que l'on souhaite créer, on clic sur un bouton et c'est la macro qui fait tout le reste". Si c'est votre méthodologie alors il faudra que j'adapte le code mais j'attends votre confirmation en ce sens. Sinon, merci de préciser comment vous voyez la chose.

Ensuite pour le message d'erreur j'ai oublié un petit truc (auquel j'avais pensé mais j'ai oublié entre temps) : lorsque vous êtes sous l'éditeur VBA > Outils > Référence > Cochez la référence Microsoft Outlook 16.0 Object Library qui est la librairie prenant en charge les objets, méthodes et propriétés spécifiques à Outlook.

Après avoir réalisé cette manipulation sur mon fichier joint, cliquez sur le module 1, placez vous à l'intérieur de la macro REUNION puis faite F5 sur votre clavier et que vous retournez sur votre Outlook vous verrez qu'un évènement a été créé dans votre calendrier.

Dans l'attente de votre retour quand à la méthodologie. Si vous souhaitez une adaptation directe sur votre fichier vous pouvez tjs me le transmettre par MP si données confidentielles, ou joindre un exemple représentatif ici.

Cdlt,

Bonjour,

D'ailleurs, ça fait plusieurs fois que je te vois dire que tu n'aimes pas les macros événementielles. Quel est le reproche que tu leur fais ?

Rechercher des sujets similaires à "cherche bon dev vba"