excel vers calendrier outlook

YannC.

XLDnaute Occasionnel
bonjour à vous tous,

J'ai utiliser le macro de MichelXLD(voir code ci-dessous), mais j'aimerai à partir des donnée du fichier excel, mettre dans le calendrier outlook la dates, l'heure, le nom, le lieu ainsi que l'info et le N°. Mais je n'y arrive pas:confused:.

Si vous pouviez m'aider, je vous en remercie d'avance.

Option Explicit
Sub NouveauRDV_Calendrier1_Click()
'nécéssite d'activer la référence Microsoft Outlook 10.0 Object Library
Dim myOlApp As New Outlook.Application
Dim MyItem As Outlook.AppointmentItem
Dim Cell As Range
For Each Cell In Sheets("2009").Range("G2" & Sheets("2009").Range("G57").End(xlUp).Row)
Set MyItem = myOlApp.CreateItem(olAppointmentItem)

With MyItem
.MeetingStatus = olNonMeeting
.ReminderSet = False
.Subject = Cell
.Start = Cell.Offset(0, -4) ' Attention : format mm/dd/yy
.Duration = 90 'minutes"
.Save
End With

Set MyItem = Nothing
Next Cell
End Sub
 

Pièces jointes

  • Classeur1.zip
    23.7 KB · Affichages: 87
  • Classeur1.zip
    23.7 KB · Affichages: 89
  • Classeur1.zip
    23.7 KB · Affichages: 85
Dernière édition:

YannC.

XLDnaute Occasionnel
Re : excel vers calendrier outlook

Bonjour à Tous,

J'ai enfin trouvé l'erreur avec outlook 2007.
Il s'agit de ce morceau de code :
LaLigne = Range("G57").End(xlUp).Row
For Each Cell In Sheets("2009").Range("G2:g" & LaLigne)

Qui apparament ne passe pas correctement avec outlook 2007. Si on peut m'expliquer pourquoi, je suis preneur.

J'ai donc effectué ceci :
Option Explicit
Private Sub CommandButton1_Click()
'nécéssite d'activer la référence Microsoft Outlook 12.0 Object Library
Dim myOlApp As New Outlook.Application
Dim MyItem As Outlook.AppointmentItem
Dim Cell As Range

For Each Cell In Sheets("2009").Range("G2:G14")
If Cell <> "" Then
Set MyItem = myOlApp.CreateItem(olAppointmentItem)
MsgBox Cell.Offset(0, -4) & " " & Cell.Offset(0, -3)
With MyItem
.MeetingStatus = olNonMeeting
.ReminderSet = False ' S'il y a un rappel
.Subject = Cell.Offset(0, 0)
.Start = Cell.Offset(0, -4) & " " & Cell.Offset(0, -3) ' Attention : format mm/dd/yy
.AllDayEvent = False ' Toute la journée oui/non
.Duration = 90 'minutes"
.Location = Cell.Offset(0, -1)
.Save
End With
'Set MyItem = Nothing

Else: Cell = ""
Exit Sub
End If
Next Cell
End Sub

En même temps, en effectuant ceci, je me retrouve donc bien avec un
Cell.Offset(0,...)
donc je prend bien la premiere ligne. Je n'ai plus l'obligation de mettre à la place de 0 un 1. Pourquoi, je ne sais pas, si quelqu'un pouvait me l'expliquer???:D

Peut être que le code peut etre simplifié, mais en tout cas merci de votre aide. Surtout gfortin9 & Roland_M

Une petite question en supplement, est ce que quelqu'un pourrait me dire qu'elle est la variable pour inserer un commentaire dans le calendrier outlook. Car içi on met bien la date, l'heure,... mais je n'est pas réussi à trouver pour les commentaires.

Merci

Le linuxien
 

gfortin9

XLDnaute Occasionnel
Re : excel vers calendrier outlook

Allô!

J'ai installé sur une autre machine Office 2007, version d'évaluation 60 jours, afin d'avoir une version de Outlook2007.

Je vais être encore rabat-joie, car ça fonctionne à merveille avec le dernier code du fichier que je t'ai mis en fichier attaché.

Pour ajouter dans le champ commentaire, c'est : .body

Quand tu es dans ton code dans la partie With, insère une ligne et tape le point. Un menu déroulant s'affiche avec les options possibles. C'est ainsi que j'ai trouvé "body".

Si ton code ne fonctionne toujours pas sur ta machine, les seules options différentes que je peux voir sont les "Options régionales et linguistiques" de la machine.

Perso, j'utilise
le . comme symbole décimal
le ; comme séparateur de listes
l'espace comme symbole de groupement des chiffres
leformat de la date courte 24-04-2009

Aussi, dans l'éditeur VBA, menu Outils > Options > onglet Éditeur > j'ai coché : Déclaration de variables obligatoire

Bonne chance

Gfortin
 

YannC.

XLDnaute Occasionnel
Re : excel vers calendrier outlook

