Bonjour. J'ai créé une macro qui me permet de placer des RV dans Outlook à partir d'un fichier excel, afin de gérer les dates de renouvellement de contrats.
J'ai de vagues notions VBA et j'ai pu la faire fonctionner grâce aux différents posts que j'ai trouvé sur le sujet (merci aux auteurs). Je mets le fichier en copie si quelqu'un veut en profiter. La macro fonctionne.
L'idée n'était pas d'envoyer des invitations, mais de placer directement le rv dans mon calendrier. J'ai quand même essayé de mettre un participant secondaire mais sans effet.
Ma préoccupation est que je souhaite placer les RV dans un calendrier secondaire, pas dans mon calendrier par défaut. Quand je regarder la liste des calendriers, je vois dans la section "Mes calendriers":
- Mon calendrier principal (click droit: emplacement: \\pdurant@xxx.com (mon adresse mail)
- un calendrier secondaire (emplacement: \\aaaaaaa (nom de la boîte partagée)
- anniversaires
....
Je ne trouve pas la solution pour placer les rv dans le calendrier secondaire.
Merci par avance à ceux qui pourraient m'aider.
Voici le code utilisé:
	
	
	
	
	
		
	
		
			
		
		
	
				
			J'ai de vagues notions VBA et j'ai pu la faire fonctionner grâce aux différents posts que j'ai trouvé sur le sujet (merci aux auteurs). Je mets le fichier en copie si quelqu'un veut en profiter. La macro fonctionne.
L'idée n'était pas d'envoyer des invitations, mais de placer directement le rv dans mon calendrier. J'ai quand même essayé de mettre un participant secondaire mais sans effet.
Ma préoccupation est que je souhaite placer les RV dans un calendrier secondaire, pas dans mon calendrier par défaut. Quand je regarder la liste des calendriers, je vois dans la section "Mes calendriers":
- Mon calendrier principal (click droit: emplacement: \\pdurant@xxx.com (mon adresse mail)
- un calendrier secondaire (emplacement: \\aaaaaaa (nom de la boîte partagée)
- anniversaires
....
Je ne trouve pas la solution pour placer les rv dans le calendrier secondaire.
Merci par avance à ceux qui pourraient m'aider.
Voici le code utilisé:
		VB:
	
	
	Sub RappelOutlook()
' Il est nécessaire de définir la référence : Microsoft Outlook 1X.0 Library
  Dim OutObj As Outlook.Application
  Dim OutAppt As Outlook.AppointmentItem
  Dim Sht As Worksheet
  Dim DLig As Long, Lig As Long, Sujet As String, Détail As String
  Dim sDate As String, Heure As String, HTemp As String
  Dim Delai As Integer, NbMois As Integer, Rappel As Single
  ' Récupérer les paramètres pour OUTLOOK
  Heure = Format(VParam("OutlookHeureR"), "hh:mm:ss") ' Heure de rappel
  Rappel = VParam("OutlookRappel")  ' Prévenir avant l'heure de
  Delai = VParam("OutlookDélaiRDV") ' Délai du RDV en minutes
  NbMois = VParam("MoisAvantEcheance")  ' Prévenir X mois avant échéance
  ' Demander l'heure de rappel au cas ou
  'HTemp = InputBox("A qu'elle heure voulez-vous faire le rappel (HH:MM) ?", "HEURE de RAPPEL ...", Heure)
 
  '  If InStr(1, HTemp, ":") > 0 Then Heure = Format(HTemp, "hh:mm:ss")
  'End If
  ' Définir la feuille source
  Set Sht = Sheets("Frais")
  ' Récupérer la dernière ligne du tableau
  DLig = Sht.Range("A" & Rows.Count).End(xlUp).Row
  ' Créer l'instance OUTLOOK
  Set OutObj = CreateObject("outlook.application")
  ' Pour chaque ligne sur la feuille
  For Lig = 2 To DLig
  If Sht.Range("I" & Lig).Value <> "X" Then
    ' Créer le sujet du mail
    Sujet = "Renouv. : " & Sht.Range("A" & Lig).Value & " - Contrat : " & Sht.Range("C" & Lig).Value
    ' Récupérer la date de fin de contrat
    sDate = Sht.Range("H" & Lig).Value
    ' Si aucune date, on passe à la ligne suivante
    If sDate = "" Then GoTo LigneSuivante
    ' Formater la date correctement
    sDate = Format(CDate(sDate) - (NbMois * 30.417), "dd/mm/yyyy")
    ' Créer l'instance pour le RDV
    Set OutAppt = OutObj.CreateItem(olAppointmentItem)
    ' Si tout est OK, on créé un RDV
    With OutAppt
      .Start = sDate & " " & Heure
      .Duration = Delai
      .Location = sDate
      .ReminderMinutesBeforeStart = Rappel * 60  ' rappeler 8 heure avant
      .ReminderSet = True
      .Subject = Sujet
      .Body = Détail
      .RequiredAttendees = VParam("attendee")
      '.Display
      .Send
      .Save
    End With
    ' Effacer la variable objet des RDV pour le prochain
    Set OutAppt = Nothing
    ' Mettre X pour indiquer que le RV est placé
    Sht.Range("I" & Lig).Select
    ActiveCell.FormulaR1C1 = "X"
   End If
    ' On continue
LigneSuivante:
  Next Lig
  ' Libérez la variable objet Outlook.
  Set OutObj = Nothing
  ' Petit message
  MsgBox "Le(s) Rendez-vous à/ont bien été ajouté ! ", vbInformation, "OK ..."
End Sub