Bonjour gfortin9,

Merci de ton aide, le code fonctionne mais comme je l'ai indiqué plus haut j'ai du remplacer cette partie de code :
LaLigne = Range("G57").End(xlUp).Row
For Each Cell In Sheets("2009").Range("G2:g" & LaLigne)
par
.

Ce qui me permis d'avoir le tout fonctionnelle. J'ai reesayé le code que tu m'as envoyé mais il ne fonctionne pas chez moi. Les mysteres de l'informatique ou bien les mystere de Microsoft. Je fonctionne avec le Office entreprise 2007.

Merci pour le renseignement sur "Body". Cela m'aide beaucoup

Est ce que tu serais quelle critere mettre lorsque nous voulons le faire pour un calendrier autre que celui par default.

Pou les autres options, j'ai exactement cette config.

Le linuxien
 
Dernière édition:

gfortin9

XLDnaute Occasionnel
Re : excel vers calendrier outlook

Allô!

Non, je ne sais pas le faire.

Mais fais de la recherche sur ce forum ou les forums.

Je me souviens que la question a déjà été posée.

Je ne me souviens pas s'il y avait une solution.

GFortin
 

YannC.

XLDnaute Occasionnel
Re : excel vers calendrier outlook

Bonjour gfortin9,

Effectivement la question a deja été posée, mais dans le sens outlook vers excel. Ce qui change pas mal de chose, enfin pour moi. Je continue à chercher.

Merci pour ton aide.

Le linuxien
 

YannC.

XLDnaute Occasionnel
Re : excel vers calendrier outlook

Bonjour à tous et bonne AP,

J'avance grace à vous dans le transfert de donner de excel vers outlook qui en plus evite les doublons dans le calendrier, voici le code

Private Sub calendrier_Click()
Dim DateDebut As String
Dim OutlApp As New Outlook.Application
Dim OutlMapi As Outlook.Namespace
Dim OutlFolder As Outlook.MAPIFolder
Dim OutlItems As Outlook.Items
Dim OutlAppointment As Outlook.AppointmentItem
Dim myOlApp As New Outlook.Application
Dim MyItem As Outlook.AppointmentItem
Dim myNamespace As Outlook.Namespace
Dim Cell As Range
Dim cal As String

'plage de donnée
cal = Sheets("Menu").Range("P3")
For Each Cell In Sheets(cal).Range("E2:E60")
'fin de plage de donnée
If Cell <> "" Then 'recherche dans la plage si il existe des données à inscrire
DateDebut = Cell.Offset(0, -2) & " " & Cell.Offset(0, -1) 'date pour vérification de doublons
'verifie s'il y a des doublons
On Error Resume Next
Set OutlAppointment = OutlItems.Find("[Start] = '" & DateDebut & "'")
On Error GoTo 0
'fin vérification doublon

If OutlAppointment Is Nothing Then 's'il n'y a pas de doublons lancement du code
Set OutlMapi = OutlApp.GetNamespace("MAPI")
Set OutlFolder = OutlMapi.GetDefaultFolder(olFolderCalendar)
Set OutlItems = OutlFolder.Items
Set MyItem = myOlApp.CreateItem(olAppointmentItem)
With MyItem 'inscription des données dans excel
.MeetingStatus = olNonMeeting 'meeting
.ReminderSet = False ' S'il y a un rappel
.Subject = Cell.Offset(0, 2) 'Sujet
.start = Cell.Offset(0, -2) & " " & Cell.Offset(0, -1) ' Date plus heure. Attention : format mm/dd/yy
.AllDayEvent = False ' Toute la journée oui/non
.Duration = 105 'minutes"
.Location = Cell.Offset(0, 1) 'emplacement et body pour les commentaires ou sujets
.body = "N° : " & Cell.Offset(0, 0) _
& vbCrLf _
...
.Save
End With
Set MyItem = Nothing
Else 'si il y a deja un RDV alors message ou continuer avec la date suivante. Au choix
'MsgBox "Un Rdv a déja été inscrit avec cette date:" & vbCrLf & _
OutlAppointment.Subject
Next Cell 'on continue dans l'extraction de donnée
End If
Else: Cell = "" 'si la plage de donnée est vide on quitte le macro
Exit Sub
End If
Next Cell 'tant que les cellules de la plage est complete on relance le macro
End Sub

Voila pour ceux qui peuvent être interressé.

Mais maintenant, j'aimerai choisir un calendrier dans outlook, autre que celui par defaut. J'ai eu beau chercher, je n'ai pas réussi.

Alors si vous pouviez m'aider, je vous en remercie d'avance.

Le linuxien
 

Discussions similaires

Réponses
1
Affichages
194
Réponses
2
Affichages
298
Réponses
0
Affichages
175

Statistiques des forums

Discussions
312 471
Messages
2 088 707
Membres
103 927
dernier inscrit
Mkeal